diff --git a/apps/tests/ui/list-view/list-view-tests.ts b/apps/tests/ui/list-view/list-view-tests.ts index 01cc0f642..30de210a6 100644 --- a/apps/tests/ui/list-view/list-view-tests.ts +++ b/apps/tests/ui/list-view/list-view-tests.ts @@ -6,6 +6,7 @@ import types = require("utils/types"); import platform = require("platform"); import utils = require("utils/utils"); import { Label } from "ui/label"; +import {topmost} from "ui/frame"; // >> article-require-listview-module import listViewModule = require("ui/list-view"); @@ -18,17 +19,17 @@ import labelModule = require("ui/label"); // >> article-item-tap function listViewItemTap(args) { - var itemIndex = args.index; - // >> (hide) - console.dump(itemIndex); - // << (hide) + var itemIndex = args.index; + // >> (hide) + console.dump(itemIndex); + // << (hide) } exports.listViewItemTap = listViewItemTap; // << article-item-tap // >> article-load-items function listViewLoadMoreItems(args) { - // Expand your collection bound to the ListView with more items here! + // Expand your collection bound to the ListView with more items here! } // << article-load-items listViewLoadMoreItems("test"); @@ -37,7 +38,6 @@ listViewLoadMoreItems("test"); // } // exports.loaded = loaded; -var ASYNC = 0.2; var FEW_ITEMS = [0, 1, 2]; var MANY_ITEMS = new Array(100); for (var i = 0; i < 100; i++) { @@ -111,8 +111,7 @@ export class ListViewTest extends testModule.UITest { indexes[args.index] = args.android; } }); - - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); for (var item in indexes) { if (platform.device.os === platform.platformNames.ios) { @@ -129,8 +128,7 @@ export class ListViewTest extends testModule.UITest { let colors = ["red", "green", "blue"]; listView.items = colors; - - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); var index = 1; this.performNativeItemTap(listView, index); @@ -147,8 +145,7 @@ export class ListViewTest extends testModule.UITest { var listView = this.testView; listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); listView.items = FEW_ITEMS; - - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), FEW_ITEMS.length, "Native views count."); } @@ -159,7 +156,7 @@ export class ListViewTest extends testModule.UITest { var colors = ["red", "green", "blue"]; listView.items = colors; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), colors.length, "Native views count."); // >> article-change-refresh-listview @@ -167,7 +164,7 @@ export class ListViewTest extends testModule.UITest { // Manually trigger the update so that the new color is shown. listView.refresh(); // << article-change-refresh-listview - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), colors.length, "Native views count."); } @@ -189,7 +186,7 @@ export class ListViewTest extends testModule.UITest { // iOS7 needs to know the size of the cell before it is generated so we first measure them using fake cell // then we generate the real cells. This cause itemLoading to be called twice per index. let expected = (platform.device.os === platform.platformNames.ios && utils.ios.MajorVersion === 7) ? 2 : 1; - TKUnit.waitUntilReady(() => { return completed; }, ASYNC); + TKUnit.waitUntilReady(() => completed); TKUnit.assertEqual(indexes[0], expected, "itemLoading called more than once"); TKUnit.assertEqual(indexes[1], expected, "itemLoading called more than once"); TKUnit.assertEqual(indexes[2], expected, "itemLoading called more than once"); @@ -199,7 +196,7 @@ export class ListViewTest extends testModule.UITest { // again calling refresh will generate itemLoading twice per item. expected += expected; - TKUnit.waitUntilReady(() => { return completed; }, ASYNC); + TKUnit.waitUntilReady(() => completed); TKUnit.assertEqual(indexes[0], expected, "itemLoading not called for index 0"); TKUnit.assertEqual(indexes[1], expected, "itemLoading not called for index 1"); TKUnit.assertEqual(indexes[2], expected, "itemLoading not called for index 2"); @@ -210,11 +207,11 @@ export class ListViewTest extends testModule.UITest { listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); listView.items = FEW_ITEMS; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), FEW_ITEMS.length, "Native views count."); listView.items = null; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === 0; }, ASYNC); + TKUnit.waitUntilReady(() => this.getNativeViewCount(listView) === 0); TKUnit.assertEqual(this.getNativeViewCount(listView), 0, "Native views count."); } @@ -223,11 +220,11 @@ export class ListViewTest extends testModule.UITest { listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); listView.items = FEW_ITEMS; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), FEW_ITEMS.length, "Native views count."); listView.items = undefined; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === 0; }, ASYNC); + TKUnit.waitUntilReady(() => this.getNativeViewCount(listView) === 0); TKUnit.assertEqual(this.getNativeViewCount(listView), 0, "Native views count."); } @@ -236,11 +233,11 @@ export class ListViewTest extends testModule.UITest { listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); listView.items = [1, 2, 3]; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 3, "Native views count."); listView.items = ["a", "b", "c", "d"]; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 4, "Native views count."); } @@ -262,7 +259,7 @@ export class ListViewTest extends testModule.UITest { }); // << article-listview-observablearray - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assert(indexes[0], "itemLoading not called for index 0"); TKUnit.assert(indexes[1], "itemLoading not called for index 1"); TKUnit.assert(indexes[2], "itemLoading not called for index 2"); @@ -275,14 +272,14 @@ export class ListViewTest extends testModule.UITest { var colors = new observableArray.ObservableArray(["red", "green", "blue"]); listView.items = colors; - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 3, "getNativeViewCount"); // >> article-push-in-observablearray colors.push("yellow"); // The ListView will be updated automatically. // << article-push-in-observablearray - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 4, "getNativeViewCount"); } @@ -293,11 +290,11 @@ export class ListViewTest extends testModule.UITest { listView.items = data; listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 3, "getNativeViewCount"); data.pop(); - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 2, "getNativeViewCount"); } @@ -308,12 +305,12 @@ export class ListViewTest extends testModule.UITest { listView.items = data; listView.on(listViewModule.ListView.itemLoadingEvent, this.loadViewWithItemNumber); - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 3, "getNativeViewCount"); // Remove the first 2 elements and add data.splice(0, 2, "d", "e", "f"); - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(this.getNativeViewCount(listView), 4, "getNativeViewCount"); } @@ -337,7 +334,7 @@ export class ListViewTest extends testModule.UITest { }); // << article-itemtap-event /* tslint:enable:no-unused-variable */ - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); this.performNativeItemTap(listView, 1); TKUnit.assert(nativeTapRaised, "itemTap not raised."); @@ -359,7 +356,7 @@ export class ListViewTest extends testModule.UITest { }); // ``` // << article-loadmoreitems-event - TKUnit.waitUntilReady(() => { return this.getNativeViewCount(listView) === listView.items.length; }, ASYNC); + this.waitUntilListViewReady(); TKUnit.assertEqual(loadMoreItemsCount, 1, "loadMoreItemsCount"); } @@ -378,7 +375,7 @@ export class ListViewTest extends testModule.UITest { this.waitUntilTestElementLayoutIsValid(); } else { - TKUnit.wait(ASYNC); + TKUnit.wait(0.2); } TKUnit.assertEqual(loadMoreItemsCount, 0, "loadMoreItemsCount"); @@ -401,7 +398,7 @@ export class ListViewTest extends testModule.UITest { this.waitUntilTestElementLayoutIsValid(); } else { - TKUnit.wait(ASYNC); + TKUnit.wait(0.2); } TKUnit.assert(loadMoreItemsCount > 0, "loadMoreItemsCount"); @@ -428,7 +425,7 @@ export class ListViewTest extends testModule.UITest { listView.itemTemplate = "