mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-26 03:01:51 +08:00
Test and test setup
This commit is contained in:
@ -322,7 +322,7 @@ export var testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListView
|
||||
try {
|
||||
|
||||
var mainPage: pageModule.Page;
|
||||
var pageFactory = function(): pageModule.Page {
|
||||
var pageFactory = function (): pageModule.Page {
|
||||
var tabView = _createTabView();
|
||||
var items = [];
|
||||
items.push({
|
||||
@ -349,13 +349,13 @@ export var testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListView
|
||||
helper.navigate(pageFactory);
|
||||
|
||||
var tabView = mainPage.getViewById<tabViewModule.TabView>("TabView");
|
||||
|
||||
|
||||
// This will navigate to a details page. The wait is inside the method.
|
||||
_clickTheFirstButtonInTheListViewNatively(tabView);
|
||||
|
||||
// Go back to the main page containing the TabView.
|
||||
helper.goBack();
|
||||
|
||||
|
||||
// Go back to the root tests page.
|
||||
helper.goBack();
|
||||
}
|
||||
@ -371,20 +371,20 @@ export var testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListView
|
||||
}
|
||||
|
||||
export function testBindingIsRefreshedWhenTabViewItemIsUnselectedAndThenSelectedAgain() {
|
||||
helper.buildUIAndRunTest(_createTabView(), function (views: Array<viewModule.View>) {
|
||||
var viewModel = new observable.Observable();
|
||||
viewModel.set("counter", 0);
|
||||
frameModule.topmost().currentPage.bindingContext = viewModel;
|
||||
helper.buildUIAndRunTest(_createTabView(), function (views: Array<viewModule.View>) {
|
||||
var viewModel = new observable.Observable();
|
||||
viewModel.set("counter", 0);
|
||||
frameModule.topmost().currentPage.bindingContext = viewModel;
|
||||
|
||||
var tabView = <tabViewModule.TabView>views[0];
|
||||
|
||||
var items = _createItems(10);
|
||||
var items = _createItems(10);
|
||||
|
||||
var StackLayout0 = new stackLayoutModule.StackLayout();
|
||||
var label0 = new labelModule.Label();
|
||||
label0.text = "Tab 0";
|
||||
label0.id = "testLabel";
|
||||
label0.bind({ sourceProperty: "counter", targetProperty: "text", twoWay: true });
|
||||
label0.id = "testLabel";
|
||||
label0.bind({ sourceProperty: "counter", targetProperty: "text", twoWay: true });
|
||||
StackLayout0.addChild(label0);
|
||||
var tabEntry0 = {
|
||||
title: "Tab 0",
|
||||
@ -393,18 +393,77 @@ export function testBindingIsRefreshedWhenTabViewItemIsUnselectedAndThenSelected
|
||||
items.push(tabEntry0);
|
||||
tabView.items = items;
|
||||
|
||||
tabView.selectedIndex = 10;
|
||||
TKUnit.wait(ASYNC);
|
||||
tabView.selectedIndex = 10;
|
||||
TKUnit.wait(ASYNC);
|
||||
|
||||
tabView.selectedIndex = 0;
|
||||
TKUnit.wait(ASYNC);
|
||||
tabView.selectedIndex = 0;
|
||||
TKUnit.wait(ASYNC);
|
||||
|
||||
tabView.selectedIndex = 10;
|
||||
TKUnit.wait(ASYNC);
|
||||
var expectedValue = 5;
|
||||
viewModel.set("counter", expectedValue);
|
||||
var testLabel = <labelModule.Label>(tabView.items[10].view.getViewById("testLabel"))
|
||||
TKUnit.assertEqual(testLabel.text, expectedValue, "binding is not working!");
|
||||
tabView.selectedIndex = 10;
|
||||
TKUnit.wait(ASYNC);
|
||||
var expectedValue = 5;
|
||||
viewModel.set("counter", expectedValue);
|
||||
var testLabel = <labelModule.Label>(tabView.items[10].view.getViewById("testLabel"))
|
||||
TKUnit.assertEqual(testLabel.text, expectedValue, "binding is not working!");
|
||||
});
|
||||
}
|
||||
|
||||
export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack() {
|
||||
var topFrame = frameModule.topmost();
|
||||
var itemCount = 3;
|
||||
var loadedItems = [0, 0, 0];
|
||||
var unloadedItems = [0, 0, 0];
|
||||
|
||||
var tabView = _createTabView();
|
||||
var items = _createItems(itemCount);
|
||||
tabView.items = items;
|
||||
|
||||
function createLoadedFor(itemIndex: number) {
|
||||
return function () {
|
||||
console.log("loaded item: " + itemIndex)
|
||||
loadedItems[itemIndex] = loadedItems[itemIndex] + 1;
|
||||
}
|
||||
}
|
||||
|
||||
function createUnloadedFor(itemIndex: number) {
|
||||
return function () {
|
||||
console.log("unloaded item: " + itemIndex)
|
||||
unloadedItems[itemIndex] = unloadedItems[itemIndex] + 1;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < itemCount; i++) {
|
||||
items[i].view.on("loaded", createLoadedFor(i));
|
||||
items[i].view.on("unloaded", createUnloadedFor(i));
|
||||
}
|
||||
|
||||
helper.buildUIAndRunTest(tabView, function () {
|
||||
try {
|
||||
var detailsPageFactory = function (): pageModule.Page {
|
||||
var detailsPage = new pageModule.Page();
|
||||
detailsPage.content = new labelModule.Label();
|
||||
return detailsPage;
|
||||
};
|
||||
|
||||
helper.navigate(detailsPageFactory);
|
||||
}
|
||||
finally {
|
||||
// Go back to the test page.
|
||||
helper.goBack();
|
||||
}
|
||||
|
||||
console.log("loaded items: " + loadedItems.join(", "));
|
||||
console.log("unloadedItems items: " + unloadedItems.join(", "));
|
||||
|
||||
// Check that at least the first item is loaded and unloaded
|
||||
TKUnit.assertEqual(loadedItems[0], 1, "loaded count for 1st item");
|
||||
TKUnit.assertEqual(unloadedItems[0], 1, "unloaded count for 1st item");
|
||||
|
||||
// Check that loaded/unloaded coutns are equal for all tabs
|
||||
for (var i = 0; i < itemCount; i++) {
|
||||
TKUnit.assert(loadedItems[i] === unloadedItems[i],
|
||||
"Loaded and unloaded calls are not equal for item " + i + " loaded: " + loadedItems[i] + " unloaded: " + unloadedItems[i]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user