Fixed the navigation tests.

This commit is contained in:
Rossen Hristov
2015-10-01 09:36:58 +03:00
parent 8bc2aedfae
commit 5e654ce96b
4 changed files with 36 additions and 38 deletions

View File

@@ -3,7 +3,7 @@ import pageModule = require("ui/page");
import frame = require("ui/frame");
export var test_backstackVisible = function() {
var pageFactory = function (): pageModule.Page {
var pageFactory = function(): pageModule.Page {
return new pageModule.Page();
};
@@ -32,34 +32,41 @@ export var test_backstackVisible = function() {
}
// Clearing the history messes up the tests app.
//export var test_ClearHistory = function () {
// var pageFactory = function (): pageModule.Page {
// return new pageModule.Page();
// };
export var test_ClearHistory = function () {
var pageFactory = function(): pageModule.Page {
return new pageModule.Page();
};
// var mainTestPage = frame.topmost().currentPage;
// var currentPage: pageModule.Page;
var mainTestPage = frame.topmost().currentPage;
var mainPageFactory = function(): pageModule.Page {
return mainTestPage;
};
// currentPage = frame.topmost().currentPage;
// frame.topmost().navigate({ create: pageFactory });
// TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
var currentPage: pageModule.Page;
// currentPage = frame.topmost().currentPage;
// frame.topmost().navigate({ create: pageFactory });
// TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
currentPage = frame.topmost().currentPage;
frame.topmost().navigate({ create: pageFactory });
TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
// currentPage = frame.topmost().currentPage;
// frame.topmost().navigate({ create: pageFactory });
// TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
currentPage = frame.topmost().currentPage;
frame.topmost().navigate({ create: pageFactory });
TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
// TKUnit.assert(frame.topmost().canGoBack(), "Frame should be able to go back.");
// TKUnit.assert(frame.topmost().backStack.length === 3, "Back stack should have 3 entries.");
currentPage = frame.topmost().currentPage;
frame.topmost().navigate({ create: pageFactory });
TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
// // Navigate with clear history.
// currentPage = frame.topmost().currentPage;
// frame.topmost().navigate({ create: pageFactory, clearHistory: true });
// TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
TKUnit.assert(frame.topmost().canGoBack(), "Frame should be able to go back.");
TKUnit.assert(frame.topmost().backStack.length === 3, "Back stack should have 3 entries.");
// TKUnit.assert(!frame.topmost().canGoBack(), "Frame should NOT be able to go back.");
// TKUnit.assert(frame.topmost().backStack.length === 0, "Back stack should have 0 entries.");
//}
// Navigate with clear history.
currentPage = frame.topmost().currentPage;
frame.topmost().navigate({ create: pageFactory, clearHistory: true });
TKUnit.waitUntilReady(() => { return frame.topmost().currentPage !== currentPage; });
TKUnit.assert(!frame.topmost().canGoBack(), "Frame should NOT be able to go back.");
TKUnit.assert(frame.topmost().backStack.length === 0, "Back stack should have 0 entries.");
frame.topmost().navigate({ create: mainPageFactory });
TKUnit.waitUntilReady(() => { return frame.topmost().currentPage === mainTestPage; });
}

View File

@@ -80,13 +80,15 @@ allTests["REPEATER"] = require("./ui/repeater/repeater-tests");
allTests["SEARCH-BAR"] = require('./ui/search-bar/search-bar-tests');
allTests["CONNECTIVITY"] = require("./connectivity-tests");
allTests["ANIMATION"] = require("./ui/animation/animation-tests");
//allTests["NAVIGATION"] = require("./navigation-tests");
allTests["SEGMENTED-BAR"] = require("./ui/segmented-bar/segmented-bar-tests");
if (!isRunningOnEmulator()) {
allTests["LOCATION"] = require("./location-tests");
}
// Navigation tests should always be last.
allTests["NAVIGATION"] = require("./navigation-tests");
import utils = require("utils/utils");
var density = utils.layout.getDisplayDensity();
utils.layout.getDisplayDensity = function () {

View File

@@ -184,7 +184,6 @@ export class Frame extends view.CustomLayoutView implements definition.Frame {
var entry = this._navigationQueue[0].entry;
var currentNavigationPage = entry.resolvedPage;
if (page !== currentNavigationPage) {
console.trace();
throw new Error(`Corrupted navigation stack; page: ${page.id}; currentNavigationPage: ${currentNavigationPage.id}`);
}

View File

@@ -216,9 +216,6 @@ export class Frame extends frameCommon.Frame {
public _navigateCore(backstackEntry: definition.BackstackEntry) {
trace.write(`_navigateCore; id: ${backstackEntry.resolvedPage.id}; backstackVisible: ${this._isEntryBackstackVisible(backstackEntry)}; clearHistory: ${backstackEntry.entry.clearHistory};`, trace.categories.Navigation);
//this._printFrameBackStack();
//this._printNativeBackStack();
var activity = this._android.activity;
if (!activity) {
// We do not have an Activity yet associated. In this case we have two execution paths:
@@ -300,9 +297,7 @@ export class Frame extends frameCommon.Frame {
}
// Add to backStack if needed.
if (this.backStack.length > 0 &&
this._currentEntry &&
this._isEntryBackstackVisible(this._currentEntry)) {
if (this.backStack.length > 0) {
// We add each entry in the backstack to avoid the "Stack corrupted" mismatch
var backstackTag = this._currentEntry[BACKSTACK_TAG];
fragmentTransaction.addToBackStack(backstackTag);
@@ -327,11 +322,6 @@ export class Frame extends frameCommon.Frame {
fragmentTransaction.commit();
trace.write("fragmentTransaction.commit();", trace.categories.NativeLifecycle);
//setTimeout(() => {
// this._printFrameBackStack();
// this._printNativeBackStack();
//}, 100);
}
public _goBackCore(backstackEntry: definition.BackstackEntry) {