diff options
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 38 | ||||
-rw-r--r-- | tests/auto/widgets/util.h | 7 |
2 files changed, 40 insertions, 5 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index d6f154e5e..bb07e2e00 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -173,6 +173,7 @@ private Q_SLOTS: void showModalDialog(); void testStopScheduledPageRefresh(); void findText(); + void findTextResult(); void supportedContentType(); // [Qt] tst_QWebEnginePage::infiniteLoopJS() timeouts with DFG JIT // https://bugs.webkit.org/show_bug.cgi?id=79040 @@ -3187,26 +3188,53 @@ void tst_QWebEnginePage::testStopScheduledPageRefresh() void tst_QWebEnginePage::findText() { -#if !defined(QWEBENGINEPAGE_FINDTEXT) - QSKIP("QWEBENGINEPAGE_FINDTEXT"); -#else m_view->setHtml(QString("<html><head></head><body><div>foo bar</div></body></html>")); +#if defined(QWEBENGINEPAGE_TRIGGERACTION_SELECTALL) m_page->triggerAction(QWebEnginePage::SelectAll); QVERIFY(!m_page->selectedText().isEmpty()); QVERIFY(!m_page->selectedHtml().isEmpty()); +#endif m_page->findText(""); QVERIFY(m_page->selectedText().isEmpty()); +#if defined(QWEBENGINEPAGE_SELECTEDHTML) QVERIFY(m_page->selectedHtml().isEmpty()); +#endif QStringList words = (QStringList() << "foo" << "bar"); foreach (QString subString, words) { - m_page->findText(subString, QWebEnginePage::FindWrapsAroundDocument); + m_page->findText(subString); + QEXPECT_FAIL("", "Unsupported: findText only highlights and doesn't update the selection.", Continue); QCOMPARE(m_page->selectedText(), subString); +#if defined(QWEBENGINEPAGE_SELECTEDHTML) QVERIFY(m_page->selectedHtml().contains(subString)); +#endif m_page->findText(""); QVERIFY(m_page->selectedText().isEmpty()); +#if defined(QWEBENGINEPAGE_SELECTEDHTML) QVERIFY(m_page->selectedHtml().isEmpty()); - } #endif + } +} + +void tst_QWebEnginePage::findTextResult() +{ + // findText will abort in blink if the view has an empty size. + m_view->resize(800, 600); + m_view->show(); + + QSignalSpy loadSpy(m_view, SIGNAL(loadFinished(bool))); + m_view->setHtml(QString("<html><head></head><body><div>foo bar</div></body></html>")); + QTRY_COMPARE(loadSpy.count(), 1); + + QCOMPARE(findTextSync(m_page, ""), false); + + QStringList words = (QStringList() << "foo" << "bar"); + foreach (QString subString, words) { + QCOMPARE(findTextSync(m_page, subString), true); + QCOMPARE(findTextSync(m_page, ""), false); + } + + QCOMPARE(findTextSync(m_page, "blahhh"), false); + QCOMPARE(findTextSync(m_page, ""), false); } static QString getMimeTypeForExtension(const QString &ext) diff --git a/tests/auto/widgets/util.h b/tests/auto/widgets/util.h index 0b146aedc..035578358 100644 --- a/tests/auto/widgets/util.h +++ b/tests/auto/widgets/util.h @@ -142,6 +142,13 @@ static inline QString toHtmlSync(QWebEnginePage *page) return spy.waitForResult(); } +static inline bool findTextSync(QWebEnginePage *page, const QString &subString) +{ + CallbackSpy<bool> spy; + page->findText(subString, 0, spy.ref()); + return spy.waitForResult(); +} + static inline QVariant evaluateJavaScriptSync(QWebEnginePage *page, const QString &script) { CallbackSpy<QVariant> spy; |