summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp')
-rw-r--r--tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp44
1 files changed, 36 insertions, 8 deletions
diff --git a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
index 90361f2c9..2044f0df4 100644
--- a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
+++ b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
@@ -71,6 +71,7 @@ private Q_SLOTS:
#endif
void noTransportWithoutWebChannel();
void scriptsInNestedIframes();
+ void matchQrcUrl();
};
void tst_QWebEngineScript::domEditing()
@@ -179,23 +180,23 @@ void tst_QWebEngineScript::loadEvents()
// Single frame / setHtml
page.setHtml(QStringLiteral("<!DOCTYPE html><html><head><title>mr</title></head><body></body></html>"));
- QTRY_COMPARE(page.spy.count(), 1);
- QCOMPARE(page.spy.takeFirst().value(0).toBool(), true);
+ QTRY_COMPARE_WITH_TIMEOUT(page.spy.count(), 1, 20000);
+ QVERIFY(page.spy.takeFirst().value(0).toBool());
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::MainWorld).toStringList()));
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::ApplicationWorld).toStringList()));
// After discard
page.setLifecycleState(QWebEnginePage::LifecycleState::Discarded);
page.setLifecycleState(QWebEnginePage::LifecycleState::Active);
- QTRY_COMPARE(page.spy.count(), 1);
- QCOMPARE(page.spy.takeFirst().value(0).toBool(), true);
+ QTRY_COMPARE_WITH_TIMEOUT(page.spy.count(), 1, 20000);
+ QVERIFY(page.spy.takeFirst().value(0).toBool());
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::MainWorld).toStringList()));
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::ApplicationWorld).toStringList()));
// Multiple frames
page.load(QUrl("qrc:/resources/test_iframe_main.html"));
- QTRY_COMPARE(page.spy.count(), 1);
- QCOMPARE(page.spy.takeFirst().value(0).toBool(), true);
+ QTRY_COMPARE_WITH_TIMEOUT(page.spy.count(), 1, 20000);
+ QVERIFY(page.spy.takeFirst().value(0).toBool());
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::MainWorld).toStringList()));
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::ApplicationWorld).toStringList()));
QVERIFY(verifyOrder(page.eval("window[0].log", QWebEngineScript::MainWorld).toStringList()));
@@ -206,14 +207,14 @@ void tst_QWebEngineScript::loadEvents()
// Cross-process navigation
page.load(QUrl("chrome://gpu"));
QTRY_COMPARE_WITH_TIMEOUT(page.spy.count(), 1, 20000);
- QCOMPARE(page.spy.takeFirst().value(0).toBool(), true);
+ QVERIFY(page.spy.takeFirst().value(0).toBool());
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::MainWorld).toStringList()));
QVERIFY(verifyOrder(page.eval("window.log", QWebEngineScript::ApplicationWorld).toStringList()));
// Using window.open from JS
QVERIFY(profile.pages.size() == 1);
page.load(QUrl("qrc:/resources/test_window_open.html"));
- QTRY_VERIFY(profile.pages.size() == 2);
+ QTRY_COMPARE(profile.pages.size(), 2);
QTRY_COMPARE(profile.pages.front().spy.count(), 1);
QTRY_COMPARE(profile.pages.back().spy.count(), 1);
QVERIFY(verifyOrder(profile.pages.front().eval("window.log", QWebEngineScript::MainWorld).toStringList()));
@@ -589,6 +590,33 @@ void tst_QWebEngineScript::webChannelWithBadString()
QCOMPARE(host.text(), data);
}
#endif
+
+void tst_QWebEngineScript::matchQrcUrl()
+{
+ QWebEnginePage page;
+ QWebEngineView view;
+ view.setPage(&page);
+ QWebEngineScript s;
+ s.setInjectionPoint(QWebEngineScript::DocumentReady);
+ s.setWorldId(QWebEngineScript::MainWorld);
+
+
+ s.setSourceCode(QStringLiteral(R"(
+// ==UserScript==
+// @match qrc:/*main.html
+// ==/UserScript==
+
+document.title = 'New title';
+ )"));
+
+ page.scripts().insert(s);
+ page.load(QUrl("qrc:/resources/test_iframe_main.html"));
+ view.show();
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
+ QCOMPARE(page.title(), "New title");
+}
+
QTEST_MAIN(tst_QWebEngineScript)
#include "tst_qwebenginescript.moc"