Skip to content

Commit

Permalink
Merge pull request #41 from sailfishos/jb57275
Browse files Browse the repository at this point in the history
Split and fix tst_searchengine
  • Loading branch information
rainemak committed Feb 18, 2022
2 parents f5c21c1 + 807901a commit d536219
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 16 deletions.
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>

0 comments on commit d536219

Please sign in to comment.