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.cpp62
1 files changed, 44 insertions, 18 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 837481fad..59cbc978b 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2135,29 +2135,55 @@ void tst_QWebEnginePage::testStopScheduledPageRefresh()
void tst_QWebEnginePage::findText()
{
- QSignalSpy loadSpy(m_page, SIGNAL(loadFinished(bool)));
- m_page->setHtml(QString("<html><head></head><body><div>foo bar</div></body></html>"));
+ QSignalSpy loadSpy(m_view, SIGNAL(loadFinished(bool)));
+ m_view->setHtml(QString("<html><head></head><body><div>foo bar</div></body></html>"));
+
+ // Showing is required, otherwise all find operations fail.
+ m_view->show();
QTRY_COMPARE(loadSpy.count(), 1);
// Select whole page contents.
- m_page->triggerAction(QWebEnginePage::SelectAll);
- QTRY_COMPARE(m_page->hasSelection(), true);
+ m_view->page()->triggerAction(QWebEnginePage::SelectAll);
+ QTRY_COMPARE(m_view->hasSelection(), true);
- // Invoke a stopFinding() operation, which should clear the currently selected text.
- m_page->findText("");
- QTRY_VERIFY(m_page->selectedText().isEmpty());
+ // Invoking a stopFinding operation will not change or clear the currently selected text,
+ // if nothing was found beforehand.
+ {
+ CallbackSpy<bool> spy;
+ m_view->findText("", 0, spy.ref());
+ QVERIFY(spy.wasCalled());
+ QTRY_COMPARE(m_view->selectedText(), QString("foo bar"));
+ }
- QStringList words = (QStringList() << "foo" << "bar");
- foreach (QString subString, words) {
- // Invoke a find operation, which should clear the currently selected text, should
- // highlight all the found ocurrences, but should not update the selected text to the
- // searched for string.
- m_page->findText(subString);
- QTRY_VERIFY(m_page->selectedText().isEmpty());
-
- // Search highlights should be cleared, selected text should still be empty.
- m_page->findText("");
- QTRY_VERIFY(m_page->selectedText().isEmpty());
+ // Invoking a startFinding operation with text that won't be found, will clear the current
+ // selection.
+ {
+ CallbackSpy<bool> spy;
+ m_view->findText("Will not be found", 0, spy.ref());
+ QCOMPARE(spy.waitForResult(), false);
+ QTRY_VERIFY(m_view->selectedText().isEmpty());
+ }
+
+ // Select whole page contents again.
+ m_view->page()->triggerAction(QWebEnginePage::SelectAll);
+ QTRY_COMPARE(m_view->hasSelection(), true);
+
+ // Invoking a startFinding operation with text that will be found, will clear the current
+ // selection as well.
+ {
+ CallbackSpy<bool> spy;
+ m_view->findText("foo", 0, spy.ref());
+ QVERIFY(spy.waitForResult());
+ QTRY_VERIFY(m_view->selectedText().isEmpty());
+ }
+
+ // Invoking a stopFinding operation after text was found, will set the selected text to the
+ // found text.
+ {
+ CallbackSpy<bool> spy;
+ m_view->findText("", 0, spy.ref());
+ QTRY_VERIFY(spy.wasCalled());
+ QTRY_COMPARE(m_view->selectedText(), QString("foo"));
}
}