Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split and fix tst_searchengine #41

Merged
merged 2 commits into from
Feb 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
74 changes: 59 additions & 15 deletions tests/auto/desktop-qt5/searchengine/tst_searchengine.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,47 @@ import QtTest 1.0
import QtQuick 2.0
import Qt5Mozilla 1.0
import QtMozEmbed.Tests 1.0
import Nemo.Connectivity 1.0

import "../../shared/componentCreation.js" as MyScript
import "../../shared"

TestWindow {
id: appWindow

property var testResult
property string testResult
property var testEngines
property var testDefault
property string testDefault

name: testcaseid.name

Connections {
target: QmlMozContext
onOnInitialized: {
QMozEngineSettings.setPreference("browser.search.defaultenginename", "QMOZTest")
QmlMozContext.addComponentManifest(TestHelper.getenv("QTTESTSROOT") + "/components/TestHelpers.manifest")
QMozEngineSettings.setPreference("browser.search.defaultenginename", "QMOZTest")
QMozEngineSettings.setPreference("browser.search.log", true)
QMozEngineSettings.setPreference("keyword.enabled", true)
QmlMozContext.addObserver("browser-search-engine-modified")
QmlMozContext.addObserver("embed:search")
QMozEngineSettings.setPreference("keyword.enabled", true)
}
onRecvObserve: {
if (message == "embed:search") {
switch (data.msg) {
case "init": {
print("Received: search:" + message, ", msg: ", data.msg, data.defaultEngine)
appWindow.testEngines = data.engines
appWindow.testDefault = data.defaultEngine
appWindow.testDefault = data.defaultEngine || ""
break
}
case "search-engine-added": {
appWindow.testEngines.push(data.engine)

break
}
case "search-engine-default-changed": {
print("Default search engine changed:", data.msg, data.defaultEngine)
appWindow.testDefault = data.defaultEngine || ""
break
}
}
Expand All @@ -61,47 +69,83 @@ TestWindow {
}
}

ConnectionHelper {
id: connectionHelper
readonly property bool connected: status >= ConnectionHelper.Connected
}

SignalSpy {
id: initializedSpy
target: QmlMozContext
signalName: "initialized"
}

TestCase {
id: testcaseid
name: "tst_searchengine"
when: windowShown

function initTestCase() {
QmlMozContext.addObserver("embed:search");
QMozEngineSettings.setPreference("keyword.enabled", true);

if (!QmlMozContext.isInitialized()) {
initializedSpy.wait()
}
}

function cleanupTestCase() {
MyScript.dumpTs("tst_searchengine cleanupTestCase")
wait(1000)
}

function test_TestCheckDefaultSearch() {
function test_001_addSearchEngine() {
var engineExistsPredicate = function() {
var found = false;

appWindow.testEngines.forEach(function(e) {
MyScript.dumpTs("Engine:", e)
if (e === "QMOZTest") {
found = true;
}
});

return !found;
};
MyScript.dumpTs("TestCheckDefaultSearch start")
MyScript.dumpTs("AddSearchEngine start")
verify(MyScript.waitMozContext())
QMozEngineSettings.setPreference("browser.search.log", true);
QmlMozContext.addObserver("browser-search-engine-modified");
QmlMozContext.addObserver("embed:search");
QMozEngineSettings.setPreference("keyword.enabled", true);

verify(MyScript.waitMozView())
QmlMozContext.notifyObservers("embedui:search", {msg:"remove", name: "QMOZTest"})
verify(MyScript.wrtWait(function() { return (!engineExistsPredicate()); }))
QmlMozContext.notifyObservers("embedui:search", {msg:"loadxml", uri: "file://" + TestHelper.getenv("QTTESTSROOT") + "/auto/shared/searchengine/test.xml", confirm: false})
verify(MyScript.wrtWait(function() { return (appWindow.testResult !== "loaded"); }))
QmlMozContext.notifyObservers("embedui:search", {msg:"getlist"})
verify(MyScript.wrtWait(engineExistsPredicate));
webViewport.load("linux home");
MyScript.dumpTs("AddSearchEngine end");
}

function test_002_setDefaultSearchEngine() {
MyScript.dumpTs("setDefaultSearchEngine start")
QmlMozContext.notifyObservers("embedui:search", { msg: "setdefault", name: "QMOZTest"})
verify(MyScript.wrtWait(function() { return (appWindow.testDefault !== "QMOZTest"); }))
MyScript.dumpTs("setDefaultSearchEngine end")
}

function test_003_searchFromWeb() {
MyScript.dumpTs("searchFromWeb start")

if (!connectionHelper.connected) {
skip("searching with a search engine requires network access.")
}

webViewport.load("QMOZTest");
verify(MyScript.waitLoadFinished(webViewport))
compare(webViewport.loadProgress, 100);
verify(MyScript.wrtWait(function() { return (!webViewport.painted); }))
verify(webViewport.url.toString().indexOf(appWindow.testDefault.toLowerCase()) !== -1)
MyScript.dumpTs("TestCheckDefaultSearch end");

compare(webViewport.url.toString(), "https://qmoztest/?search=qmoztest")

MyScript.dumpTs("searchFromWeb end")
}
}
}
2 changes: 1 addition & 1 deletion tests/auto/shared/searchengine/test.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
<ShortName>QMOZTest</ShortName>
<Description>Qt Moz Embed search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Url type="text/html" method="GET" template="https://webhook/?search={searchTerms}"/>
<Url type="text/html" method="GET" template="https://qmoztest/?search={searchTerms}"/>
<SearchForm>https://webhook/</SearchForm>
</SearchPlugin>