diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj
index 760e382c0..c8e6ec077 100644
--- a/CrossPlatformModules.csproj
+++ b/CrossPlatformModules.csproj
@@ -84,15 +84,13 @@
-
- list-view.xml
-
+
modal-page.xml
diff --git a/apps/tests/navigation/navigation-tests.ts b/apps/tests/navigation/navigation-tests.ts
index 44c2ec8b7..a53c285b6 100644
--- a/apps/tests/navigation/navigation-tests.ts
+++ b/apps/tests/navigation/navigation-tests.ts
@@ -1,6 +1,5 @@
import TKUnit = require("../TKUnit");
import platform = require("platform");
-import transitionModule = require("ui/transition");
import {Frame, Page, topmost as topmostFrame, NavigationEntry, NavigationTransition, AnimationCurve, WrapLayout, Button} from "ui";
import color = require("color");
import helper = require("../ui/helper");
@@ -14,73 +13,6 @@ var pageFactory = function(): Page {
return page;
};
-function _testTransition(navigationTransition: NavigationTransition) {
- var testId = `Transition[${JSON.stringify(navigationTransition)}]`;
- trace.write(`Testing ${testId}`, trace.categories.Test);
- var navigationEntry: NavigationEntry = {
- create: function (): Page {
- var page = new Page();
- page.id = testId;
- page.style.backgroundColor = new color.Color(255, Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255));
- return page;
- },
- animated: true,
- transition: navigationTransition
- }
-
- helper.navigateWithEntry(navigationEntry);
- TKUnit.wait(0.100);
- helper.goBack();
- TKUnit.wait(0.100);
- utils.GC();
-}
-
-// Extremely slow. Run only if needed.
-export var test_Transitions = function () {
- helper.navigate(() => {
- var page = new Page();
- page.id = "TransitionsTestPage_MAIN"
- page.style.backgroundColor = new color.Color(255, Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255));
- return page;
- });
-
- var transitions;
- if (platform.device.os === platform.platformNames.ios) {
- transitions = ["curl"];
- }
- else {
- var _sdkVersion = parseInt(platform.device.sdkVersion);
- transitions = _sdkVersion >= 21 ? ["explode"] : [];
- }
- transitions = transitions.concat(["fade", "flip", "slide"]);
- var durations = [undefined, 500];
- var curves = [undefined, AnimationCurve.easeIn];
-
- // Built-in transitions
- var t, d, c;
- var tlen = transitions.length;
- var dlen = durations.length;
- var clen = curves.length;
- for (t = 0; t < tlen; t++) {
- for (d = 0; d < dlen; d++) {
- for (c = 0; c < clen; c++) {
- _testTransition({
- name: transitions[t],
- duration: durations[d],
- curve: curves[c]
- });
- }
- }
- }
-
- // Custom transition
- var customTransitionModule = require("./custom-transition");
- var customTransition = new customTransitionModule.CustomTransition();
- _testTransition({ instance: customTransition });
-
- helper.goBack();
-}
-
export var test_backstackVisible = function () {
var mainTestPage = topmostFrame().currentPage;
topmostFrame().navigate({ create: pageFactory });
diff --git a/apps/tests/navigation/transition-tests.ts b/apps/tests/navigation/transition-tests.ts
new file mode 100644
index 000000000..f7e249465
--- /dev/null
+++ b/apps/tests/navigation/transition-tests.ts
@@ -0,0 +1,75 @@
+import TKUnit = require("../TKUnit");
+import platform = require("platform");
+import transitionModule = require("ui/transition");
+import color = require("color");
+import helper = require("../ui/helper");
+import utils = require("utils/utils");
+import trace = require("trace");
+import {Frame, Page, topmost as topmostFrame, NavigationEntry, NavigationTransition, AnimationCurve, WrapLayout, Button} from "ui";
+
+function _testTransition(navigationTransition: NavigationTransition) {
+ var testId = `Transition[${JSON.stringify(navigationTransition)}]`;
+ trace.write(`Testing ${testId}`, trace.categories.Test);
+ var navigationEntry: NavigationEntry = {
+ create: function (): Page {
+ var page = new Page();
+ page.id = testId;
+ page.style.backgroundColor = new color.Color(255, Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255));
+ return page;
+ },
+ animated: true,
+ transition: navigationTransition
+ }
+
+ helper.navigateWithEntry(navigationEntry);
+ TKUnit.wait(0.100);
+ helper.goBack();
+ TKUnit.wait(0.100);
+ utils.GC();
+}
+
+// Extremely slow. Run only if needed.
+export var test_Transitions = function () {
+ helper.navigate(() => {
+ var page = new Page();
+ page.id = "TransitionsTestPage_MAIN"
+ page.style.backgroundColor = new color.Color(255, Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255));
+ return page;
+ });
+
+ var transitions;
+ if (platform.device.os === platform.platformNames.ios) {
+ transitions = ["curl"];
+ }
+ else {
+ var _sdkVersion = parseInt(platform.device.sdkVersion);
+ transitions = _sdkVersion >= 21 ? ["explode"] : [];
+ }
+ transitions = transitions.concat(["fade", "flip", "slide"]);
+ var durations = [undefined, 500];
+ var curves = [undefined, AnimationCurve.easeIn];
+
+ // Built-in transitions
+ var t, d, c;
+ var tlen = transitions.length;
+ var dlen = durations.length;
+ var clen = curves.length;
+ for (t = 0; t < tlen; t++) {
+ for (d = 0; d < dlen; d++) {
+ for (c = 0; c < clen; c++) {
+ _testTransition({
+ name: transitions[t],
+ duration: durations[d],
+ curve: curves[c]
+ });
+ }
+ }
+ }
+
+ // Custom transition
+ var customTransitionModule = require("./custom-transition");
+ var customTransition = new customTransitionModule.CustomTransition();
+ _testTransition({ instance: customTransition });
+
+ helper.goBack();
+}
diff --git a/apps/tests/testRunner.ts b/apps/tests/testRunner.ts
index fa0f8299b..e4df69132 100644
--- a/apps/tests/testRunner.ts
+++ b/apps/tests/testRunner.ts
@@ -94,6 +94,11 @@ if (!isRunningOnEmulator()) {
// Navigation tests should always be last.
allTests["NAVIGATION"] = require("./navigation/navigation-tests");
+// Skip transitions on android emulators with API 23
+if (!(platform.device.os === platform.platformNames.android && parseInt(platform.device.sdkVersion) === 23 && isRunningOnEmulator())) {
+ allTests["TANSITIONS"] = require("./navigation/transition-tests");
+}
+
var testsWithLongDelay = {
test_Transitions: 3 * 60 * 1000,
testLocation: 10000,
diff --git a/tsconfig.json b/tsconfig.json
index 261d57187..6c9e3a662 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -186,6 +186,7 @@
"apps/tests/navigation/custom-transition.android.ts",
"apps/tests/navigation/custom-transition.ios.ts",
"apps/tests/navigation/navigation-tests.ts",
+ "apps/tests/navigation/transition-tests.ts",
"apps/tests/observable-array-tests.ts",
"apps/tests/observable-tests.ts",
"apps/tests/pages/app.ts",