@@ -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)
34+ signalName: "clearSearch"
31 UT.UnityTestCase {
37 UT.UnityTestCase {
32 name: "PageHeaderLabelTest"
38 name: "PageHeaderLabelTest"
33 when: windowShown
39 when: windowShown
@@ -145,6 +151,7 @@ Item {
146 function cleanup() {
152 function cleanup() {
147 doResetSearch();
153 doResetSearch();
150 function test_popup_closing_data() {
157 function test_popup_closing_data() {
@@ -201,6 +208,38 @@ Item {
201 doResetSearch();
208 doResetSearch();
211+ function test_popup_closing_with_escape() {
212+ searchEnabled = true;
213+ pageHeader.searchHistory.clear();
215+ pageHeader.searchHistory.addQuery("Search1");
216+ pageHeader.searchHistory.addQuery("Search2");
218+ pageHeader.triggerSearch();
220+ var headerContainer = findChild(pageHeader, "headerContainer");
221+ tryCompare(pageHeader.extraPanel, "visible", true);
223+ pageHeader.searchQuery = "foobar";
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);
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);
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);