on xenial help sign in
add a test
11ec828Lukáš Tinkl
tests/qmltests/Dash/tst_DashPageHeader.qml+39
@@ -28,6 +28,12 @@ Item {
28 width: units.gu(110)
28 width: units.gu(110)
29 height: units.gu(50)
29 height: units.gu(50)
30
30
31+ SignalSpy {
32+ id: escapeSpy
33+ target: pageHeader
34+ signalName: "clearSearch"
35+ }
36+
31 UT.UnityTestCase {
37 UT.UnityTestCase {
32 name: "PageHeaderLabelTest"
38 name: "PageHeaderLabelTest"
33 when: windowShown
39 when: windowShown
@@ -145,6 +151,7 @@ Item {
145
151
146 function cleanup() {
152 function cleanup() {
147 doResetSearch();
153 doResetSearch();
154+ escapeSpy.clear();
148 }
155 }
149
156
150 function test_popup_closing_data() {
157 function test_popup_closing_data() {
@@ -201,6 +208,38 @@ Item {
201 doResetSearch();
208 doResetSearch();
202 }
209 }
203
210
211+ function test_popup_closing_with_escape() {
212+ searchEnabled = true;
213+ pageHeader.searchHistory.clear();
214+
215+ pageHeader.searchHistory.addQuery("Search1");
216+ pageHeader.searchHistory.addQuery("Search2");
217+
218+ pageHeader.triggerSearch();
219+
220+ var headerContainer = findChild(pageHeader, "headerContainer");
221+ tryCompare(pageHeader.extraPanel, "visible", true);
222+
223+ pageHeader.searchQuery = "foobar";
224+
225+ // press Esc once, the search should be cleared
226+ keyClick(Qt.Key_Escape);
227+ pageHeader.searchQuery = ""; // simulate clearing the text field, the clear button doesn't do anything on its own
228+ compare(escapeSpy.count, 1);
229+ compare(escapeSpy.signalArguments[0][0], true);
230+
231+ escapeSpy.clear();
232+
233+ // press Escape a second time, the whole search should be hidden
234+ keyClick(Qt.Key_Escape);
235+ tryCompare(headerContainer, "showSearch", false);
236+ compare(escapeSpy.count, 1);
237+ compare(escapeSpy.signalArguments[0][0], false);
238+ tryCompare(pageHeader.extraPanel, "visible", false);
239+
240+ doResetSearch();
241+ }
242+
204 function test_search_change_shows_search() {
243 function test_search_change_shows_search() {
205 var headerContainer = findChild(pageHeader, "headerContainer");
244 var headerContainer = findChild(pageHeader, "headerContainer");
206 compare(headerContainer.showSearch, false);
245 compare(headerContainer.showSearch, false);