mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 21:01:34 +08:00
Test and test setup
This commit is contained in:
38
apps/tests/pages/page18.ts
Normal file
38
apps/tests/pages/page18.ts
Normal 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);
|
||||||
|
}
|
21
apps/tests/pages/page18.xml
Normal file
21
apps/tests/pages/page18.xml
Normal 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>
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
Reference in New Issue
Block a user