Test and test setup

This commit is contained in:
vakrilov
2015-05-04 10:51:18 +03:00
parent 58f493bf69
commit 371c1b1d05
4 changed files with 139 additions and 21 deletions

View File

@ -0,0 +1,38 @@
import observable = require("data/observable");
import pages = require("ui/page");
import frame = require("ui/frame");
import trace = require("trace");
trace.setCategories("gestures");
trace.enable();
// Event handler for Page "loaded" event attached in main-page.xml
export function pageLoaded(args: observable.EventData) {
//// Get the event sender
//var page = <pages.Page>args.object;
//var textItem = new pages.MenuItem();
//textItem.text = "from loaded";
//textItem.on("tap", () => {
// console.log("item added in page.loaded tapped!!!");
//});
//page.optionsMenu.addItem(textItem);
}
export function itemTap(args) {
console.log("----- Item tapped: " + args.view.tag);
frame.topmost().navigate({
moduleName: "./pages/page5",
});
}
export function itemLoaded(args: observable.EventData) {
console.log("----- Item loaded: " + (<any>args.object).tag);
}
export function itemUnloaded(args: observable.EventData) {
console.log("----- Item unloaded: " + (<any>args.object).tag);
}

View File

@ -0,0 +1,21 @@
<Page loaded="itemLoaded" unloaded="itemUnloaded" tag="page">
<TabView loaded="itemLoaded" unloaded="itemUnloaded" tag="TabView">
<TabView.items>
<TabViewItem title="RED">
<TabViewItem.view>
<GridLayout backgroundColor="red" margin="50" tap="itemTap" tag="red" loaded="itemLoaded" unloaded="itemUnloaded"/>
</TabViewItem.view>
</TabViewItem>
<TabViewItem title="GREEN">
<TabViewItem.view>
<GridLayout backgroundColor="green" margin="50" tap="itemTap" tag="green" loaded="itemLoaded" unloaded="itemUnloaded"/>
</TabViewItem.view>
</TabViewItem>
<TabViewItem title="BLUE">
<TabViewItem.view>
<GridLayout backgroundColor="blue" margin="50" tap="itemTap" tag="blue" loaded="itemLoaded" unloaded="itemUnloaded"/>
</TabViewItem.view>
</TabViewItem>
</TabView.items>
</TabView>
</Page>

View File

@ -66,7 +66,7 @@ function print() {
} }
printTNSInfo(); printTNSInfo();
} }
print(); //print();
export function createPage() { export function createPage() {
var page = new pages.Page(); var page = new pages.Page();

View File

@ -322,7 +322,7 @@ export var testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListView
try { try {
var mainPage: pageModule.Page; var mainPage: pageModule.Page;
var pageFactory = function(): pageModule.Page { var pageFactory = function (): pageModule.Page {
var tabView = _createTabView(); var tabView = _createTabView();
var items = []; var items = [];
items.push({ items.push({
@ -408,6 +408,65 @@ export function testBindingIsRefreshedWhenTabViewItemIsUnselectedAndThenSelected
}); });
} }
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]);
}
});
}
function _clickTheFirstButtonInTheListViewNatively(tabView: tabViewModule.TabView) { function _clickTheFirstButtonInTheListViewNatively(tabView: tabViewModule.TabView) {
if (tabView.android) { if (tabView.android) {
var androidListView = <android.widget.ListView>tabView.android.getChildAt(0); var androidListView = <android.widget.ListView>tabView.android.getChildAt(0);