summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 8fd71c701..690cf70e4 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -33,6 +33,7 @@
#include <QStyle>
#include <QtTest/QtTest>
#include <QTextCharFormat>
+#include <QWebChannel>
#include <private/qinputmethod_p.h>
#include <qnetworkcookiejar.h>
#include <qnetworkreply.h>
@@ -42,6 +43,8 @@
#include <qwebenginehistory.h>
#include <qwebenginepage.h>
#include <qwebengineprofile.h>
+#include <qwebenginescript.h>
+#include <qwebenginescriptcollection.h>
#include <qwebenginesettings.h>
#include <qwebengineview.h>
#include <qimagewriter.h>
@@ -237,6 +240,8 @@ private Q_SLOTS:
void loadInSignalHandlers_data();
void loadInSignalHandlers();
+ void restoreHistory();
+
private:
QWebEngineView* m_view;
QWebEnginePage* m_page;
@@ -5079,5 +5084,36 @@ void tst_QWebEnginePage::loadInSignalHandlers()
QCOMPARE(m_page->url(), urlForSetter);
}
+void tst_QWebEnginePage::restoreHistory()
+{
+ QWebChannel *channel = new QWebChannel;
+ QWebEnginePage *page = new QWebEnginePage;
+ page->setWebChannel(channel);
+
+ QWebEngineScript script;
+ script.setName(QStringLiteral("script"));
+ page->scripts().insert(script);
+
+ QSignalSpy spy(page, SIGNAL(loadFinished(bool)));
+ page->load(QUrl(QStringLiteral("qrc:/resources/test1.html")));
+ QTRY_COMPARE(spy.count(), 1);
+
+ QCOMPARE(page->webChannel(), channel);
+ QVERIFY(page->scripts().contains(script));
+
+ QByteArray data;
+ QDataStream out(&data, QIODevice::ReadWrite);
+ out << *page->history();
+ QDataStream in(&data, QIODevice::ReadOnly);
+ in >> *page->history();
+ QTRY_COMPARE(spy.count(), 2);
+
+ QCOMPARE(page->webChannel(), channel);
+ QVERIFY(page->scripts().contains(script));
+
+ delete page;
+ delete channel;
+}
+
QTEST_MAIN(tst_QWebEnginePage)
#include "tst_qwebenginepage.moc"