From 55c9cc9072bad2f2859749de86fcd801b413e366 Mon Sep 17 00:00:00 2001 From: Vasil Chimev Date: Fri, 23 Aug 2019 15:32:31 +0300 Subject: [PATCH] feat(TabStrip): add itemTap event (#7711) --- e2e/ui-tests-app/app/app-root.xml | 2 +- e2e/ui-tests-app/app/app.ts | 18 +++-- .../app/bottom-navigation/events-page.ts | 42 +++++++++++ .../app/bottom-navigation/events-page.xml | 36 +++++++++ .../app/bottom-navigation/first-page.ts | 14 ++++ .../app/bottom-navigation/first-page.xml | 7 ++ .../app/bottom-navigation/main-page.ts | 2 + .../app/bottom-navigation/reselect-page.ts | 61 ++++++++++++++++ .../app/bottom-navigation/reselect-page.xml | 37 ++++++++++ .../app/bottom-navigation/second-page.ts | 14 ++++ .../app/bottom-navigation/second-page.xml | 7 ++ e2e/ui-tests-app/app/tabs/default-page.xml | 2 +- e2e/ui-tests-app/app/tabs/events-page.ts | 42 +++++++++++ e2e/ui-tests-app/app/tabs/events-page.xml | 36 +++++++++ e2e/ui-tests-app/app/tabs/first-page.ts | 14 ++++ e2e/ui-tests-app/app/tabs/first-page.xml | 7 ++ e2e/ui-tests-app/app/tabs/main-page.ts | 2 + e2e/ui-tests-app/app/tabs/reselect-page.ts | 73 +++++++++++++++++++ e2e/ui-tests-app/app/tabs/reselect-page.xml | 37 ++++++++++ e2e/ui-tests-app/app/tabs/second-page.ts | 14 ++++ e2e/ui-tests-app/app/tabs/second-page.xml | 7 ++ .../pages/navigation/pageA-new-activity.ts | 27 ------- tests/app/pages/navigation/pageA.ts | 56 -------------- .../pages/navigation/pageB-new-activity.ts | 34 --------- tests/app/pages/navigation/pageB.ts | 58 --------------- .../pages/navigation/pageC-new-activity.ts | 34 --------- tests/app/pages/navigation/pageC.ts | 43 ----------- .../bottom-navigation.android.ts | 64 ++++++++-------- .../bottom-navigation.ios.ts | 32 ++++---- .../tab-strip/tab-strip.d.ts | 30 +++++++- .../tab-strip/tab-strip.ts | 30 +++++--- tns-core-modules/ui/tabs/tabs.android.ts | 60 ++++++++------- tns-core-modules/ui/tabs/tabs.ios.ts | 28 ++++--- 33 files changed, 610 insertions(+), 360 deletions(-) create mode 100644 e2e/ui-tests-app/app/bottom-navigation/events-page.ts create mode 100644 e2e/ui-tests-app/app/bottom-navigation/events-page.xml create mode 100644 e2e/ui-tests-app/app/bottom-navigation/first-page.ts create mode 100644 e2e/ui-tests-app/app/bottom-navigation/first-page.xml create mode 100644 e2e/ui-tests-app/app/bottom-navigation/reselect-page.ts create mode 100644 e2e/ui-tests-app/app/bottom-navigation/reselect-page.xml create mode 100644 e2e/ui-tests-app/app/bottom-navigation/second-page.ts create mode 100644 e2e/ui-tests-app/app/bottom-navigation/second-page.xml create mode 100644 e2e/ui-tests-app/app/tabs/events-page.ts create mode 100644 e2e/ui-tests-app/app/tabs/events-page.xml create mode 100644 e2e/ui-tests-app/app/tabs/first-page.ts create mode 100644 e2e/ui-tests-app/app/tabs/first-page.xml create mode 100644 e2e/ui-tests-app/app/tabs/reselect-page.ts create mode 100644 e2e/ui-tests-app/app/tabs/reselect-page.xml create mode 100644 e2e/ui-tests-app/app/tabs/second-page.ts create mode 100644 e2e/ui-tests-app/app/tabs/second-page.xml delete mode 100644 tests/app/pages/navigation/pageA-new-activity.ts delete mode 100644 tests/app/pages/navigation/pageA.ts delete mode 100644 tests/app/pages/navigation/pageB-new-activity.ts delete mode 100644 tests/app/pages/navigation/pageB.ts delete mode 100644 tests/app/pages/navigation/pageC-new-activity.ts delete mode 100644 tests/app/pages/navigation/pageC.ts diff --git a/e2e/ui-tests-app/app/app-root.xml b/e2e/ui-tests-app/app/app-root.xml index ae1bc1ebf..dbf7e70ce 100644 --- a/e2e/ui-tests-app/app/app-root.xml +++ b/e2e/ui-tests-app/app/app-root.xml @@ -1 +1 @@ - \ No newline at end of file + diff --git a/e2e/ui-tests-app/app/app.ts b/e2e/ui-tests-app/app/app.ts index e5658de53..b2819d214 100644 --- a/e2e/ui-tests-app/app/app.ts +++ b/e2e/ui-tests-app/app/app.ts @@ -24,7 +24,7 @@ application.on("uncaughtError", args => { } }); -application.on(application.launchEvent, function(args: application.LaunchEventData) { +application.on(application.launchEvent, function (args: application.LaunchEventData) { if (args.android) { // For Android applications, args.android is an android.content.Intent class. console.log("### Launched application with: " + args.android + "."); @@ -34,7 +34,7 @@ application.on(application.launchEvent, function(args: application.LaunchEventDa } }); -application.on(application.suspendEvent, function(args: application.ApplicationEventData) { +application.on(application.suspendEvent, function (args: application.ApplicationEventData) { if (args.android) { // For Android applications, args.android is an android activity class. console.log("#" + ++countSuspend + "# SuspendEvent Activity: " + args.android); @@ -44,7 +44,7 @@ application.on(application.suspendEvent, function(args: application.ApplicationE } }); -application.on(application.resumeEvent, function(args: application.ApplicationEventData) { +application.on(application.resumeEvent, function (args: application.ApplicationEventData) { if (args.android) { // For Android applications, args.android is an android activity class. console.log("#" + ++countResume + "# ResumeEvent Activity: " + args.android); @@ -54,7 +54,7 @@ application.on(application.resumeEvent, function(args: application.ApplicationEv } }); -application.on(application.exitEvent, function(args: application.ApplicationEventData) { +application.on(application.exitEvent, function (args: application.ApplicationEventData) { if (args.android) { // For Android applications, args.android is an android activity class. console.log("### ExitEvent Activity: " + args.android); @@ -64,7 +64,7 @@ application.on(application.exitEvent, function(args: application.ApplicationEven } }); -application.on(application.lowMemoryEvent, function(args: application.ApplicationEventData) { +application.on(application.lowMemoryEvent, function (args: application.ApplicationEventData) { if (args.android) { // For Android applications, args.android is an android activity class. console.log("### LowMemoryEvent Activity: " + args.android); @@ -74,14 +74,14 @@ application.on(application.lowMemoryEvent, function(args: application.Applicatio } }); -application.on(application.uncaughtErrorEvent, function(args: application.UnhandledErrorEventData) { +application.on(application.uncaughtErrorEvent, function (args: application.UnhandledErrorEventData) { console.log("### NativeScriptError: " + args.error); console.log("### nativeException: " + (args.error).nativeException); console.log("### stackTrace: " + (args.error).stackTrace); console.log("### stack: " + args.error.stack); }); -application.on(application.discardedErrorEvent, function(args: application.DiscardedErrorEventData) { +application.on(application.discardedErrorEvent, function (args: application.DiscardedErrorEventData) { console.log("### [Discarded] NativeScriptError: " + args.error); console.log("### [Discarded] nativeException: " + (args.error).nativeException); console.log("### [Discarded] stackTrace: " + (args.error).stackTrace); @@ -89,6 +89,8 @@ application.on(application.discardedErrorEvent, function(args: application.Disca }); application.setCssFileName("app.css"); - application._start({ moduleName: "main-page" }); + +// TODO: investigate tab-view -> tabviewcss test crash +// TODO: investigate css -> layouts border overlap failure // application.run({ moduleName: "app-root" }); diff --git a/e2e/ui-tests-app/app/bottom-navigation/events-page.ts b/e2e/ui-tests-app/app/bottom-navigation/events-page.ts new file mode 100644 index 000000000..27dafcd47 --- /dev/null +++ b/e2e/ui-tests-app/app/bottom-navigation/events-page.ts @@ -0,0 +1,42 @@ +import { EventData } from "tns-core-modules/data/observable"; +import { Page } from "tns-core-modules/ui/page"; +import { Tabs, SelectedIndexChangedEventData } from "tns-core-modules/ui/tabs"; + +export function goToFirst(args: EventData) { + console.log("---> goToFirst"); + const page = (args.object).page; + const bottomNav = page.getViewById("bottomNav"); + bottomNav.selectedIndex = 0; +} + +export function goToSecond(args: EventData) { + console.log("---> goToSecond"); + const page = (args.object).page; + const bottomNav = page.getViewById("bottomNav"); + bottomNav.selectedIndex = 1; +} + +export function goToThird(args: EventData) { + console.log("---> goToThird"); + const page = (args.object).page; + const bottomNav = page.getViewById("bottomNav"); + bottomNav.selectedIndex = 2; +} + +export function onSelectedIndexChanged(args: SelectedIndexChangedEventData) { + console.log("---> onSelectedIndexChanged", args.eventName); + console.log("---> oldIndex", args.oldIndex); + console.log("---> newIndex", args.newIndex); +} + +export function onFirstTabStripItemTap(args: EventData) { + console.log("---> onFirstTabStripItemTap", args.eventName); +} + +export function onSecondTabStripItemTap(args: EventData) { + console.log("---> onSecondTabStripItemTap", args.eventName); +} + +export function onThirdTabStripItemTap(args: EventData) { + console.log("---> onThirdTabStripItemTap", args.eventName); +} diff --git a/e2e/ui-tests-app/app/bottom-navigation/events-page.xml b/e2e/ui-tests-app/app/bottom-navigation/events-page.xml new file mode 100644 index 000000000..174a28d3f --- /dev/null +++ b/e2e/ui-tests-app/app/bottom-navigation/events-page.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + +