summaryrefslogtreecommitdiff
path: root/browser/unit-tests/browserview/testbrowser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'browser/unit-tests/browserview/testbrowser.cpp')
-rw-r--r--browser/unit-tests/browserview/testbrowser.cpp178
1 files changed, 178 insertions, 0 deletions
diff --git a/browser/unit-tests/browserview/testbrowser.cpp b/browser/unit-tests/browserview/testbrowser.cpp
new file mode 100644
index 0000000..7db92dc
--- /dev/null
+++ b/browser/unit-tests/browserview/testbrowser.cpp
@@ -0,0 +1,178 @@
+#include <QSignalSpy>
+#include <QDebug>
+#include <QMainWindow>
+#include <QGraphicsScene>
+#include <QGraphicsView>
+
+#include "testbrowser.h"
+#include "../browserview.h"
+
+/////////////// Test cases ///////////////
+
+void TestBrowser::testCanCreate()
+{
+ BrowserView *bvi = new BrowserView();
+ QVERIFY (bvi);
+}
+
+void TestBrowser::testCanLoadWebpage()
+{
+ /*
+ FIXME: It seems like the pageLoadStarted signal is not triggered
+ correctly
+ */
+ BrowserView bvi;
+
+ bvi.show();
+
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadStarted()));
+ bvi.load("http://www.pelagicore.com");
+ QVERIFY (spy.wait(1000));
+}
+
+void TestBrowser::testCanFinishLoadingWebpage()
+{
+ BrowserView bvi;
+
+ bvi.show();
+
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ bvi.load("http://www.pelagicore.com");
+ QVERIFY (spy.wait(10000));
+}
+
+void TestBrowser::testProgressIncreases ()
+{
+ BrowserView bvi;
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadProgress(int)));
+
+ bvi.load("http://www.pelagicore.com");
+ bvi.show();
+
+ spy.wait(1000);
+ float prg = bvi.getProgress();
+ QVERIFY(prg > 0);
+}
+
+void TestBrowser::testBack ()
+{
+ BrowserView bvi;
+ bvi.show();
+
+ bvi.load("http://www.pelagicore.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(10000));
+ }
+
+ bvi.load("http://www.google.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+
+ bvi.goBack();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+
+ QVERIFY(bvi.getUrl().contains("pelagicore"));
+}
+
+void TestBrowser::testForward ()
+{
+ BrowserView bvi;
+ bvi.show();
+
+ bvi.load("http://www.pelagicore.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+ QVERIFY(bvi.getUrl().contains("pelagicore"));
+
+ bvi.load("http://www.google.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+
+ bvi.goBack();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+ bvi.goForward();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+
+ QVERIFY(bvi.getUrl().contains("google"));
+}
+
+void TestBrowser::testReload ()
+{
+ BrowserView bvi;
+ bvi.show();
+
+ bvi.load("http://www.pelagicore.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+ bvi.pageReload();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ QVERIFY(spy.wait(1000));
+ }
+
+ QVERIFY(bvi.getUrl().contains("pelagicore"));
+}
+
+//void TestBrowser::testStop () {} //FIXME: How should this be tested..?
+
+void TestBrowser::testGetTitle()
+{
+ BrowserView bvi;
+ QString before = "";
+ QString after = "";
+ bvi.show();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ spy.wait(1000);
+ }
+
+ before = bvi.getTitle();
+ bvi.load("http://www.pelagicore.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ spy.wait(1000);
+ }
+ after = bvi.getTitle();
+ QVERIFY (before.compare(after) != 0);
+}
+
+void TestBrowser::testGetUrl()
+{
+ BrowserView bvi;
+ QString before = "";
+ QString after = "";
+ bvi.show();
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ spy.wait(1000);
+ }
+
+ before = bvi.getUrl();
+ bvi.load("http://www.pelagicore.com");
+ {
+ QSignalSpy spy (&bvi, SIGNAL(pageLoadFinished(bool)));
+ spy.wait(1000);
+ }
+ after = bvi.getUrl();
+ QVERIFY (before.compare(after) != 0);
+}
+
+QTEST_MAIN (TestBrowser);