summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2009-11-05 10:40:13 +0100
committerAndrea Diamantini <adjam7@gmail.com>2009-11-05 10:40:13 +0100
commitf2a846d56cea2f33e85e52f9c99a3c73c2195feb (patch)
treec285492a0c552f7d52320aad368868f21e6dc189 /src/tests
parentMerge commit 'refs/merge-requests/1986' of git://gitorious.org/rekonq/mainlin... (diff)
parentTrivial MainView Test (diff)
downloadrekonq-f2a846d56cea2f33e85e52f9c99a3c73c2195feb.tar.xz
Merge branch 'AutoTests'
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/CMakeLists.txt32
-rw-r--r--src/tests/mainview_test.cpp443
-rw-r--r--src/tests/tabbar_test.cpp140
3 files changed, 615 insertions, 0 deletions
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
new file mode 100644
index 00000000..5df23e24
--- /dev/null
+++ b/src/tests/CMakeLists.txt
@@ -0,0 +1,32 @@
+##### ---------- General Settings ----------
+
+SET( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
+
+INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_BINARY_DIR}/..
+ ${KDE4_INCLUDES}
+ ${QT4_INCLUDES}
+)
+
+##### ------------- tabbar test
+
+kde4_add_unit_test( tabbar_test tabbar_test.cpp )
+
+target_link_libraries( tabbar_test
+ kdeinit_rekonq
+ ${KDE4_KDECORE_LIBS}
+ ${KDE4_KDEUI_LIBS}
+ ${QT_QTTEST_LIBRARY}
+)
+
+##### ------------- mainview test
+
+kde4_add_unit_test( mainview_test mainview_test.cpp )
+
+target_link_libraries( mainview_test
+ kdeinit_rekonq
+ ${KDE4_KDECORE_LIBS}
+ ${KDE4_KDEUI_LIBS}
+ ${QT_QTTEST_LIBRARY}
+)
+
+############################################################
diff --git a/src/tests/mainview_test.cpp b/src/tests/mainview_test.cpp
new file mode 100644
index 00000000..f56d73ab
--- /dev/null
+++ b/src/tests/mainview_test.cpp
@@ -0,0 +1,443 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright 2008 Benjamin C. Meyer <ben@meyerhome.net>
+* Copyright 2009 by Andrea Diamantini <adjam7 at gmail dot com>
+*
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as
+* published by the Free Software Foundation; either version 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
+* ============================================================ */
+
+
+#include <qtest_kde.h>
+
+#include <QtTest>
+#include <QtCore>
+#include <QtGui>
+
+#include "../mainview.h"
+#include "../webview.h"
+
+
+class MainViewTest : public QObject
+{
+ Q_OBJECT
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void tabwidget_data();
+ void tabwidget();
+
+ void closeTab_data();
+ void closeTab();
+
+ void currentWebView_data();
+ void currentWebView();
+
+ void newTab_data();
+ void newTab();
+
+ void nextTab_data();
+ void nextTab();
+
+ void previousTab_data();
+ void previousTab();
+
+ void recentlyClosedTabs_data();
+ void recentlyClosedTabs();
+
+ void setCurrentTitle_data();
+ void setCurrentTitle(const QString &);
+
+ void showStatusBarMessage_data();
+ void showStatusBarMessage(const QString &);
+
+ void currentChanged_data();
+ void currentChanged();
+};
+
+
+// Subclass that exposes the protected functions.
+class SubMainView : public MainView
+{
+public:
+ void call_resizeEvent(QResizeEvent *event)
+ { return SubMainView::resizeEvent(event); }
+};
+
+
+// This will be called before the first test function is executed.
+// It is only called once.
+void MainViewTest::initTestCase()
+{
+}
+
+// This will be called after the last test function is executed.
+// It is only called once.
+void MainViewTest::cleanupTestCase()
+{
+}
+
+// This will be called before each test function is executed.
+void MainViewTest::init()
+{
+}
+
+// This will be called after every test function.
+void MainViewTest::cleanup()
+{
+}
+
+// -------------------------------------------
+
+void MainViewTest::tabwidget_data()
+{
+}
+
+void MainViewTest::tabwidget()
+{
+ SubMainView widget;
+// widget.currentWebView();
+// QCOMPARE(widget.currentIndex(), 0);
+// widget.newTab();
+// widget.nextTab();
+// QCOMPARE(widget.currentIndex(), 1);
+// widget.previousTab();
+// QCOMPARE(widget.currentIndex(), 0);
+}
+
+// -------------------------------------------
+
+void MainViewTest::closeTab_data()
+{
+ QTest::addColumn<int>("index");
+ QTest::newRow("null") << 0;
+}
+
+// public void closeTab(int index = -1)
+void MainViewTest::closeTab()
+{
+ QFETCH(int, index);
+
+ SubMainView widget;
+/*
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.newTab();
+ widget.slotCloseTab(index);
+ widget.newTab();
+ widget.slotCloseTab(index);
+ widget.newTab();
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy3.count(), 2);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);*/
+}
+
+// -------------------------------------------
+
+Q_DECLARE_METATYPE(WebView*)
+void MainViewTest::currentWebView_data()
+{
+ /*
+ QTest::addColumn<WebView*>("currentWebView");
+ QTest::newRow("null") << WebView*();
+ */
+}
+
+// public WebView *currentWebView() const
+void MainViewTest::currentWebView()
+{
+ /*
+ QFETCH(WebView*, currentWebView);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ QCOMPARE(widget.currentWebView(), currentWebView);
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::newTab_data()
+{
+ QTest::addColumn<int>("foo");
+ QTest::newRow("null") << 0;
+}
+
+// public void newTab()
+void MainViewTest::newTab()
+{
+ /*
+ QFETCH(int, foo);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.newTab();
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::nextTab_data()
+{
+ QTest::addColumn<int>("foo");
+ QTest::newRow("null") << 0;
+}
+
+// public void nextTab()
+void MainViewTest::nextTab()
+{
+ /*
+ QFETCH(int, foo);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.nextTab();
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::previousTab_data()
+{
+ QTest::addColumn<int>("foo");
+ QTest::newRow("null") << 0;
+}
+
+
+// public void previousTab()
+void MainViewTest::previousTab()
+{
+ /*
+ QFETCH(int, foo);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.previousTab();
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::recentlyClosedTabs_data()
+{
+}
+
+void MainViewTest::recentlyClosedTabs()
+{
+ /*
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::setCurrentTitle_data()
+{
+ QTest::addColumn<QString>("url");
+ QTest::newRow("null") << QString("foo");
+}
+
+// protected void setCurrentTitle(QString const &url)
+void MainViewTest::setCurrentTitle(const QString &)
+{
+ /*
+ QFETCH(QString, url);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.call_setCurrentTitle(url);
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+void MainViewTest::showStatusBarMessage_data()
+{
+ QTest::addColumn<QString>("message");
+ QTest::newRow("null") << QString("foo");
+}
+
+// protected void showStatusBarMessage(QString const &message)
+void MainViewTest::showStatusBarMessage(const QString &)
+{
+ /*
+ QFETCH(QString, message);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.call_showStatusBarMessage(message);
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+// void slotCurrentChanged(int index);
+void MainViewTest::currentChanged_data()
+{
+ QTest::addColumn<int>("foo");
+ QTest::newRow("null") << 0;
+}
+
+// private slotCurrentChanged
+void MainViewTest::currentChanged()
+{
+ /*
+ QFETCH(int, foo);
+
+ SubMainView widget;
+
+ QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &)));
+ QSignalSpy spy2(&widget, SIGNAL(loadProgress(int)));
+ QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &)));
+ QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &)));
+ QSignalSpy spy5(&widget, SIGNAL(tabsChanged()));
+ QSignalSpy spy6(&widget, SIGNAL(lastTabClosed()));
+
+ widget.call_tabsChanged();
+
+ QCOMPARE(spy0.count(), 0);
+ QCOMPARE(spy2.count(), 0);
+ QCOMPARE(spy3.count(), 0);
+ QCOMPARE(spy4.count(), 0);
+ QCOMPARE(spy5.count(), 0);
+ QCOMPARE(spy6.count(), 0);
+ */
+ QSKIP("Test is not implemented.", SkipAll);
+}
+
+// -------------------------------------------
+
+QTEST_KDEMAIN(MainViewTest, GUI)
+#include "mainview_test.moc"
diff --git a/src/tests/tabbar_test.cpp b/src/tests/tabbar_test.cpp
new file mode 100644
index 00000000..08f295d1
--- /dev/null
+++ b/src/tests/tabbar_test.cpp
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2008 Benjamin C. Meyer <ben@meyerhome.net>
+ * Copyright 2008 Andrea Diamantini <adjam7@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#include <qtest_kde.h>
+
+#include <QtTest>
+#include <QtCore>
+#include <QtGui>
+
+#include "../tabbar.h"
+
+
+class TabBarTest : public QObject
+{
+ Q_OBJECT
+
+public slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+private slots:
+ void tabbar_data();
+ void tabbar();
+
+ void tabSizeHint_data();
+ void tabSizeHint();
+};
+
+
+// Subclass that exposes the protected functions.
+class SubTabBar : public TabBar
+{
+public:
+ void call_cloneTab(int index)
+ { return SubTabBar::cloneTab(index); }
+
+ void call_closeOtherTabs(int index)
+ { return SubTabBar::closeOtherTabs(index); }
+
+ void call_closeTab(int index)
+ { return SubTabBar::closeTab(index); }
+
+ void call_mouseMoveEvent(QMouseEvent* event)
+ { return SubTabBar::mouseMoveEvent(event); }
+
+ void call_mousePressEvent(QMouseEvent* event)
+ { return SubTabBar::mousePressEvent(event); }
+
+ void call_reloadAllTabs()
+ { return SubTabBar::reloadAllTabs(); }
+
+ void call_reloadTab(int index)
+ { return SubTabBar::reloadTab(index); }
+
+ QSize call_tabSizeHint(int index) const
+ { return SubTabBar::tabSizeHint(index); }
+
+ void call_showTabPreview(int tab)
+ { return SubTabBar::showTabPreview(tab); }
+};
+
+
+// This will be called before the first test function is executed.
+// It is only called once.
+void TabBarTest::initTestCase()
+{
+}
+
+
+// This will be called after the last test function is executed.
+// It is only called once.
+void TabBarTest::cleanupTestCase()
+{
+}
+
+
+// This will be called before each test function is executed.
+void TabBarTest::init()
+{
+}
+
+
+// This will be called after every test function.
+void TabBarTest::cleanup()
+{
+}
+
+// -------------------------------------------
+
+void TabBarTest::tabbar_data()
+{
+}
+
+
+void TabBarTest::tabbar()
+{
+ SubTabBar widget;
+}
+
+// -------------------------------------------
+
+void TabBarTest::tabSizeHint_data()
+{
+// QTest::addColumn<int>("index");
+// QTest::newRow("0") << 0;
+}
+
+
+// protected QSize tabSizeHint(int index) const
+void TabBarTest::tabSizeHint()
+{
+ // Need fixes as our function uses MainView methods to determine size
+// QFETCH(int, index);
+// SubTabBar bar;
+// QVERIFY(bar.call_tabSizeHint(index).width() <= 250);
+}
+
+// -------------------------------------------
+
+QTEST_KDEMAIN(TabBarTest, GUI)
+#include "tabbar_test.moc"