mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Enabled tab-view-navigation-tests.
This commit is contained in:
@@ -1,61 +1,72 @@
|
|||||||
//function _createTabView(): TabView {
|
import TKUnit = require("../../TKUnit");
|
||||||
//var tabView = new TabView();
|
import helper = require("../helper");
|
||||||
//tabView.id = "TabView";
|
import {Label} from "ui/label";
|
||||||
//return tabView;
|
import {StackLayout} from "ui/layouts/stack-layout";
|
||||||
//}
|
import frameModule = require("ui/frame");
|
||||||
|
import {Page} from "ui/page";
|
||||||
|
import {ListView, ItemEventData} from "ui/list-view";
|
||||||
|
import {TabView, TabViewItem} from "ui/tab-view";
|
||||||
|
import {Button} from "ui/button";
|
||||||
|
|
||||||
//function _createItems(count: number): Array<TabViewItem> {
|
var ASYNC = 2;
|
||||||
//var items = new Array<TabViewItem>();
|
|
||||||
//for (var i = 0; i < count; i++) {
|
|
||||||
//var label = new Label();
|
|
||||||
//label.text = "Tab " + i;
|
|
||||||
//var tabEntry = new TabViewItem({
|
|
||||||
//title: "Tab " + i,
|
|
||||||
//view: label
|
|
||||||
//});
|
|
||||||
//items.push(tabEntry);
|
|
||||||
//}
|
|
||||||
//return items;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//function _createListView(): ListView {
|
function _createTabView(): TabView {
|
||||||
//var listView = new ListView();
|
var tabView = new TabView();
|
||||||
//listView.id = "ListView";
|
tabView.id = "TabView";
|
||||||
//var items = Array.apply(null, Array(10)).map(function (_, i) { return i; });
|
return tabView;
|
||||||
|
}
|
||||||
|
|
||||||
//listView.on(ListView.itemLoadingEvent, function (args: ItemEventData) {
|
function _createItems(count: number): Array<TabViewItem> {
|
||||||
//var button = <Button>args.view;
|
var items = new Array<TabViewItem>();
|
||||||
//if (!button) {
|
for (var i = 0; i < count; i++) {
|
||||||
//button = new Button();
|
var label = new Label();
|
||||||
//args.view = button;
|
label.text = "Tab " + i;
|
||||||
//}
|
var tabEntry = new TabViewItem({
|
||||||
|
title: "Tab " + i,
|
||||||
|
view: label
|
||||||
|
});
|
||||||
|
items.push(tabEntry);
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
//button.text = "Button" + args.index;
|
function _createListView(): ListView {
|
||||||
//button.id = button.text;
|
var listView = new ListView();
|
||||||
//button.on(Button.tapEvent, _clickHandlerFactory(args.index));
|
listView.id = "ListView";
|
||||||
//});
|
var items = Array.apply(null, Array(10)).map(function (_, i) { return i; });
|
||||||
|
|
||||||
//listView.items = items;
|
listView.on(ListView.itemLoadingEvent, function (args: ItemEventData) {
|
||||||
|
var button = <Button>args.view;
|
||||||
|
if (!button) {
|
||||||
|
button = new Button();
|
||||||
|
args.view = button;
|
||||||
|
}
|
||||||
|
|
||||||
//return listView;
|
button.text = "Button" + args.index;
|
||||||
//}
|
button.id = button.text;
|
||||||
|
button.on(Button.tapEvent, _clickHandlerFactory(args.index));
|
||||||
|
});
|
||||||
|
|
||||||
//var _clickHandlerFactory = function (index: number) {
|
listView.items = items;
|
||||||
//return function () {
|
|
||||||
//var pageFactory = function (): Page {
|
|
||||||
//var detailsLabel = new Label();
|
|
||||||
//detailsLabel.text = "Details Page " + index;
|
|
||||||
//var detailsPage = new Page();
|
|
||||||
//detailsPage.content = detailsLabel;
|
|
||||||
//return detailsPage;
|
|
||||||
//};
|
|
||||||
|
|
||||||
//helper.navigate(pageFactory);
|
return listView;
|
||||||
//}
|
}
|
||||||
//}
|
|
||||||
|
var _clickHandlerFactory = function (index: number) {
|
||||||
|
return function () {
|
||||||
|
var pageFactory = function (): Page {
|
||||||
|
var detailsLabel = new Label();
|
||||||
|
detailsLabel.text = "Details Page " + index;
|
||||||
|
var detailsPage = new Page();
|
||||||
|
detailsPage.content = detailsLabel;
|
||||||
|
return detailsPage;
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.navigate(pageFactory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListViewTheListViewIsThere() {
|
export function testWhenNavigatingBackToANonCachedPageContainingATabViewWithAListViewTheListViewIsThere() {
|
||||||
/*
|
|
||||||
var topFrame = frameModule.topmost();
|
var topFrame = frameModule.topmost();
|
||||||
var oldChache;
|
var oldChache;
|
||||||
|
|
||||||
@@ -113,9 +124,8 @@ export function testWhenNavigatingBackToANonCachedPageContainingATabViewWithALis
|
|||||||
var listView = mainPage.getViewById<ListView>("ListView");
|
var listView = mainPage.getViewById<ListView>("ListView");
|
||||||
|
|
||||||
TKUnit.assert(listView !== undefined, "ListView should be created when navigating back to the main page.");
|
TKUnit.assert(listView !== undefined, "ListView should be created when navigating back to the main page.");
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack_NoPageCaching() {
|
export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack_NoPageCaching() {
|
||||||
testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(false);
|
testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(false);
|
||||||
}
|
}
|
||||||
@@ -123,93 +133,93 @@ export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack_NoPageCa
|
|||||||
export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack_WithPageCaching() {
|
export function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack_WithPageCaching() {
|
||||||
testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(true);
|
testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(true);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
//function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(enablePageCache: boolean) {
|
|
||||||
//var i: number;
|
|
||||||
//var itemCount = 3;
|
|
||||||
//var loadedItems = [0, 0, 0];
|
|
||||||
//var unloadedItems = [0, 0, 0];
|
|
||||||
|
|
||||||
//var topFrame = frameModule.topmost();
|
function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(enablePageCache: boolean) {
|
||||||
//var oldChache;
|
var i: number;
|
||||||
|
var itemCount = 3;
|
||||||
|
var loadedItems = [0, 0, 0];
|
||||||
|
var unloadedItems = [0, 0, 0];
|
||||||
|
|
||||||
//if (topFrame.android) {
|
var topFrame = frameModule.topmost();
|
||||||
//oldChache = topFrame.android.cachePagesOnNavigate;
|
var oldChache;
|
||||||
//topFrame.android.cachePagesOnNavigate = enablePageCache;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//try {
|
if (topFrame.android) {
|
||||||
//var tabView = _createTabView();
|
oldChache = topFrame.android.cachePagesOnNavigate;
|
||||||
//var items = _createItems(itemCount);
|
topFrame.android.cachePagesOnNavigate = enablePageCache;
|
||||||
//tabView.items = items;
|
}
|
||||||
|
|
||||||
//function createLoadedFor(itemIndex: number) {
|
try {
|
||||||
//return function () {
|
var tabView = _createTabView();
|
||||||
//loadedItems[itemIndex] = loadedItems[itemIndex] + 1;
|
var items = _createItems(itemCount);
|
||||||
//}
|
tabView.items = items;
|
||||||
//}
|
|
||||||
|
|
||||||
//function createUnloadedFor(itemIndex: number) {
|
function createLoadedFor(itemIndex: number) {
|
||||||
//return function () {
|
return function () {
|
||||||
//unloadedItems[itemIndex] = unloadedItems[itemIndex] + 1;
|
loadedItems[itemIndex] = loadedItems[itemIndex] + 1;
|
||||||
//}
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
//helper.buildUIAndRunTest(tabView, function () {
|
function createUnloadedFor(itemIndex: number) {
|
||||||
//try {
|
return function () {
|
||||||
//TKUnit.waitUntilReady(() => { return items[0].view.isLoaded; }, ASYNC);
|
unloadedItems[itemIndex] = unloadedItems[itemIndex] + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//// Attach to loaded/unloaded events
|
helper.buildUIAndRunTest(tabView, function () {
|
||||||
//for (i = 0; i < itemCount; i++) {
|
try {
|
||||||
//items[i].view.on("loaded", createLoadedFor(i));
|
TKUnit.waitUntilReady(() => { return items[0].view.isLoaded; }, ASYNC);
|
||||||
//items[i].view.on("unloaded", createUnloadedFor(i));
|
|
||||||
//}
|
|
||||||
|
|
||||||
//var detailsPageFactory = function (): Page {
|
// Attach to loaded/unloaded events
|
||||||
//var detailsPage = new Page();
|
for (i = 0; i < itemCount; i++) {
|
||||||
//detailsPage.content = new Label();
|
items[i].view.on("loaded", createLoadedFor(i));
|
||||||
//return detailsPage;
|
items[i].view.on("unloaded", createUnloadedFor(i));
|
||||||
//};
|
}
|
||||||
|
|
||||||
//helper.navigate(detailsPageFactory);
|
var detailsPageFactory = function (): Page {
|
||||||
//}
|
var detailsPage = new Page();
|
||||||
//finally {
|
detailsPage.content = new Label();
|
||||||
//// Go back to the test page.
|
return detailsPage;
|
||||||
//helper.goBack();
|
};
|
||||||
//}
|
|
||||||
|
|
||||||
//TKUnit.waitUntilReady(() => { return items[0].view.isLoaded; }, ASYNC);
|
helper.navigate(detailsPageFactory);
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
// Go back to the test page.
|
||||||
|
helper.goBack();
|
||||||
|
}
|
||||||
|
|
||||||
////console.log(">>>>>>>>>>>>> loaded items: " + loadedItems.join(", "));
|
TKUnit.waitUntilReady(() => { return items[0].view.isLoaded; }, ASYNC);
|
||||||
////console.log(">>>>>>>>>>>>> unloadedItems items: " + unloadedItems.join(", "));
|
|
||||||
|
|
||||||
//// Check that at least the first item is loaded and unloaded
|
//console.log(">>>>>>>>>>>>> loaded items: " + loadedItems.join(", "));
|
||||||
//TKUnit.assert(items[0].view.isLoaded, "The content of the first tab should be loaded.");
|
//console.log(">>>>>>>>>>>>> unloadedItems items: " + unloadedItems.join(", "));
|
||||||
//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
|
// Check that at least the first item is loaded and unloaded
|
||||||
//for (i = 0; i < itemCount; i++) {
|
TKUnit.assert(items[0].view.isLoaded, "The content of the first tab should be loaded.");
|
||||||
//TKUnit.assert(loadedItems[i] === unloadedItems[i],
|
TKUnit.assertEqual(loadedItems[0], 1, "loaded count for 1st item");
|
||||||
//"Loaded and unloaded calls are not equal for item " + i + " loaded: " + loadedItems[i] + " unloaded: " + unloadedItems[i]);
|
TKUnit.assertEqual(unloadedItems[0], 1, "unloaded count for 1st item");
|
||||||
//}
|
|
||||||
//});
|
|
||||||
//}
|
|
||||||
//finally {
|
|
||||||
//// Return original page cache value
|
|
||||||
//if (topFrame.android) {
|
|
||||||
//topFrame.android.cachePagesOnNavigate = oldChache;
|
|
||||||
//}
|
|
||||||
//}
|
|
||||||
//}
|
|
||||||
|
|
||||||
//function _clickTheFirstButtonInTheListViewNatively(tabView: TabView) {
|
// Check that loaded/unloaded coutns are equal for all tabs
|
||||||
//if (tabView.android) {
|
for (i = 0; i < itemCount; i++) {
|
||||||
//var viewPager: android.support.v4.view.ViewPager = (<any>tabView)._viewPager;
|
TKUnit.assert(loadedItems[i] === unloadedItems[i],
|
||||||
//var androidListView = <android.widget.ListView>viewPager.getChildAt(0);
|
"Loaded and unloaded calls are not equal for item " + i + " loaded: " + loadedItems[i] + " unloaded: " + unloadedItems[i]);
|
||||||
//(<android.widget.Button>androidListView.getChildAt(0)).performClick();
|
}
|
||||||
//}
|
});
|
||||||
//else {
|
}
|
||||||
//(<UIButton>(<UITableView>tabView.ios.viewControllers[0].view.subviews[0]).cellForRowAtIndexPath(NSIndexPath.indexPathForItemInSection(0, 0)).contentView.subviews[0]).sendActionsForControlEvents(UIControlEvents.UIControlEventTouchUpInside);
|
finally {
|
||||||
//}
|
// Return original page cache value
|
||||||
//}
|
if (topFrame.android) {
|
||||||
|
topFrame.android.cachePagesOnNavigate = oldChache;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _clickTheFirstButtonInTheListViewNatively(tabView: TabView) {
|
||||||
|
if (tabView.android) {
|
||||||
|
var viewPager: android.support.v4.view.ViewPager = (<any>tabView)._viewPager;
|
||||||
|
var androidListView = <android.widget.ListView>viewPager.getChildAt(0);
|
||||||
|
(<android.widget.Button>androidListView.getChildAt(0)).performClick();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(<UIButton>(<UITableView>tabView.ios.viewControllers[0].view.subviews[0]).cellForRowAtIndexPath(NSIndexPath.indexPathForItemInSection(0, 0)).contentView.subviews[0]).sendActionsForControlEvents(UIControlEvents.UIControlEventTouchUpInside);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user