@@ -39,6 +39,8 @@ Item {
3939
4040 Scopes {
4141 id: scopes
42+ // for tryGenericScopeView
43+ onLoadedChanged: if (loaded) genericScopeView.scope = scopes.getScope(2);
4244 }
4345
4446 SignalSpy {
@@ -59,7 +61,7 @@ Item {
5961 name: "GenericScopeView"
6062 when: scopes.loaded && windowShown
6163
62− property Item previewListView: findChild(genericScopeView, "previewListView")
64+ property Item subPageLoader: findChild(genericScopeView, "subPageLoader")
6365 property Item header: findChild(genericScopeView, "scopePageHeader")
6466
6567 function init() {
@@ -94,24 +96,24 @@ Item {
9496 tryCompare(genericScopeView.scope, "isActive", false)
9597 genericScopeView.isCurrent = true
9698 tryCompare(genericScopeView.scope, "isActive", true)
97− testCase.previewListView.open = true
99+ testCase.subPageLoader.open = true
98100 tryCompare(genericScopeView.scope, "isActive", false)
99− testCase.previewListView.open = false
101+ testCase.subPageLoader.open = false
100102 tryCompare(genericScopeView.scope, "isActive", true)
101103 genericScopeView.isCurrent = false
102104 tryCompare(genericScopeView.scope, "isActive", false)
103105 }
104106
105107 function test_showDash() {
106− testCase.previewListView.open = true;
108+ testCase.subPageLoader.open = true;
107109 genericScopeView.scope.showDash();
108− tryCompare(testCase.previewListView, "open", false);
110+ tryCompare(testCase.subPageLoader, "open", false);
109111 }
110112
111113 function test_hideDash() {
112− testCase.previewListView.open = true;
114+ testCase.subPageLoader.open = true;
113115 genericScopeView.scope.hideDash();
114− tryCompare(testCase.previewListView, "open", false);
116+ tryCompare(testCase.subPageLoader, "open", false);
115117 }
116118
117119 function test_searchQuery() {
@@ -214,7 +216,7 @@ Item {
214216
215217 openPreview(4, 0);
216218
217− compare(testCase.previewListView.count, 12, "There should only be 12 items in preview.");
219+ compare(testCase.subPageLoader.count, 12, "There should only be 12 items in preview.");
218220
219221 closePreview();
220222 }
@@ -276,19 +278,21 @@ Item {
276278 true);
277279 var tile = findChild(findChild(genericScopeView, category), "delegate"+delegate);
278280 mouseClick(tile, tile.width / 2, tile.height / 2);
279− tryCompare(testCase.previewListView, "open", true);
280− tryCompare(testCase.previewListView, "x", 0);
281+ tryCompare(testCase.subPageLoader, "open", true);
282+ tryCompare(testCase.subPageLoader, "x", 0);
281283 }
282284
283285 function closePreview() {
284− var closePreviewMouseArea = findChild(genericScopeView, "innerPageHeader");
286+ var closePreviewMouseArea = findChild(subPageLoader.item, "pageHeader");
285287 mouseClick(closePreviewMouseArea, units.gu(2), units.gu(2));
286288
287− tryCompare(testCase.previewListView, "open", false);
289+ tryCompare(testCase.subPageLoader, "open", false);
290+ tryCompare(testCase.subPageLoader, "visible", false);
288291 }
289292
290293 function test_previewOpenClose() {
291− tryCompare(testCase.previewListView, "open", false);
294+ tryCompare(testCase.subPageLoader, "open", false);
295+ tryCompare(testCase.subPageLoader, "visible", false);
292296
293297 var categoryListView = findChild(genericScopeView, "categoryListView");
294298 categoryListView.positionAtBeginning();
@@ -300,7 +304,7 @@ Item {
300304 function test_showPreviewCarousel() {
301305 var category = scrollToCategory("dashCategory1");
302306
303− tryCompare(testCase.previewListView, "open", false);
307+ tryCompare(testCase.subPageLoader, "open", false);
304308
305309 var tile = findChild(category, "carouselDelegate1");
306310 verify(tile, "Could not find delegate");
@@ -308,14 +312,14 @@ Item {
308312 mouseClick(tile, tile.width / 2, tile.height / 2);
309313 tryCompare(tile, "explicitlyScaled", true);
310314 mouseClick(tile, tile.width / 2, tile.height / 2);
311− tryCompare(testCase.previewListView, "open", true);
312− tryCompare(testCase.previewListView, "x", 0);
315+ tryCompare(testCase.subPageLoader, "open", true);
316+ tryCompare(testCase.subPageLoader, "x", 0);
313317
314318 closePreview();
315319
316320 mousePress(tile, tile.width / 2, tile.height / 2);
317− tryCompare(testCase.previewListView, "open", true);
318− tryCompare(testCase.previewListView, "x", 0);
321+ tryCompare(testCase.subPageLoader, "open", true);
322+ tryCompare(testCase.subPageLoader, "x", 0);
319323 mouseRelease(tile, tile.width / 2, tile.height / 2);
320324
321325 closePreview();
@@ -324,20 +328,20 @@ Item {
324328 function test_showPreviewHorizontalList() {
325329 var category = scrollToCategory("dashCategory18");
326330
327− tryCompare(testCase.previewListView, "open", false);
331+ tryCompare(testCase.subPageLoader, "open", false);
328332
329333 var tile = findChild(category, "delegate1");
330334 verify(tile, "Could not find delegate");
331335
332336 mouseClick(tile, tile.width / 2, tile.height / 2);
333− tryCompare(testCase.previewListView, "open", true);
334− tryCompare(testCase.previewListView, "x", 0);
337+ tryCompare(testCase.subPageLoader, "open", true);
338+ tryCompare(testCase.subPageLoader, "x", 0);
335339
336340 closePreview();
337341
338342 mousePress(tile, tile.width / 2, tile.height / 2);
339− tryCompare(testCase.previewListView, "open", true);
340− tryCompare(testCase.previewListView, "x", 0);
343+ tryCompare(testCase.subPageLoader, "open", true);
344+ tryCompare(testCase.subPageLoader, "x", 0);
341345 mouseRelease(tile, tile.width / 2, tile.height / 2);
342346
343347 closePreview();
@@ -347,25 +351,52 @@ Item {
347351 var categoryListView = findChild(genericScopeView, "categoryListView");
348352 categoryListView.positionAtBeginning();
349353
350− tryCompare(testCase.previewListView, "open", false);
351− var previewListViewList = findChild(previewListView, "listView");
354+ tryCompare(testCase.subPageLoader, "open", false);
352355
353356 openPreview();
357+ var previewListViewList = findChild(subPageLoader.item, "listView");
354358
355359 // flick to the next previews
356− tryCompare(testCase.previewListView, "count", 15);
357− for (var i = 1; i < testCase.previewListView.count; ++i) {
358− mouseFlick(testCase.previewListView, testCase.previewListView.width - units.gu(1),
359− testCase.previewListView.height / 2,
360+ tryCompare(testCase.subPageLoader, "count", 15);
361+ for (var i = 1; i < testCase.subPageLoader.count; ++i) {
362+ mouseFlick(testCase.subPageLoader.item, testCase.subPageLoader.width - units.gu(1),
363+ testCase.subPageLoader.height / 2,
360364 units.gu(2),
361− testCase.previewListView.height / 2);
365+ testCase.subPageLoader.height / 2);
362366 tryCompare(previewListViewList, "moving", false);
363− tryCompare(testCase.previewListView.currentItem, "objectName", "preview" + i);
364−
367+ tryCompare(testCase.subPageLoader.currentItem, "objectName", "preview" + i);
365368 }
366369 closePreview();
367370 }
368371
372+ function test_settingsOpenClose() {
373+ waitForRendering(genericScopeView);
374+ verify(header, "Could not find the header.");
375+ var innerHeader = findChild(header, "innerPageHeader");
376+ verify(innerHeader, "Could not find the inner header");
377+
378+ // open
379+ tryCompare(testCase.subPageLoader, "open", false);
380+ tryCompare(testCase.subPageLoader, "visible", false);
381+ var settings = findChild(innerHeader, "settings_header_button");
382+ mouseClick(settings, settings.width / 2, settings.height / 2);
383+ tryCompare(testCase.subPageLoader, "open", true);
384+ tryCompareFunction(function() { return (String(subPageLoader.source)).indexOf("ScopeSettingsPage.qml") != -1; }, true);
385+ tryCompare(genericScopeView, "subPageShown", true);
386+ compare(testCase.subPageLoader.subPage, "settings");
387+ tryCompare(testCase.subPageLoader, "x", 0);
388+
389+ // close
390+ var settingsHeader = findChild(testCase.subPageLoader.item, "pageHeader");
391+ mouseClick(settingsHeader, units.gu(2), units.gu(2));
392+ tryCompare(testCase.subPageLoader, "open", false);
393+ tryCompare(genericScopeView, "subPageShown", false);
394+ var categoryListView = findChild(genericScopeView, "categoryListView");
395+ tryCompare(categoryListView, "x", 0);
396+ tryCompare(testCase.subPageLoader, "visible", false);
397+ tryCompare(testCase.subPageLoader, "source", "");
398+ }
399+
369400 function test_header_style_data() {
370401 return [
371402 { tag: "Default", index: 0, foreground: UbuntuColors.darkGrey, background: "color:///#f5f5f5", logo: "" },