mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #8066 from NativeScript/svetoslavtsenov/merge-6.2.0-release-in-master
chore: merge 6.2.0 release in master
This commit is contained in:
33
CHANGELOG.md
33
CHANGELOG.md
@@ -1,3 +1,36 @@
|
||||
<a name="6.2.0"></a>
|
||||
# [6.2.0](https://github.com/NativeScript/NativeScript/compare/6.1.2...6.2.0) (2019-10-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **action-bar:** font icon support to NavigationButton ([#7842](https://github.com/NativeScript/NativeScript/issues/7842)) ([4991e6d](https://github.com/NativeScript/NativeScript/commit/4991e6d)) ([#7918](https://github.com/NativeScript/NativeScript/issues/7918)) ([bdb411f](https://github.com/NativeScript/NativeScript/commit/bdb411f))
|
||||
* **action-bar-ios13:** action bar items population ([#7965](https://github.com/NativeScript/NativeScript/issues/7965)) ([ce96dad](https://github.com/NativeScript/NativeScript/commit/ce96dad))
|
||||
* **application-settings-android:** possible uninitialized sharedPreferences variable usage ([#7813](https://github.com/NativeScript/NativeScript/issues/7813)) ([4f421ff](https://github.com/NativeScript/NativeScript/commit/4f421ff))
|
||||
* **css:** parse css selectors with escape sequences ([#7689](https://github.com/NativeScript/NativeScript/issues/7689)) ([5520213](https://github.com/NativeScript/NativeScript/commit/5520213))
|
||||
* xml parsing when input value is reported as object instead of string ([#7916](https://github.com/NativeScript/NativeScript/issues/7916)) ([a06a5f9](https://github.com/NativeScript/NativeScript/commit/a06a5f9))
|
||||
* **css-android:** restore elements' native features if offending css is removed while the app is running ([#7789](https://github.com/NativeScript/NativeScript/issues/7789)) ([2beae5b](https://github.com/NativeScript/NativeScript/commit/2beae5b))
|
||||
* **css-calc:** reduce_css_calc_1.default is not a function ([#7787](https://github.com/NativeScript/NativeScript/issues/7787)) ([03d1ff0](https://github.com/NativeScript/NativeScript/commit/03d1ff0))
|
||||
* **bottom-navigation-ios:** incorrect layout on orientation change ([#7927](https://github.com/NativeScript/NativeScript/issues/7927)) ([c9bfec1](https://github.com/NativeScript/NativeScript/commit/c9bfec1))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **action-bar-android:** add properties to control the titleView content insets ([#7805](https://github.com/NativeScript/NativeScript/issues/7805)) ([57a8605](https://github.com/NativeScript/NativeScript/commit/57a8605))
|
||||
* **css:** add attribute scoped css without global refresh ([#7907](https://github.com/NativeScript/NativeScript/issues/7907)) ([f791a40](https://github.com/NativeScript/NativeScript/commit/f791a40))
|
||||
* **css:** Add HSL/HSLA support ([#7730](https://github.com/NativeScript/NativeScript/issues/7730)) ([3cabdde](https://github.com/NativeScript/NativeScript/commit/3cabdde))
|
||||
* **dark-mode:** add system appearance property, event and CSS classes ([#7887](https://github.com/NativeScript/NativeScript/issues/7887)) ([5c9a217](https://github.com/NativeScript/NativeScript/commit/5c9a217))
|
||||
* **file-system:** async read/write ([#7671](https://github.com/NativeScript/NativeScript/issues/7671)) ([2146ac9](https://github.com/NativeScript/NativeScript/commit/2146ac9))
|
||||
* **dark-mode-ios:** adapt dynamic system colors ([#7826](https://github.com/NativeScript/NativeScript/issues/7826)) ([f82cf08](https://github.com/NativeScript/NativeScript/commit/f82cf08))
|
||||
* **platform-declarations:** add android29 typings ([#7923](https://github.com/NativeScript/NativeScript/issues/7923)) ([dc65402](https://github.com/NativeScript/NativeScript/commit/dc65402))
|
||||
* **platform-declarations:** generate typings from iOS 13.0 SDK ([#7817](https://github.com/NativeScript/NativeScript/issues/7817)) ([3e8d635](https://github.com/NativeScript/NativeScript/commit/3e8d635))
|
||||
* **segmented-bar-ios:** add support for the new selectedSegmentTintColor property ([#7880](https://github.com/NativeScript/NativeScript/issues/7880)) ([ca7c46d](https://github.com/NativeScript/NativeScript/commit/ca7c46d))
|
||||
* overhaul and streamline Android page navigation transitions ([#7925](https://github.com/NativeScript/NativeScript/issues/7925)) ([08e23bc](https://github.com/NativeScript/NativeScript/commit/08e23bc))
|
||||
* Scoped Packages ([#7911](https://github.com/NativeScript/NativeScript/issues/7911)) ([cc97a16](https://github.com/NativeScript/NativeScript/commit/cc97a16))
|
||||
* update material components dependency to 92.3 ([#7936](https://github.com/NativeScript/NativeScript/issues/7936)) ([866c2b0](https://github.com/NativeScript/NativeScript/commit/866c2b0))
|
||||
|
||||
|
||||
|
||||
<a name="6.1.2"></a>
|
||||
## [6.1.2](https://github.com/NativeScript/NativeScript/compare/6.1.1...6.1.2) (2019-10-15)
|
||||
|
||||
|
||||
@@ -245,7 +245,14 @@ cd ..
|
||||
4. Execute [`npm version`](https://docs.npmjs.com/cli/version) to bump the version of `tns-core-modules`,
|
||||
tag the release and update the CHANGELOG.md. Don't forget to check the auto-generated CHANGELOG.md
|
||||
```
|
||||
cd tns-core-modules
|
||||
cd nativescript-core
|
||||
npm --no-git-tag-version version [major|minor|patch] -m "release: cut the %s release"
|
||||
cd ..
|
||||
|
||||
5. Execute [`npm version`](https://docs.npmjs.com/cli/version) to bump the version of `tns-core-modules`,
|
||||
tag the release and update the CHANGELOG.md. Don't forget to check the auto-generated CHANGELOG.md
|
||||
```
|
||||
cd tns-core-modules-package
|
||||
npm --no-git-tag-version version [major|minor|patch] -m "release: cut the %s release"
|
||||
cd ..
|
||||
```
|
||||
@@ -254,7 +261,7 @@ Usually tns-core-modules-widgets should already have been released and we need t
|
||||
|
||||
7. Create release-branch with change log
|
||||
```
|
||||
git checkout -b release-[release-version]
|
||||
git checkout -b release-[version]
|
||||
```
|
||||
|
||||
7. Add changes
|
||||
@@ -263,9 +270,9 @@ git add changed-files
|
||||
git commit -m "release: cut the %s release"
|
||||
git push
|
||||
```
|
||||
8. Create git tag
|
||||
8. Create git tag as git tag 6.3.0 or use git UI
|
||||
```
|
||||
git tag release-version
|
||||
git tag [release-version]
|
||||
git push --tags
|
||||
```
|
||||
9. Create a pull request. Be careful to base your branch on the correct branch
|
||||
|
||||
@@ -81,6 +81,13 @@ function processDefinitionFile(entry: EntryInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
function processTypeScriptFile(entry: EntryInfo) {
|
||||
const relativeFilePathNoExt = entry.path.replace(/\.ts$/, "");
|
||||
|
||||
createReExportFile(relativeFilePathNoExt, ".ts");
|
||||
addTestImport(relativeFilePathNoExt);
|
||||
}
|
||||
|
||||
function createReExportFile(pathNoExt: string, ext: ".ts" | ".d.ts") {
|
||||
const outputFile = path.join(outputFolder, pathNoExt + ext);
|
||||
if (!fs.existsSync(outputFile)) {
|
||||
@@ -162,6 +169,11 @@ function generateExportsForPrivateModules() {
|
||||
// * .ts file with re-exports for the corresponding ts/js file (is such exists)
|
||||
await traverseInputDir(["*.d.ts"], processDefinitionFile);
|
||||
|
||||
console.log(" ------> GENERATING FILES FROM TYPESCRIPT");
|
||||
// Traverse all ts files which are not platform specific and create
|
||||
// * .ts file with re-exports for the corresponding ts file
|
||||
await traverseInputDir(["*(?<!\.(d|android|ios)).ts"], processTypeScriptFile);
|
||||
|
||||
generateExportsForPrivateModules();
|
||||
|
||||
// Generate tests in
|
||||
|
||||
35
e2e/modal-navigation/.vscode/launch.json
vendored
35
e2e/modal-navigation/.vscode/launch.json
vendored
@@ -4,6 +4,25 @@
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "debug tests",
|
||||
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
|
||||
"args": [
|
||||
"-u",
|
||||
"tdd",
|
||||
"--timeout",
|
||||
"999999",
|
||||
"--colors",
|
||||
"--opts",
|
||||
"../config/mocha.opts",
|
||||
"-a",
|
||||
"--grep",
|
||||
"modal-frame:"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
@@ -15,13 +34,9 @@
|
||||
"--timeout",
|
||||
"999999",
|
||||
"--colors",
|
||||
// "${workspaceFolder}/test",
|
||||
"--opts",
|
||||
"./e2e/config/mocha.opts",
|
||||
"--runType",
|
||||
"android23",
|
||||
"--reuseDevice",
|
||||
"--verbose"
|
||||
"../config/mocha.opts",
|
||||
"android"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
@@ -36,13 +51,9 @@
|
||||
"--timeout",
|
||||
"999999",
|
||||
"--colors",
|
||||
// "${workspaceFolder}/test",
|
||||
"--opts",
|
||||
"./e2e/config/mocha.opts",
|
||||
"--runType",
|
||||
"sim.iPhoneX.iOS112",
|
||||
"--reuseDevice",
|
||||
"--verbose"
|
||||
"../config/mocha.opts",
|
||||
"ios"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
|
||||
@@ -48,18 +48,18 @@ export class Screen {
|
||||
resetFrameRootView = async () => {
|
||||
console.log("Setting frame root ...");
|
||||
const btnResetFrameRootView = await this._driver.waitForElement(resetFrameRootView);
|
||||
await btnResetFrameRootView.tap();
|
||||
await btnResetFrameRootView.click();
|
||||
}
|
||||
|
||||
resetLayoutRootView = async () => {
|
||||
console.log("Setting layout root ...");
|
||||
const btnResetLayoutRootView = await this._driver.waitForElement(resetLayoutRootView);
|
||||
await btnResetLayoutRootView.tap();
|
||||
await btnResetLayoutRootView.click();
|
||||
}
|
||||
|
||||
resetTabRootView = async () => {
|
||||
const btnResetTabRootView = await this._driver.waitForElement(resetTabRootView);
|
||||
await btnResetTabRootView.tap();
|
||||
await btnResetTabRootView.click();
|
||||
}
|
||||
|
||||
loadedTabRootView = async () => {
|
||||
@@ -93,7 +93,7 @@ export class Screen {
|
||||
|
||||
showModalFrame = async () => {
|
||||
const btnModalFrame = await this._driver.waitForElement(modalFrame);
|
||||
await btnModalFrame.tap();
|
||||
await btnModalFrame.click();
|
||||
}
|
||||
|
||||
loadedModalFrame = async () => {
|
||||
@@ -104,7 +104,7 @@ export class Screen {
|
||||
|
||||
showModalPage = async () => {
|
||||
const btnModalPage = await this._driver.waitForElement(modalPage);
|
||||
await btnModalPage.tap();
|
||||
await btnModalPage.click();
|
||||
}
|
||||
|
||||
loadedModalPage = async () => {
|
||||
@@ -115,7 +115,7 @@ export class Screen {
|
||||
|
||||
showModalLayout = async () => {
|
||||
const btnModalLayout = await this._driver.waitForElement(modalLayout);
|
||||
await btnModalLayout.tap();
|
||||
await btnModalLayout.click();
|
||||
}
|
||||
|
||||
loadedModalLayout = async () => {
|
||||
@@ -124,7 +124,7 @@ export class Screen {
|
||||
|
||||
showModalTabView = async () => {
|
||||
const btnModalTabView = await this._driver.waitForElement(modalTabView);
|
||||
await btnModalTabView.tap();
|
||||
await btnModalTabView.click();
|
||||
}
|
||||
|
||||
loadedModalTabView = async () => {
|
||||
@@ -134,23 +134,23 @@ export class Screen {
|
||||
}
|
||||
|
||||
navigateToSecondPage = async () => {
|
||||
const btnNavToSecondPage = await this._driver.waitForElement(navToSecondPage);
|
||||
await btnNavToSecondPage.tap();
|
||||
const btnNavToSecondPage = await this._driver.findElementByText(navToSecondPage);
|
||||
await btnNavToSecondPage.click();
|
||||
}
|
||||
|
||||
showDialogConfirm = async () => {
|
||||
const btnShowDialogConfirm = await this._driver.waitForElement(showDialog);
|
||||
await btnShowDialogConfirm.tap();
|
||||
await btnShowDialogConfirm.click();
|
||||
}
|
||||
|
||||
navigateToFirstItem = async () => {
|
||||
const itemModalFirst = await this._driver.waitForElement(modalFirst);
|
||||
await itemModalFirst.tap();
|
||||
await itemModalFirst.click();
|
||||
}
|
||||
|
||||
navigateToSecondItem = async () => {
|
||||
const itemModalSecond = await this._driver.waitForElement(modalSecond);
|
||||
await itemModalSecond.tap();
|
||||
await itemModalSecond.click();
|
||||
}
|
||||
|
||||
loadedConfirmDialog = async () => {
|
||||
@@ -179,17 +179,17 @@ export class Screen {
|
||||
|
||||
closeDialog = async () => {
|
||||
const btnYesDialog = await this._driver.waitForElement(confirmDialog);
|
||||
await btnYesDialog.tap();
|
||||
await btnYesDialog.click();
|
||||
}
|
||||
|
||||
goBackFromSecondPage = async () => {
|
||||
const btnGoBackFromSecondPage = await this._driver.waitForElement(goBack);
|
||||
await btnGoBackFromSecondPage.tap();
|
||||
await btnGoBackFromSecondPage.click();
|
||||
}
|
||||
|
||||
showNestedModalFrame = async () => {
|
||||
const btnShowNestedModalFrame = await this._driver.waitForElement(showNestedModalFrame);
|
||||
await btnShowNestedModalFrame.tap();
|
||||
await btnShowNestedModalFrame.click();
|
||||
}
|
||||
|
||||
loadedNestedModalFrame = async () => {
|
||||
@@ -200,12 +200,12 @@ export class Screen {
|
||||
|
||||
closeModalNested = async () => {
|
||||
const btnCloseNestedModal = await this._driver.waitForElement(closeModalNested);
|
||||
await btnCloseNestedModal.tap();
|
||||
await btnCloseNestedModal.click();
|
||||
}
|
||||
|
||||
showNestedModalPage = async () => {
|
||||
const btnShowNestedModalPage = await this._driver.waitForElement(showNestedModalPage);
|
||||
await btnShowNestedModalPage.tap();
|
||||
await btnShowNestedModalPage.click();
|
||||
}
|
||||
|
||||
loadedNestedModalPage = async () => {
|
||||
@@ -216,7 +216,7 @@ export class Screen {
|
||||
|
||||
closeModal = async () => {
|
||||
const btnCloseModal = await this._driver.waitForElement(closeModal);
|
||||
await btnCloseModal.tap();
|
||||
await btnCloseModal.click();
|
||||
}
|
||||
|
||||
loadModalFrame = async () => {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"4723",
|
||||
"-a",
|
||||
"--grep",
|
||||
"layout-root"
|
||||
"layout-root-with-multi-frames"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"android": {
|
||||
"v8Flags": "--expose_gc"
|
||||
"v8Flags": "--expose_gc",
|
||||
"markingMode": "none"
|
||||
},
|
||||
"main": "app.js",
|
||||
"name": "tns-template-hello-world-ts",
|
||||
"version": "3.4.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,181 +0,0 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
|
||||
const roots = ["BottomNavigation"];
|
||||
|
||||
const rootType = "bottom-navigation-root";
|
||||
describe(rootType, async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
driver = await createDriver();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
describe(`${rootType}-${root}-scenarios:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
for (let index = 0; index < transitions.length; index++) {
|
||||
const transition = transitions[index];
|
||||
|
||||
const playerOne = playersData[`playerOne${transition}`];
|
||||
const playerTwo = playersData[`playerTwo${transition}`];
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
const teamTwo = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
this.skip();
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it(`loaded ${root} root with frames`, async function () {
|
||||
await screen[`navigateTo${root}RootWithFrames`]();
|
||||
await screen[`loaded${root}RootWithFrames`]();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("toggle teams tab", async function () {
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (driver.isIOS) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (driver.isIOS) {
|
||||
// TODO: run in background from appium breaks the test. Investigate the issue, once with the app and with appium
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamTwo.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
await screen.goBackToTeamsList();
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.resetToHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
export const suspendTime = 1;
|
||||
export const appSuspendResume = true;
|
||||
export const dontKeepActivities = true;
|
||||
export const transitions = ["Default", "None", "Slide", "Flip"];
|
||||
export const dontKeepActivities = process.env["DONT_KEEP_ACTIVITIES"] === "true" ? true : false;
|
||||
export const allTransitions = ["Default", "None", "Slide", "Flip"];
|
||||
|
||||
@@ -1,265 +0,0 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
|
||||
const roots = ["BottomNavigation"];
|
||||
|
||||
const rootType = "frame-bottom-navigation-root";
|
||||
describe(rootType, async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
driver = await createDriver();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
|
||||
describe(`${rootType}-${root} scenarios:`, async function () {
|
||||
logWarn(`===== Root: ${root}`);
|
||||
for (let trIndex = 0; trIndex < transitions.length; trIndex++) {
|
||||
const transition = transitions[trIndex];
|
||||
const playerOne: Item = playersData[`playerOne${transition}`];
|
||||
const playerTwo: Item = playersData[`playerTwo${transition}`];
|
||||
const teamOne: Item = teamsData[`teamOne${transition}`];
|
||||
const teamTwo: Item = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
this.skip();
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it(`loaded frame ${root} root with nested frames`, async function () {
|
||||
await screen[`navigateToPage${root}WithFrames`]();
|
||||
await screen[`loadedPage${root}WithFrames`]();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("toggle teams tab", async function () {
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for team
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
// This sleeps prevent test to fail
|
||||
await driver.sleep(1000);
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
await screen.goBackToTeamsList();
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen[`goBackFrom${root}Page`]();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,262 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities, logInfo } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
describe("frame-root-with-bottom-navigation", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== frame-root-with-bottom-navigation ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
describe(`frame-root-with-bottom-navigation scenarios:`, async function () {
|
||||
for (let trIndex = 0; trIndex < transitions.length; trIndex++) {
|
||||
const transition = transitions[trIndex];
|
||||
const playerOne: Item = playersData[`playerOne${transition}`];
|
||||
const playerTwo: Item = playersData[`playerTwo${transition}`];
|
||||
const teamOne: Item = teamsData[`teamOne${transition}`];
|
||||
const teamTwo: Item = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`frame-root-with-bottom-navigation-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`${trIndex++}. BottomNavigation-${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it(`loaded frame root with bottom-navigation`, async function () {
|
||||
await screen[`navigateToPageBottomNavigationWithFrames`]();
|
||||
await screen[`loadedPageBottomNavigationWithFrames`]();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("toggle teams tab", async function () {
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for team
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
// This sleeps prevent test to fail
|
||||
await driver.sleep(1000);
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack();
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
await screen.goBackToTeamsList();
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen[`goBackFromBottomNavigationPage`]();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1,23 +1,22 @@
|
||||
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item, stillOtherPage } from "./screen";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
import { Screen, playersData, teamsData, driverDefaultWaitTime, Item } from "../screens/screen";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import * as shared from "../screens/shared";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
const rootType = "frame-root";
|
||||
describe(rootType, async function () {
|
||||
describe("frame-root-with-multi-frames", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
@@ -43,16 +42,15 @@ describe(rootType, async function () {
|
||||
const teamOne: Item = teamsData[`teamOne${transition}`];
|
||||
const teamTwo: Item = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-transition-${transition}-scenarios:`, async function () {
|
||||
describe(`frame-root-with-multi-frames-transition-${transition}-scenario:`, async function () {
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`==== Transition ${transition}`);
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`==== ${index}. Transition ${transition}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -60,88 +58,6 @@ describe(rootType, async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame", async function () {
|
||||
await screen.navigateToPageWithFrame();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name);
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerOne.name);
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedSomePage(); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name);
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedSomePage(); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.goBackFromFrameHome();
|
||||
await screen.loadedHome();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedHome();
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded frame root with multi nested frames", async function () {
|
||||
await screen.navigateToPageWithMultiFrame();
|
||||
await screen.loadedPageWithMultiFrame();
|
||||
@@ -301,101 +217,4 @@ describe(rootType, async function () {
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
describe("frame to nested frame with non-default transition", async function () {
|
||||
const playerOne = playersData["playerOneSlide"];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame non-default transition", async function () {
|
||||
await screen.navigateToPageWithFrameNonDefaultTransition();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("go back to home page again", async function () {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.goBackFromFrameHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
|
||||
describe("nested frame to frame with non-default transition", async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame", async function () {
|
||||
await screen.navigateToPageWithFrame();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("navigate to some page with slide transition", async function () {
|
||||
shared.testSomePageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
});
|
||||
|
||||
it("navigate to still other page and go back twice", async function () {
|
||||
shared.testStillOtherPageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(stillOtherPage); // wait for still other page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromStillOtherPage();
|
||||
}
|
||||
|
||||
await screen.loadedSomePage();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
shared.testStillOtherPageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(stillOtherPage); // wait for still other page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromStillOtherPage();
|
||||
}
|
||||
|
||||
await screen.loadedSomePage();
|
||||
});
|
||||
|
||||
it("go back to home page again", async function () {
|
||||
await screen.goBackFromSomePage();
|
||||
|
||||
await screen.goBackFromFrameHome();
|
||||
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,233 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, driverDefaultWaitTime, Item, stillOtherPage } from "../screens/screen";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import * as shared from "../screens/shared";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
describe("frame-root-with-single-frame", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
for (let index = 0; index < transitions.length; index++) {
|
||||
const transition = transitions[index];
|
||||
|
||||
const playerOne: Item = playersData[`playerOne${transition}`];
|
||||
const playerTwo: Item = playersData[`playerTwo${transition}`];
|
||||
|
||||
describe(`frame-root-with-single-frame-transition-${transition}-scenario:`, async function () {
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`==== ${index}. Transition ${transition}`);
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame", async function () {
|
||||
await screen.navigateToPageWithFrame();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name);
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerOne.name);
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedSomePage(); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name);
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedSomePage(); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.goBackFromFrameHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
describe("frame to nested frame with non-default transition", async function () {
|
||||
const playerOne = playersData["playerOneSlide"];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame non-default transition", async function () {
|
||||
await screen.navigateToPageWithFrameNonDefaultTransition();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("go back to home page again", async function () {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.goBackFromFrameHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
|
||||
describe("nested frame to frame with non-default transition", async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it("loaded frame root with nested frame", async function () {
|
||||
await screen.navigateToPageWithFrame();
|
||||
await screen.loadedPageWithFrame();
|
||||
});
|
||||
|
||||
it("navigate to some page with slide transition", async function () {
|
||||
shared.testSomePageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
});
|
||||
|
||||
it("navigate to still other page and go back twice", async function () {
|
||||
shared.testStillOtherPageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(stillOtherPage); // wait for still other page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromStillOtherPage();
|
||||
}
|
||||
|
||||
await screen.loadedSomePage();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
shared.testStillOtherPageNavigatedSlide(screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(stillOtherPage); // wait for still other page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromStillOtherPage();
|
||||
}
|
||||
|
||||
await screen.loadedSomePage();
|
||||
});
|
||||
|
||||
it("go back to home page again", async function () {
|
||||
await screen.goBackFromSomePage();
|
||||
|
||||
await screen.goBackFromFrameHome();
|
||||
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -1,27 +1,31 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabViewNavigationScreen } from "../screens/tabview-navigation-screen";
|
||||
|
||||
// NOTE: TabViewTop is Android only scenario (for iOS we will essentially execute 2x TabViewBottom)
|
||||
const roots = ["TabViewTop", "TabViewBottom"];
|
||||
|
||||
const rootType = "frame-tab-root";
|
||||
describe(rootType, async function () {
|
||||
describe("frame-root-with-tab-view", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
logWarn(`====== frame-root-with-tab-view ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabViewNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
if (driver.isIOS) {
|
||||
logWarn("NOTE: TabViewTop is Android only scenario (for iOS we will not execute it)");
|
||||
roots.shift();
|
||||
}
|
||||
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
@@ -43,7 +47,7 @@ describe(rootType, async function () {
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
|
||||
describe(`${rootType}-${root} scenarios:`, async function () {
|
||||
describe(`frame-root-with-tab-view-${root} scenarios:`, async function () {
|
||||
logWarn(`===== Root: ${root}`);
|
||||
for (let trIndex = 0; trIndex < transitions.length; trIndex++) {
|
||||
const transition = transitions[trIndex];
|
||||
@@ -52,17 +56,15 @@ describe(rootType, async function () {
|
||||
const teamOne: Item = teamsData[`teamOne${transition}`];
|
||||
const teamTwo: Item = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
|
||||
describe(`frame-root-with-tab-view-${root}-transition-${transition}-scenario:`, async function () {
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -82,11 +84,12 @@ describe(rootType, async function () {
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
@@ -118,9 +121,11 @@ describe(rootType, async function () {
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
@@ -167,9 +172,11 @@ describe(rootType, async function () {
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
@@ -207,12 +214,13 @@ describe(rootType, async function () {
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
@@ -1,26 +1,24 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
import { Screen, playersData, somePage, teamsData, driverDefaultWaitTime, Item } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
const roots = ["TabsTop", "TabsBottom"];
|
||||
|
||||
const rootType = "frame-tabs-root";
|
||||
describe(rootType, async function () {
|
||||
describe("frame-root-with-tabs", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
logWarn(`====== frame-root-with-tabs ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
@@ -41,8 +39,8 @@ describe(rootType, async function () {
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
|
||||
describe(`${rootType}-${root} scenarios:`, async function () {
|
||||
logWarn(`===== Root: ${root}`);
|
||||
describe(`frame-root-with-tabs-${root} scenario:`, async function () {
|
||||
logWarn(`===== ${index++}. Root: ${root}`);
|
||||
for (let trIndex = 0; trIndex < transitions.length; trIndex++) {
|
||||
const transition = transitions[trIndex];
|
||||
const playerOne: Item = playersData[`playerOne${transition}`];
|
||||
@@ -50,17 +48,16 @@ describe(rootType, async function () {
|
||||
const teamOne: Item = teamsData[`teamOne${transition}`];
|
||||
const teamTwo: Item = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
describe(`frame-root-with-tabs-${root}-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -116,9 +113,11 @@ describe(rootType, async function () {
|
||||
it("loaded player details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
@@ -165,18 +164,22 @@ describe(rootType, async function () {
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(somePage); // wait for some page
|
||||
}
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
@@ -185,30 +188,36 @@ describe(rootType, async function () {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
// This sleeps prevent test to fail
|
||||
await driver.sleep(1000);
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
// This sleeps prevent test to fail
|
||||
await driver.sleep(1000);
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for teams list
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
if (!shared.preventApplicationCrashCausedByAutomation(driver)) {
|
||||
if (appSuspendResume) {
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await screen.loadedElement(teamTwo.name); // wait for team
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamDetails(teamTwo);
|
||||
@@ -1,7 +1,7 @@
|
||||
import { AppiumDriver, createDriver, nsCapabilities } from "nativescript-dev-appium";
|
||||
import { Screen } from "./screen";
|
||||
import { suspendTime, dontKeepActivities } from "./config";
|
||||
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
|
||||
import { Screen } from "../screens/screen";
|
||||
import { suspendTime, dontKeepActivities } from "../config";
|
||||
import { TabViewNavigationScreen } from "../screens/tabview-navigation-screen";
|
||||
|
||||
describe("issues", async function () {
|
||||
let driver: AppiumDriver;
|
||||
@@ -10,6 +10,7 @@ describe("issues", async function () {
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabViewNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
@@ -35,7 +36,7 @@ describe("issues", async function () {
|
||||
await screen.loadedHome();
|
||||
const showSomePage = async function () {
|
||||
const somePageBtn = await driver.waitForElement("somePageOnRoot");
|
||||
await somePageBtn.tap();
|
||||
await somePageBtn.click();
|
||||
await screen.loadedSomePage();
|
||||
};
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, somePage, otherPage, teamsData, driverDefaultWaitTime } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
describe("layout-root-with-multi-frames", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
logWarn("====== layout-root-with-multi-frames ========");
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
for (let index = 0; index < transitions.length; index++) {
|
||||
const transition = allTransitions[index];
|
||||
|
||||
const playerOne = playersData[`playerOne${transition}`];
|
||||
const playerTwo = playersData[`playerTwo${transition}`];
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
|
||||
describe(`layout-root-with-multi-frames-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${index}. ${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded layout root with multi nested frames", async function () {
|
||||
await screen.loadedHome();
|
||||
|
||||
await screen.navigateToLayoutWithMultiFrame();
|
||||
await screen.loadedLayoutWithMultiFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate players parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded players details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded layout root with multi nested frames again", async function () {
|
||||
await screen.loadedLayoutWithMultiFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared[`testOtherPageNavigated${transition}`](screen); // "teams" parent frame navigation
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(otherPage); // wait for other page
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes in the sibling frame
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // other page back navigation
|
||||
} else {
|
||||
await screen.goBackFromOtherPage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes in the sibling frame
|
||||
|
||||
await shared[`testOtherPageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(otherPage); // wait for other page
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await screen.loadedOtherPage(); // assert no changes in the sibling frame
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.goBackFromOtherPage();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.resetToHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -1,24 +1,22 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, home, somePage, otherPage, teamsData, driverDefaultWaitTime } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
import { Screen, playersData, home, somePage, teamsData, driverDefaultWaitTime } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
const rootType = "layout-root";
|
||||
describe(rootType, async function () {
|
||||
describe("layout-root-with-single-frame", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
logWarn("====== layout-root ========");
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
logWarn("====== layout-root-with-single-frame ========");
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = driverDefaultWaitTime;
|
||||
});
|
||||
|
||||
@@ -41,17 +39,17 @@ describe(rootType, async function () {
|
||||
|
||||
const playerOne = playersData[`playerOne${transition}`];
|
||||
const playerTwo = playersData[`playerTwo${transition}`];
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
|
||||
describe(`${rootType}-transition-${transition}-scenarios:`, async function () {
|
||||
describe(`layout-root-with-single-frame-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${index}. ${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -140,179 +138,17 @@ describe(rootType, async function () {
|
||||
await driver.waitForElement(home); // wait for home page
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded layout root with multi nested frames", async function () {
|
||||
await screen.navigateToLayoutWithMultiFrame();
|
||||
await screen.loadedLayoutWithMultiFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("navigate players parent frame and go back", async function () {
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded players details and navigate parent frame and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded layout root with multi nested frames again", async function () {
|
||||
await screen.loadedLayoutWithMultiFrame();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared[`testOtherPageNavigated${transition}`](screen); // "teams" parent frame navigation
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(otherPage); // wait for other page
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes in the sibling frame
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // other page back navigation
|
||||
} else {
|
||||
await screen.goBackFromOtherPage();
|
||||
}
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
await screen.loadedPlayerDetails(playerTwo); // assert no changes in the sibling frame
|
||||
|
||||
await shared[`testOtherPageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(otherPage); // wait for other page
|
||||
}
|
||||
|
||||
await shared[`testSomePageNavigated${transition}`](screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(somePage); // wait for some page
|
||||
}
|
||||
|
||||
await screen.loadedOtherPage(); // assert no changes in the sibling frame
|
||||
|
||||
if (driver.isAndroid) {
|
||||
await driver.navBack(); // some page back navigation
|
||||
} else {
|
||||
await screen.goBackFromSomePage();
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.goBackFromOtherPage();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.resetToHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
describe(`${rootType}-players-list-slide-transition with parent frame default transition:`, async function () {
|
||||
describe(`layout-root-with-single-frame-players-list-slide-transition with parent frame default transition:`, async function () {
|
||||
const playerOne = playersData["playerOneSlide"];
|
||||
const playerTwo = playersData["playerTwoSlide"];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded layout root with nested frames", async function () {
|
||||
await screen.navigateToLayoutWithFrame();
|
||||
await screen.loadedLayoutWithFrame();
|
||||
@@ -368,10 +204,19 @@ describe(rootType, async function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe(`${rootType}-players-list-slide-transition with parent frame no transition:`, async function () {
|
||||
describe(`layout-root-with-single-frame-players-list-slide-transition with parent frame no transition:`, async function () {
|
||||
const playerOne = playersData["playerOneSlide"];
|
||||
const playerTwo = playersData["playerTwoSlide"];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (shared.isApiLevel19(driver)) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skip tests on api level 19");
|
||||
this.skip();
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded layout root with nested frames", async function () {
|
||||
await screen.navigateToLayoutWithFrame();
|
||||
await screen.loadedLayoutWithFrame();
|
||||
@@ -427,7 +272,7 @@ describe(rootType, async function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe(`${rootType}-players-list-flip-transition with parent frame default transition:`, async function () {
|
||||
describe(`layout-root-with-single-frame-players-list-flip-transition with parent frame default transition:`, async function () {
|
||||
const playerOne = playersData["playerOneFlip"];
|
||||
const playerTwo = playersData["playerTwoFlip"];
|
||||
|
||||
@@ -490,14 +335,19 @@ describe(rootType, async function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe(`${rootType}-players-list-flip-transition with parent frame no transition:`, async function () {
|
||||
describe(`layout-root-with-single-frame-players-list-flip-transition with parent frame no transition:`, async function () {
|
||||
const playerOne = playersData["playerOneFlip"];
|
||||
const playerTwo = playersData["playerTwoFlip"];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
if (shared.isApiLevel19(driver)) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skip tests on api level 19");
|
||||
this.skip();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
it("loaded layout root with nested frames", async function () {
|
||||
await screen.navigateToLayoutWithFrame();
|
||||
await screen.loadedLayoutWithFrame();
|
||||
@@ -272,7 +272,7 @@ export abstract class Screen {
|
||||
const btnReset = await this._driver.waitForElement(resetApp);
|
||||
|
||||
console.info(`====== Reset home "${resetApp}"`);
|
||||
await btnReset.tap();
|
||||
await btnReset.click();
|
||||
}
|
||||
|
||||
goBackToPlayersList = async () => {
|
||||
@@ -322,13 +322,13 @@ export abstract class Screen {
|
||||
togglePlayersTab = async () => {
|
||||
const lblPlayers = await this._driver.waitForElement(this.playersTab);
|
||||
logInfo(`====== Navigate to "${this.players}"`);
|
||||
await lblPlayers.tap();
|
||||
await lblPlayers.click();
|
||||
}
|
||||
|
||||
toggleTeamsTab = async () => {
|
||||
const lblTeams = await this._driver.waitForElement(this.teamsTab);
|
||||
logInfo(`====== Navigate to "${this.teams}"`);
|
||||
await lblTeams.tap();
|
||||
await lblTeams.click();
|
||||
}
|
||||
|
||||
loadedHome = async () => {
|
||||
@@ -435,7 +435,7 @@ export abstract class Screen {
|
||||
private navigateToPage = async (page: string) => {
|
||||
const btnPage = await this._driver.waitForElement(page);
|
||||
logInfo(`====== Navigate to "${page}"`);
|
||||
await btnPage.tap();
|
||||
await btnPage.click();
|
||||
}
|
||||
|
||||
private loadedPage = async (page: string) => {
|
||||
@@ -447,7 +447,7 @@ export abstract class Screen {
|
||||
private navigateToItem = async (item: Item) => {
|
||||
const lblItem = await this._driver.waitForElement(item.name);
|
||||
logInfo(`====== Navigate to "${item.name}"`);
|
||||
await lblItem.tap();
|
||||
await lblItem.click();
|
||||
}
|
||||
|
||||
private loadedItem = async (item: Item) => {
|
||||
@@ -463,6 +463,6 @@ export abstract class Screen {
|
||||
private goBack = async (accessibilityId: string) => {
|
||||
const btnBack = await this._driver.waitForElement(accessibilityId);
|
||||
logInfo(`====== Go back with "${accessibilityId}"`);
|
||||
await btnBack.tap();
|
||||
await btnBack.click();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,33 @@
|
||||
import { AppiumDriver } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, Item } from "./screen";
|
||||
import { logWarn } from "nativescript-dev-appium";
|
||||
|
||||
export const preventApplicationCrashCausedByAutomation = (driver: AppiumDriver) => {
|
||||
if (driver.isIOS) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let preventApplicationCrashCauesByAutomation = false;
|
||||
|
||||
if (Number.isInteger(+driver.nsCapabilities.device.apiLevel)) {
|
||||
preventApplicationCrashCauesByAutomation = +driver.nsCapabilities.device.apiLevel > 23;
|
||||
} else {
|
||||
const majorVersion = driver.nsCapabilities.device.apiLevel.split(".")[0];
|
||||
preventApplicationCrashCauesByAutomation = +majorVersion > 6;
|
||||
}
|
||||
if (preventApplicationCrashCauesByAutomation) {
|
||||
logWarn("Skip run in background app, since it causes crash related to automation!");
|
||||
}
|
||||
|
||||
return preventApplicationCrashCauesByAutomation;
|
||||
};
|
||||
|
||||
export const isApiLevel19 = (driver: AppiumDriver) => {
|
||||
return driver.isAndroid
|
||||
&& (`${driver.nsCapabilities.device.apiLevel}`.startsWith("19")
|
||||
|| `${driver.nsCapabilities.device.apiLevel}`.startsWith("4.4.2"));
|
||||
};
|
||||
|
||||
export async function testPlayerNavigated(player: Item, screen: Screen) {
|
||||
await screen.navigateToPlayerDetails(player);
|
||||
@@ -0,0 +1,167 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, teamsData } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
describe("tab-navigation-bottom-navigation-root", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== "bottom-navigation-root" ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
after(async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (this.currentTest.state === "failed") {
|
||||
await driver.logTestArtifacts(this.currentTest.title);
|
||||
}
|
||||
});
|
||||
|
||||
for (let index = 0; index < transitions.length; index++) {
|
||||
const transition = transitions[index];
|
||||
|
||||
const playerOne = playersData[`playerOne${transition}`];
|
||||
const playerTwo = playersData[`playerTwo${transition}`];
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
const teamTwo = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`bottom-navigation-root-transition-${transition}-scenario:`, async function () {
|
||||
before(async function () {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${index}. ${transition} =========`);
|
||||
}
|
||||
nsCapabilities.testReporter.context = this;
|
||||
});
|
||||
|
||||
it("loaded home page", async function () {
|
||||
await screen.loadedHome();
|
||||
});
|
||||
|
||||
it(`loaded BottomNavigation root with frames`, async function () {
|
||||
await screen[`navigateToBottomNavigationRootWithFrames`]();
|
||||
await screen[`loadedBottomNavigationRootWithFrames`]();
|
||||
});
|
||||
|
||||
it("loaded players list", async function () {
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded player details and go back twice", async function () {
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
await shared.testPlayerNavigatedBack(screen, driver);
|
||||
});
|
||||
|
||||
it("toggle teams tab", async function () {
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
});
|
||||
|
||||
it("loaded teams list", async function () {
|
||||
await screen.loadedTeamsList();
|
||||
});
|
||||
|
||||
it("mix player and team list actions and go back", async function () {
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerOne.name); // wait for players list
|
||||
}
|
||||
|
||||
await screen.loadedPlayersList();
|
||||
|
||||
await shared.testPlayerNavigated(playerTwo, screen);
|
||||
|
||||
if (driver.isIOS) {
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
}
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
if (driver.isIOS) {
|
||||
// TODO: run in background from appium breaks the test. Investigate the issue, once with the app and with appium
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamOne.name); // wait for teams list
|
||||
}
|
||||
}
|
||||
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await shared.testTeamNavigated(teamTwo, screen);
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(teamTwo.name); // wait for team
|
||||
}
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
if (appSuspendResume) {
|
||||
await driver.backgroundApp(suspendTime);
|
||||
await driver.waitForElement(playerTwo.name); // wait for player
|
||||
}
|
||||
|
||||
await screen.loadedPlayerDetails(playerTwo);
|
||||
|
||||
await screen.toggleTeamsTab();
|
||||
|
||||
await screen.goBackToTeamsList();
|
||||
await screen.loadedTeamsList();
|
||||
|
||||
await screen.togglePlayersTab();
|
||||
|
||||
await screen.goBackToPlayersList();
|
||||
await screen.loadedPlayersList();
|
||||
});
|
||||
|
||||
it("loaded home page again", async function () {
|
||||
await screen.resetToHome();
|
||||
await screen.loadedHome();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,26 +1,24 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabNavigationScreen } from "./tab-navigation-screen";
|
||||
import { Screen, playersData, teamsData } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabNavigationScreen } from "../screens/tab-navigation-screen";
|
||||
|
||||
const roots = ["TabsTop", "TabsBottom"];
|
||||
|
||||
const rootType = "tabs-root";
|
||||
describe(rootType, async function () {
|
||||
describe("tab-navigation-tabs-root", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
let transitions = [...allTransitions];
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
logWarn(`====== "tabs-root" ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
@@ -40,7 +38,7 @@ describe(rootType, async function () {
|
||||
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
describe(`${rootType}-${root}-scenarios:`, async function () {
|
||||
describe(`tab-navigation-tabs-root-${root}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
@@ -54,16 +52,16 @@ describe(rootType, async function () {
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
const teamTwo = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
describe(`tabs-root-${root}-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,27 +1,24 @@
|
||||
import { AppiumDriver, createDriver, logWarn, nsCapabilities } from "nativescript-dev-appium";
|
||||
|
||||
import { Screen, playersData, teamsData } from "./screen";
|
||||
import * as shared from "./shared.e2e-spec";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, transitions } from "./config";
|
||||
import { TabViewNavigationScreen } from "./tabview-navigation-screen";
|
||||
import { Screen, playersData, teamsData } from "../screens/screen";
|
||||
import * as shared from "../screens/shared";
|
||||
import { suspendTime, appSuspendResume, dontKeepActivities, allTransitions } from "../config";
|
||||
import { TabViewNavigationScreen } from "../screens/tabview-navigation-screen";
|
||||
|
||||
// NOTE: TabViewTop is Android only scenario (for iOS we will essentially execute 2x TabViewBottom)
|
||||
const roots = ["TabViewTop", "TabViewBottom"];
|
||||
|
||||
const rootType = "tab-root";
|
||||
describe(rootType, async function () {
|
||||
describe("tab-view-root", async function () {
|
||||
let driver: AppiumDriver;
|
||||
let screen: Screen;
|
||||
|
||||
let transitions = [...allTransitions];
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
logWarn(`====== ${rootType} ========`);
|
||||
logWarn(`====== tab-view-root ========`);
|
||||
driver = await createDriver();
|
||||
await driver.restartApp();
|
||||
screen = new TabViewNavigationScreen(driver);
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(true);
|
||||
}
|
||||
|
||||
await driver.setDontKeepActivities(dontKeepActivities);
|
||||
driver.defaultWaitTime = 8000;
|
||||
});
|
||||
|
||||
@@ -29,6 +26,10 @@ describe(rootType, async function () {
|
||||
if (dontKeepActivities) {
|
||||
await driver.setDontKeepActivities(false);
|
||||
}
|
||||
if (driver.isIOS) {
|
||||
roots.shift();
|
||||
logWarn("TabViewTop is Android only scenario (for iOS it will be skipped)");
|
||||
}
|
||||
await driver.quit();
|
||||
console.log("Quit driver!");
|
||||
});
|
||||
@@ -41,7 +42,7 @@ describe(rootType, async function () {
|
||||
|
||||
for (let index = 0; index < roots.length; index++) {
|
||||
const root = roots[index];
|
||||
describe(`${rootType}-${root}-scenarios:`, async function () {
|
||||
describe(`tab-view-root-${root}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
@@ -55,16 +56,16 @@ describe(rootType, async function () {
|
||||
const teamOne = teamsData[`teamOne${transition}`];
|
||||
const teamTwo = teamsData[`teamTwo${transition}`];
|
||||
|
||||
describe(`${rootType}-${root}-transition-${transition}-scenarios:`, async function () {
|
||||
describe(`tab-view-root-${root}-transition-${transition}-scenario:`, async function () {
|
||||
|
||||
before(async function () {
|
||||
nsCapabilities.testReporter.context = this;
|
||||
|
||||
if (transition === "Flip" &&
|
||||
driver.isAndroid && parseInt(driver.platformVersion) === 19) {
|
||||
if (shared.isApiLevel19(driver) && (transition === "None" || transition === "Flip")) {
|
||||
// TODO: known issue https://github.com/NativeScript/NativeScript/issues/6798
|
||||
console.log("skipping flip transition tests on api level 19");
|
||||
logWarn("Skipping flip or none transition tests on api level 19");
|
||||
this.skip();
|
||||
} else {
|
||||
logWarn(`========= ${root}-${transition} =========`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -18,10 +18,22 @@ import * as module_application_settings_application_settings_core from "@natives
|
||||
import * as module_application_settings_application_settings_compat from "tns-core-modules/application-settings/application-settings";
|
||||
compare("application-settings/application-settings", module_application_settings_application_settings_core, module_application_settings_application_settings_compat);
|
||||
|
||||
import * as module_application_settings_application_settings_common_core from "@nativescript/core/application-settings/application-settings-common";
|
||||
import * as module_application_settings_application_settings_common_compat from "tns-core-modules/application-settings/application-settings-common";
|
||||
compare("application-settings/application-settings-common", module_application_settings_application_settings_common_core, module_application_settings_application_settings_common_compat);
|
||||
|
||||
import * as module_application_application_core from "@nativescript/core/application/application";
|
||||
import * as module_application_application_compat from "tns-core-modules/application/application";
|
||||
compare("application/application", module_application_application_core, module_application_application_compat);
|
||||
|
||||
import * as module_application_application_common_core from "@nativescript/core/application/application-common";
|
||||
import * as module_application_application_common_compat from "tns-core-modules/application/application-common";
|
||||
compare("application/application-common", module_application_application_common_core, module_application_application_common_compat);
|
||||
|
||||
import * as module_bundle_entry_points_core from "@nativescript/core/bundle-entry-points";
|
||||
import * as module_bundle_entry_points_compat from "tns-core-modules/bundle-entry-points";
|
||||
compare("bundle-entry-points", module_bundle_entry_points_core, module_bundle_entry_points_compat);
|
||||
|
||||
import * as module_color_core from "@nativescript/core/color";
|
||||
import * as module_color_compat from "tns-core-modules/color";
|
||||
compare("color", module_color_core, module_color_compat);
|
||||
@@ -30,6 +42,10 @@ import * as module_color_color_core from "@nativescript/core/color/color";
|
||||
import * as module_color_color_compat from "tns-core-modules/color/color";
|
||||
compare("color/color", module_color_color_core, module_color_color_compat);
|
||||
|
||||
import * as module_color_color_common_core from "@nativescript/core/color/color-common";
|
||||
import * as module_color_color_common_compat from "tns-core-modules/color/color-common";
|
||||
compare("color/color-common", module_color_color_common_core, module_color_color_common_compat);
|
||||
|
||||
import * as module_color_known_colors_core from "@nativescript/core/color/known-colors";
|
||||
import * as module_color_known_colors_compat from "tns-core-modules/color/known-colors";
|
||||
compare("color/known-colors", module_color_known_colors_core, module_color_known_colors_compat);
|
||||
@@ -62,6 +78,10 @@ import * as module_css_value_reworkcss_value_core from "@nativescript/core/css-v
|
||||
import * as module_css_value_reworkcss_value_compat from "tns-core-modules/css-value/reworkcss-value";
|
||||
compare("css-value/reworkcss-value", module_css_value_reworkcss_value_core, module_css_value_reworkcss_value_compat);
|
||||
|
||||
import * as module_css_parser_core from "@nativescript/core/css/parser";
|
||||
import * as module_css_parser_compat from "tns-core-modules/css/parser";
|
||||
compare("css/parser", module_css_parser_core, module_css_parser_compat);
|
||||
|
||||
import * as module_css_reworkcss_core from "@nativescript/core/css/reworkcss";
|
||||
import * as module_css_reworkcss_compat from "tns-core-modules/css/reworkcss";
|
||||
compare("css/reworkcss", module_css_reworkcss_core, module_css_reworkcss_compat);
|
||||
@@ -106,6 +126,10 @@ import * as module_debugger_devtools_elements_core from "@nativescript/core/debu
|
||||
import * as module_debugger_devtools_elements_compat from "tns-core-modules/debugger/devtools-elements";
|
||||
compare("debugger/devtools-elements", module_debugger_devtools_elements_core, module_debugger_devtools_elements_compat);
|
||||
|
||||
import * as module_debugger_devtools_elements_common_core from "@nativescript/core/debugger/devtools-elements.common";
|
||||
import * as module_debugger_devtools_elements_common_compat from "tns-core-modules/debugger/devtools-elements.common";
|
||||
compare("debugger/devtools-elements.common", module_debugger_devtools_elements_common_core, module_debugger_devtools_elements_common_compat);
|
||||
|
||||
import * as module_debugger_dom_node_core from "@nativescript/core/debugger/dom-node";
|
||||
import * as module_debugger_dom_node_compat from "tns-core-modules/debugger/dom-node";
|
||||
compare("debugger/dom-node", module_debugger_dom_node_core, module_debugger_dom_node_compat);
|
||||
@@ -162,6 +186,10 @@ import * as module_globals_core_globals_core_core from "@nativescript/core/globa
|
||||
import * as module_globals_core_globals_core_compat from "tns-core-modules/globals/core/globals-core";
|
||||
compare("globals/core/globals-core", module_globals_core_globals_core_core, module_globals_core_globals_core_compat);
|
||||
|
||||
import * as module_globals_decorators_core from "@nativescript/core/globals/decorators";
|
||||
import * as module_globals_decorators_compat from "tns-core-modules/globals/decorators";
|
||||
compare("globals/decorators", module_globals_decorators_core, module_globals_decorators_compat);
|
||||
|
||||
import * as module_globals_globals_core from "@nativescript/core/globals/globals";
|
||||
import * as module_globals_globals_compat from "tns-core-modules/globals/globals";
|
||||
compare("globals/globals", module_globals_globals_core, module_globals_globals_compat);
|
||||
@@ -206,6 +234,14 @@ import * as module_globals_polyfills_xhr_xhr_core from "@nativescript/core/globa
|
||||
import * as module_globals_polyfills_xhr_xhr_compat from "tns-core-modules/globals/polyfills/xhr/xhr";
|
||||
compare("globals/polyfills/xhr/xhr", module_globals_polyfills_xhr_xhr_core, module_globals_polyfills_xhr_xhr_compat);
|
||||
|
||||
import * as module_globals_register_module_helpers_core from "@nativescript/core/globals/register-module-helpers";
|
||||
import * as module_globals_register_module_helpers_compat from "tns-core-modules/globals/register-module-helpers";
|
||||
compare("globals/register-module-helpers", module_globals_register_module_helpers_core, module_globals_register_module_helpers_compat);
|
||||
|
||||
import * as module_globals_ts_helpers_core from "@nativescript/core/globals/ts-helpers";
|
||||
import * as module_globals_ts_helpers_compat from "tns-core-modules/globals/ts-helpers";
|
||||
compare("globals/ts-helpers", module_globals_ts_helpers_core, module_globals_ts_helpers_compat);
|
||||
|
||||
import * as module_http_core from "@nativescript/core/http";
|
||||
import * as module_http_compat from "tns-core-modules/http";
|
||||
compare("http", module_http_core, module_http_compat);
|
||||
@@ -222,6 +258,10 @@ import * as module_http_http_request_http_request_core from "@nativescript/core/
|
||||
import * as module_http_http_request_http_request_compat from "tns-core-modules/http/http-request/http-request";
|
||||
compare("http/http-request/http-request", module_http_http_request_http_request_core, module_http_http_request_http_request_compat);
|
||||
|
||||
import * as module_http_http_request_http_request_common_core from "@nativescript/core/http/http-request/http-request-common";
|
||||
import * as module_http_http_request_http_request_common_compat from "tns-core-modules/http/http-request/http-request-common";
|
||||
compare("http/http-request/http-request-common", module_http_http_request_http_request_common_core, module_http_http_request_http_request_common_compat);
|
||||
|
||||
import * as module_image_asset_core from "@nativescript/core/image-asset";
|
||||
import * as module_image_asset_compat from "tns-core-modules/image-asset";
|
||||
compare("image-asset", module_image_asset_core, module_image_asset_compat);
|
||||
@@ -230,6 +270,10 @@ import * as module_image_asset_image_asset_core from "@nativescript/core/image-a
|
||||
import * as module_image_asset_image_asset_compat from "tns-core-modules/image-asset/image-asset";
|
||||
compare("image-asset/image-asset", module_image_asset_image_asset_core, module_image_asset_image_asset_compat);
|
||||
|
||||
import * as module_image_asset_image_asset_common_core from "@nativescript/core/image-asset/image-asset-common";
|
||||
import * as module_image_asset_image_asset_common_compat from "tns-core-modules/image-asset/image-asset-common";
|
||||
compare("image-asset/image-asset-common", module_image_asset_image_asset_common_core, module_image_asset_image_asset_common_compat);
|
||||
|
||||
import * as module_image_source_core from "@nativescript/core/image-source";
|
||||
import * as module_image_source_compat from "tns-core-modules/image-source";
|
||||
compare("image-source", module_image_source_core, module_image_source_compat);
|
||||
@@ -282,6 +326,10 @@ import * as module_module_name_resolver_module_name_resolver_core from "@natives
|
||||
import * as module_module_name_resolver_module_name_resolver_compat from "tns-core-modules/module-name-resolver/module-name-resolver";
|
||||
compare("module-name-resolver/module-name-resolver", module_module_name_resolver_module_name_resolver_core, module_module_name_resolver_module_name_resolver_compat);
|
||||
|
||||
import * as module_module_name_resolver_non_bundle_workflow_compat_core from "@nativescript/core/module-name-resolver/non-bundle-workflow-compat";
|
||||
import * as module_module_name_resolver_non_bundle_workflow_compat_compat from "tns-core-modules/module-name-resolver/non-bundle-workflow-compat";
|
||||
compare("module-name-resolver/non-bundle-workflow-compat", module_module_name_resolver_non_bundle_workflow_compat_core, module_module_name_resolver_non_bundle_workflow_compat_compat);
|
||||
|
||||
import * as module_module_name_resolver_qualifier_matcher_core from "@nativescript/core/module-name-resolver/qualifier-matcher";
|
||||
import * as module_module_name_resolver_qualifier_matcher_compat from "tns-core-modules/module-name-resolver/qualifier-matcher";
|
||||
compare("module-name-resolver/qualifier-matcher", module_module_name_resolver_qualifier_matcher_core, module_module_name_resolver_qualifier_matcher_compat);
|
||||
@@ -350,6 +398,10 @@ import * as module_ui_action_bar_action_bar_core from "@nativescript/core/ui/act
|
||||
import * as module_ui_action_bar_action_bar_compat from "tns-core-modules/ui/action-bar/action-bar";
|
||||
compare("ui/action-bar/action-bar", module_ui_action_bar_action_bar_core, module_ui_action_bar_action_bar_compat);
|
||||
|
||||
import * as module_ui_action_bar_action_bar_common_core from "@nativescript/core/ui/action-bar/action-bar-common";
|
||||
import * as module_ui_action_bar_action_bar_common_compat from "tns-core-modules/ui/action-bar/action-bar-common";
|
||||
compare("ui/action-bar/action-bar-common", module_ui_action_bar_action_bar_common_core, module_ui_action_bar_action_bar_common_compat);
|
||||
|
||||
import * as module_ui_activity_indicator_core from "@nativescript/core/ui/activity-indicator";
|
||||
import * as module_ui_activity_indicator_compat from "tns-core-modules/ui/activity-indicator";
|
||||
compare("ui/activity-indicator", module_ui_activity_indicator_core, module_ui_activity_indicator_compat);
|
||||
@@ -358,6 +410,10 @@ import * as module_ui_activity_indicator_activity_indicator_core from "@nativesc
|
||||
import * as module_ui_activity_indicator_activity_indicator_compat from "tns-core-modules/ui/activity-indicator/activity-indicator";
|
||||
compare("ui/activity-indicator/activity-indicator", module_ui_activity_indicator_activity_indicator_core, module_ui_activity_indicator_activity_indicator_compat);
|
||||
|
||||
import * as module_ui_activity_indicator_activity_indicator_common_core from "@nativescript/core/ui/activity-indicator/activity-indicator-common";
|
||||
import * as module_ui_activity_indicator_activity_indicator_common_compat from "tns-core-modules/ui/activity-indicator/activity-indicator-common";
|
||||
compare("ui/activity-indicator/activity-indicator-common", module_ui_activity_indicator_activity_indicator_common_core, module_ui_activity_indicator_activity_indicator_common_compat);
|
||||
|
||||
import * as module_ui_animation_core from "@nativescript/core/ui/animation";
|
||||
import * as module_ui_animation_compat from "tns-core-modules/ui/animation";
|
||||
compare("ui/animation", module_ui_animation_core, module_ui_animation_compat);
|
||||
@@ -366,6 +422,10 @@ import * as module_ui_animation_animation_core from "@nativescript/core/ui/anima
|
||||
import * as module_ui_animation_animation_compat from "tns-core-modules/ui/animation/animation";
|
||||
compare("ui/animation/animation", module_ui_animation_animation_core, module_ui_animation_animation_compat);
|
||||
|
||||
import * as module_ui_animation_animation_common_core from "@nativescript/core/ui/animation/animation-common";
|
||||
import * as module_ui_animation_animation_common_compat from "tns-core-modules/ui/animation/animation-common";
|
||||
compare("ui/animation/animation-common", module_ui_animation_animation_common_core, module_ui_animation_animation_common_compat);
|
||||
|
||||
import * as module_ui_animation_keyframe_animation_core from "@nativescript/core/ui/animation/keyframe-animation";
|
||||
import * as module_ui_animation_keyframe_animation_compat from "tns-core-modules/ui/animation/keyframe-animation";
|
||||
compare("ui/animation/keyframe-animation", module_ui_animation_keyframe_animation_core, module_ui_animation_keyframe_animation_compat);
|
||||
@@ -390,6 +450,10 @@ import * as module_ui_builder_core from "@nativescript/core/ui/builder";
|
||||
import * as module_ui_builder_compat from "tns-core-modules/ui/builder";
|
||||
compare("ui/builder", module_ui_builder_core, module_ui_builder_compat);
|
||||
|
||||
import * as module_ui_builder_binding_builder_core from "@nativescript/core/ui/builder/binding-builder";
|
||||
import * as module_ui_builder_binding_builder_compat from "tns-core-modules/ui/builder/binding-builder";
|
||||
compare("ui/builder/binding-builder", module_ui_builder_binding_builder_core, module_ui_builder_binding_builder_compat);
|
||||
|
||||
import * as module_ui_builder_builder_core from "@nativescript/core/ui/builder/builder";
|
||||
import * as module_ui_builder_builder_compat from "tns-core-modules/ui/builder/builder";
|
||||
compare("ui/builder/builder", module_ui_builder_builder_core, module_ui_builder_builder_compat);
|
||||
@@ -414,6 +478,10 @@ import * as module_ui_button_button_core from "@nativescript/core/ui/button/butt
|
||||
import * as module_ui_button_button_compat from "tns-core-modules/ui/button/button";
|
||||
compare("ui/button/button", module_ui_button_button_core, module_ui_button_button_compat);
|
||||
|
||||
import * as module_ui_button_button_common_core from "@nativescript/core/ui/button/button-common";
|
||||
import * as module_ui_button_button_common_compat from "tns-core-modules/ui/button/button-common";
|
||||
compare("ui/button/button-common", module_ui_button_button_common_core, module_ui_button_button_common_compat);
|
||||
|
||||
import * as module_ui_content_view_core from "@nativescript/core/ui/content-view";
|
||||
import * as module_ui_content_view_compat from "tns-core-modules/ui/content-view";
|
||||
compare("ui/content-view", module_ui_content_view_core, module_ui_content_view_compat);
|
||||
@@ -462,6 +530,10 @@ import * as module_ui_core_view_view_core from "@nativescript/core/ui/core/view/
|
||||
import * as module_ui_core_view_view_compat from "tns-core-modules/ui/core/view/view";
|
||||
compare("ui/core/view/view", module_ui_core_view_view_core, module_ui_core_view_view_compat);
|
||||
|
||||
import * as module_ui_core_view_view_common_core from "@nativescript/core/ui/core/view/view-common";
|
||||
import * as module_ui_core_view_view_common_compat from "tns-core-modules/ui/core/view/view-common";
|
||||
compare("ui/core/view/view-common", module_ui_core_view_view_common_core, module_ui_core_view_view_common_compat);
|
||||
|
||||
import * as module_ui_core_weak_event_listener_core from "@nativescript/core/ui/core/weak-event-listener";
|
||||
import * as module_ui_core_weak_event_listener_compat from "tns-core-modules/ui/core/weak-event-listener";
|
||||
compare("ui/core/weak-event-listener", module_ui_core_weak_event_listener_core, module_ui_core_weak_event_listener_compat);
|
||||
@@ -478,6 +550,10 @@ import * as module_ui_date_picker_date_picker_core from "@nativescript/core/ui/d
|
||||
import * as module_ui_date_picker_date_picker_compat from "tns-core-modules/ui/date-picker/date-picker";
|
||||
compare("ui/date-picker/date-picker", module_ui_date_picker_date_picker_core, module_ui_date_picker_date_picker_compat);
|
||||
|
||||
import * as module_ui_date_picker_date_picker_common_core from "@nativescript/core/ui/date-picker/date-picker-common";
|
||||
import * as module_ui_date_picker_date_picker_common_compat from "tns-core-modules/ui/date-picker/date-picker-common";
|
||||
compare("ui/date-picker/date-picker-common", module_ui_date_picker_date_picker_common_core, module_ui_date_picker_date_picker_common_compat);
|
||||
|
||||
import * as module_ui_dialogs_core from "@nativescript/core/ui/dialogs";
|
||||
import * as module_ui_dialogs_compat from "tns-core-modules/ui/dialogs";
|
||||
compare("ui/dialogs", module_ui_dialogs_core, module_ui_dialogs_compat);
|
||||
@@ -486,6 +562,10 @@ import * as module_ui_dialogs_dialogs_core from "@nativescript/core/ui/dialogs/d
|
||||
import * as module_ui_dialogs_dialogs_compat from "tns-core-modules/ui/dialogs/dialogs";
|
||||
compare("ui/dialogs/dialogs", module_ui_dialogs_dialogs_core, module_ui_dialogs_dialogs_compat);
|
||||
|
||||
import * as module_ui_dialogs_dialogs_common_core from "@nativescript/core/ui/dialogs/dialogs-common";
|
||||
import * as module_ui_dialogs_dialogs_common_compat from "tns-core-modules/ui/dialogs/dialogs-common";
|
||||
compare("ui/dialogs/dialogs-common", module_ui_dialogs_dialogs_common_core, module_ui_dialogs_dialogs_common_compat);
|
||||
|
||||
import * as module_ui_editable_text_base_core from "@nativescript/core/ui/editable-text-base";
|
||||
import * as module_ui_editable_text_base_compat from "tns-core-modules/ui/editable-text-base";
|
||||
compare("ui/editable-text-base", module_ui_editable_text_base_core, module_ui_editable_text_base_compat);
|
||||
@@ -494,6 +574,10 @@ import * as module_ui_editable_text_base_editable_text_base_core from "@nativesc
|
||||
import * as module_ui_editable_text_base_editable_text_base_compat from "tns-core-modules/ui/editable-text-base/editable-text-base";
|
||||
compare("ui/editable-text-base/editable-text-base", module_ui_editable_text_base_editable_text_base_core, module_ui_editable_text_base_editable_text_base_compat);
|
||||
|
||||
import * as module_ui_editable_text_base_editable_text_base_common_core from "@nativescript/core/ui/editable-text-base/editable-text-base-common";
|
||||
import * as module_ui_editable_text_base_editable_text_base_common_compat from "tns-core-modules/ui/editable-text-base/editable-text-base-common";
|
||||
compare("ui/editable-text-base/editable-text-base-common", module_ui_editable_text_base_editable_text_base_common_core, module_ui_editable_text_base_editable_text_base_common_compat);
|
||||
|
||||
import * as module_ui_enums_core from "@nativescript/core/ui/enums";
|
||||
import * as module_ui_enums_compat from "tns-core-modules/ui/enums";
|
||||
compare("ui/enums", module_ui_enums_core, module_ui_enums_compat);
|
||||
@@ -510,10 +594,22 @@ import * as module_ui_frame_fragment_transitions_core from "@nativescript/core/u
|
||||
import * as module_ui_frame_fragment_transitions_compat from "tns-core-modules/ui/frame/fragment.transitions";
|
||||
compare("ui/frame/fragment.transitions", module_ui_frame_fragment_transitions_core, module_ui_frame_fragment_transitions_compat);
|
||||
|
||||
import * as module_ui_frame_fragment_transitions_types_core from "@nativescript/core/ui/frame/fragment.transitions.types";
|
||||
import * as module_ui_frame_fragment_transitions_types_compat from "tns-core-modules/ui/frame/fragment.transitions.types";
|
||||
compare("ui/frame/fragment.transitions.types", module_ui_frame_fragment_transitions_types_core, module_ui_frame_fragment_transitions_types_compat);
|
||||
|
||||
import * as module_ui_frame_frame_core from "@nativescript/core/ui/frame/frame";
|
||||
import * as module_ui_frame_frame_compat from "tns-core-modules/ui/frame/frame";
|
||||
compare("ui/frame/frame", module_ui_frame_frame_core, module_ui_frame_frame_compat);
|
||||
|
||||
import * as module_ui_frame_frame_common_core from "@nativescript/core/ui/frame/frame-common";
|
||||
import * as module_ui_frame_frame_common_compat from "tns-core-modules/ui/frame/frame-common";
|
||||
compare("ui/frame/frame-common", module_ui_frame_frame_common_core, module_ui_frame_frame_common_compat);
|
||||
|
||||
import * as module_ui_frame_frame_stack_core from "@nativescript/core/ui/frame/frame-stack";
|
||||
import * as module_ui_frame_frame_stack_compat from "tns-core-modules/ui/frame/frame-stack";
|
||||
compare("ui/frame/frame-stack", module_ui_frame_frame_stack_core, module_ui_frame_frame_stack_compat);
|
||||
|
||||
import * as module_ui_gestures_core from "@nativescript/core/ui/gestures";
|
||||
import * as module_ui_gestures_compat from "tns-core-modules/ui/gestures";
|
||||
compare("ui/gestures", module_ui_gestures_core, module_ui_gestures_compat);
|
||||
@@ -522,6 +618,10 @@ import * as module_ui_gestures_gestures_core from "@nativescript/core/ui/gesture
|
||||
import * as module_ui_gestures_gestures_compat from "tns-core-modules/ui/gestures/gestures";
|
||||
compare("ui/gestures/gestures", module_ui_gestures_gestures_core, module_ui_gestures_gestures_compat);
|
||||
|
||||
import * as module_ui_gestures_gestures_common_core from "@nativescript/core/ui/gestures/gestures-common";
|
||||
import * as module_ui_gestures_gestures_common_compat from "tns-core-modules/ui/gestures/gestures-common";
|
||||
compare("ui/gestures/gestures-common", module_ui_gestures_gestures_common_core, module_ui_gestures_gestures_common_compat);
|
||||
|
||||
import * as module_ui_html_view_core from "@nativescript/core/ui/html-view";
|
||||
import * as module_ui_html_view_compat from "tns-core-modules/ui/html-view";
|
||||
compare("ui/html-view", module_ui_html_view_core, module_ui_html_view_compat);
|
||||
@@ -530,6 +630,10 @@ import * as module_ui_html_view_html_view_core from "@nativescript/core/ui/html-
|
||||
import * as module_ui_html_view_html_view_compat from "tns-core-modules/ui/html-view/html-view";
|
||||
compare("ui/html-view/html-view", module_ui_html_view_html_view_core, module_ui_html_view_html_view_compat);
|
||||
|
||||
import * as module_ui_html_view_html_view_common_core from "@nativescript/core/ui/html-view/html-view-common";
|
||||
import * as module_ui_html_view_html_view_common_compat from "tns-core-modules/ui/html-view/html-view-common";
|
||||
compare("ui/html-view/html-view-common", module_ui_html_view_html_view_common_core, module_ui_html_view_html_view_common_compat);
|
||||
|
||||
import * as module_ui_image_core from "@nativescript/core/ui/image";
|
||||
import * as module_ui_image_compat from "tns-core-modules/ui/image";
|
||||
compare("ui/image", module_ui_image_core, module_ui_image_compat);
|
||||
@@ -542,10 +646,18 @@ import * as module_ui_image_cache_image_cache_core from "@nativescript/core/ui/i
|
||||
import * as module_ui_image_cache_image_cache_compat from "tns-core-modules/ui/image-cache/image-cache";
|
||||
compare("ui/image-cache/image-cache", module_ui_image_cache_image_cache_core, module_ui_image_cache_image_cache_compat);
|
||||
|
||||
import * as module_ui_image_cache_image_cache_common_core from "@nativescript/core/ui/image-cache/image-cache-common";
|
||||
import * as module_ui_image_cache_image_cache_common_compat from "tns-core-modules/ui/image-cache/image-cache-common";
|
||||
compare("ui/image-cache/image-cache-common", module_ui_image_cache_image_cache_common_core, module_ui_image_cache_image_cache_common_compat);
|
||||
|
||||
import * as module_ui_image_image_core from "@nativescript/core/ui/image/image";
|
||||
import * as module_ui_image_image_compat from "tns-core-modules/ui/image/image";
|
||||
compare("ui/image/image", module_ui_image_image_core, module_ui_image_image_compat);
|
||||
|
||||
import * as module_ui_image_image_common_core from "@nativescript/core/ui/image/image-common";
|
||||
import * as module_ui_image_image_common_compat from "tns-core-modules/ui/image/image-common";
|
||||
compare("ui/image/image-common", module_ui_image_image_common_core, module_ui_image_image_common_compat);
|
||||
|
||||
import * as module_ui_index_core from "@nativescript/core/ui/index";
|
||||
import * as module_ui_index_compat from "tns-core-modules/ui/index";
|
||||
compare("ui/index", module_ui_index_core, module_ui_index_compat);
|
||||
@@ -570,6 +682,10 @@ import * as module_ui_layouts_absolute_layout_absolute_layout_core from "@native
|
||||
import * as module_ui_layouts_absolute_layout_absolute_layout_compat from "tns-core-modules/ui/layouts/absolute-layout/absolute-layout";
|
||||
compare("ui/layouts/absolute-layout/absolute-layout", module_ui_layouts_absolute_layout_absolute_layout_core, module_ui_layouts_absolute_layout_absolute_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_absolute_layout_absolute_layout_common_core from "@nativescript/core/ui/layouts/absolute-layout/absolute-layout-common";
|
||||
import * as module_ui_layouts_absolute_layout_absolute_layout_common_compat from "tns-core-modules/ui/layouts/absolute-layout/absolute-layout-common";
|
||||
compare("ui/layouts/absolute-layout/absolute-layout-common", module_ui_layouts_absolute_layout_absolute_layout_common_core, module_ui_layouts_absolute_layout_absolute_layout_common_compat);
|
||||
|
||||
import * as module_ui_layouts_dock_layout_core from "@nativescript/core/ui/layouts/dock-layout";
|
||||
import * as module_ui_layouts_dock_layout_compat from "tns-core-modules/ui/layouts/dock-layout";
|
||||
compare("ui/layouts/dock-layout", module_ui_layouts_dock_layout_core, module_ui_layouts_dock_layout_compat);
|
||||
@@ -578,6 +694,10 @@ import * as module_ui_layouts_dock_layout_dock_layout_core from "@nativescript/c
|
||||
import * as module_ui_layouts_dock_layout_dock_layout_compat from "tns-core-modules/ui/layouts/dock-layout/dock-layout";
|
||||
compare("ui/layouts/dock-layout/dock-layout", module_ui_layouts_dock_layout_dock_layout_core, module_ui_layouts_dock_layout_dock_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_dock_layout_dock_layout_common_core from "@nativescript/core/ui/layouts/dock-layout/dock-layout-common";
|
||||
import * as module_ui_layouts_dock_layout_dock_layout_common_compat from "tns-core-modules/ui/layouts/dock-layout/dock-layout-common";
|
||||
compare("ui/layouts/dock-layout/dock-layout-common", module_ui_layouts_dock_layout_dock_layout_common_core, module_ui_layouts_dock_layout_dock_layout_common_compat);
|
||||
|
||||
import * as module_ui_layouts_flexbox_layout_core from "@nativescript/core/ui/layouts/flexbox-layout";
|
||||
import * as module_ui_layouts_flexbox_layout_compat from "tns-core-modules/ui/layouts/flexbox-layout";
|
||||
compare("ui/layouts/flexbox-layout", module_ui_layouts_flexbox_layout_core, module_ui_layouts_flexbox_layout_compat);
|
||||
@@ -586,6 +706,10 @@ import * as module_ui_layouts_flexbox_layout_flexbox_layout_core from "@nativesc
|
||||
import * as module_ui_layouts_flexbox_layout_flexbox_layout_compat from "tns-core-modules/ui/layouts/flexbox-layout/flexbox-layout";
|
||||
compare("ui/layouts/flexbox-layout/flexbox-layout", module_ui_layouts_flexbox_layout_flexbox_layout_core, module_ui_layouts_flexbox_layout_flexbox_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_flexbox_layout_flexbox_layout_common_core from "@nativescript/core/ui/layouts/flexbox-layout/flexbox-layout-common";
|
||||
import * as module_ui_layouts_flexbox_layout_flexbox_layout_common_compat from "tns-core-modules/ui/layouts/flexbox-layout/flexbox-layout-common";
|
||||
compare("ui/layouts/flexbox-layout/flexbox-layout-common", module_ui_layouts_flexbox_layout_flexbox_layout_common_core, module_ui_layouts_flexbox_layout_flexbox_layout_common_compat);
|
||||
|
||||
import * as module_ui_layouts_grid_layout_core from "@nativescript/core/ui/layouts/grid-layout";
|
||||
import * as module_ui_layouts_grid_layout_compat from "tns-core-modules/ui/layouts/grid-layout";
|
||||
compare("ui/layouts/grid-layout", module_ui_layouts_grid_layout_core, module_ui_layouts_grid_layout_compat);
|
||||
@@ -594,6 +718,10 @@ import * as module_ui_layouts_grid_layout_grid_layout_core from "@nativescript/c
|
||||
import * as module_ui_layouts_grid_layout_grid_layout_compat from "tns-core-modules/ui/layouts/grid-layout/grid-layout";
|
||||
compare("ui/layouts/grid-layout/grid-layout", module_ui_layouts_grid_layout_grid_layout_core, module_ui_layouts_grid_layout_grid_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_grid_layout_grid_layout_common_core from "@nativescript/core/ui/layouts/grid-layout/grid-layout-common";
|
||||
import * as module_ui_layouts_grid_layout_grid_layout_common_compat from "tns-core-modules/ui/layouts/grid-layout/grid-layout-common";
|
||||
compare("ui/layouts/grid-layout/grid-layout-common", module_ui_layouts_grid_layout_grid_layout_common_core, module_ui_layouts_grid_layout_grid_layout_common_compat);
|
||||
|
||||
import * as module_ui_layouts_index_core from "@nativescript/core/ui/layouts/index";
|
||||
import * as module_ui_layouts_index_compat from "tns-core-modules/ui/layouts/index";
|
||||
compare("ui/layouts/index", module_ui_layouts_index_core, module_ui_layouts_index_compat);
|
||||
@@ -602,6 +730,10 @@ import * as module_ui_layouts_layout_base_core from "@nativescript/core/ui/layou
|
||||
import * as module_ui_layouts_layout_base_compat from "tns-core-modules/ui/layouts/layout-base";
|
||||
compare("ui/layouts/layout-base", module_ui_layouts_layout_base_core, module_ui_layouts_layout_base_compat);
|
||||
|
||||
import * as module_ui_layouts_layout_base_common_core from "@nativescript/core/ui/layouts/layout-base-common";
|
||||
import * as module_ui_layouts_layout_base_common_compat from "tns-core-modules/ui/layouts/layout-base-common";
|
||||
compare("ui/layouts/layout-base-common", module_ui_layouts_layout_base_common_core, module_ui_layouts_layout_base_common_compat);
|
||||
|
||||
import * as module_ui_layouts_stack_layout_core from "@nativescript/core/ui/layouts/stack-layout";
|
||||
import * as module_ui_layouts_stack_layout_compat from "tns-core-modules/ui/layouts/stack-layout";
|
||||
compare("ui/layouts/stack-layout", module_ui_layouts_stack_layout_core, module_ui_layouts_stack_layout_compat);
|
||||
@@ -610,6 +742,10 @@ import * as module_ui_layouts_stack_layout_stack_layout_core from "@nativescript
|
||||
import * as module_ui_layouts_stack_layout_stack_layout_compat from "tns-core-modules/ui/layouts/stack-layout/stack-layout";
|
||||
compare("ui/layouts/stack-layout/stack-layout", module_ui_layouts_stack_layout_stack_layout_core, module_ui_layouts_stack_layout_stack_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_stack_layout_stack_layout_common_core from "@nativescript/core/ui/layouts/stack-layout/stack-layout-common";
|
||||
import * as module_ui_layouts_stack_layout_stack_layout_common_compat from "tns-core-modules/ui/layouts/stack-layout/stack-layout-common";
|
||||
compare("ui/layouts/stack-layout/stack-layout-common", module_ui_layouts_stack_layout_stack_layout_common_core, module_ui_layouts_stack_layout_stack_layout_common_compat);
|
||||
|
||||
import * as module_ui_layouts_wrap_layout_core from "@nativescript/core/ui/layouts/wrap-layout";
|
||||
import * as module_ui_layouts_wrap_layout_compat from "tns-core-modules/ui/layouts/wrap-layout";
|
||||
compare("ui/layouts/wrap-layout", module_ui_layouts_wrap_layout_core, module_ui_layouts_wrap_layout_compat);
|
||||
@@ -618,6 +754,10 @@ import * as module_ui_layouts_wrap_layout_wrap_layout_core from "@nativescript/c
|
||||
import * as module_ui_layouts_wrap_layout_wrap_layout_compat from "tns-core-modules/ui/layouts/wrap-layout/wrap-layout";
|
||||
compare("ui/layouts/wrap-layout/wrap-layout", module_ui_layouts_wrap_layout_wrap_layout_core, module_ui_layouts_wrap_layout_wrap_layout_compat);
|
||||
|
||||
import * as module_ui_layouts_wrap_layout_wrap_layout_common_core from "@nativescript/core/ui/layouts/wrap-layout/wrap-layout-common";
|
||||
import * as module_ui_layouts_wrap_layout_wrap_layout_common_compat from "tns-core-modules/ui/layouts/wrap-layout/wrap-layout-common";
|
||||
compare("ui/layouts/wrap-layout/wrap-layout-common", module_ui_layouts_wrap_layout_wrap_layout_common_core, module_ui_layouts_wrap_layout_wrap_layout_common_compat);
|
||||
|
||||
import * as module_ui_list_picker_core from "@nativescript/core/ui/list-picker";
|
||||
import * as module_ui_list_picker_compat from "tns-core-modules/ui/list-picker";
|
||||
compare("ui/list-picker", module_ui_list_picker_core, module_ui_list_picker_compat);
|
||||
@@ -626,6 +766,10 @@ import * as module_ui_list_picker_list_picker_core from "@nativescript/core/ui/l
|
||||
import * as module_ui_list_picker_list_picker_compat from "tns-core-modules/ui/list-picker/list-picker";
|
||||
compare("ui/list-picker/list-picker", module_ui_list_picker_list_picker_core, module_ui_list_picker_list_picker_compat);
|
||||
|
||||
import * as module_ui_list_picker_list_picker_common_core from "@nativescript/core/ui/list-picker/list-picker-common";
|
||||
import * as module_ui_list_picker_list_picker_common_compat from "tns-core-modules/ui/list-picker/list-picker-common";
|
||||
compare("ui/list-picker/list-picker-common", module_ui_list_picker_list_picker_common_core, module_ui_list_picker_list_picker_common_compat);
|
||||
|
||||
import * as module_ui_list_view_core from "@nativescript/core/ui/list-view";
|
||||
import * as module_ui_list_view_compat from "tns-core-modules/ui/list-view";
|
||||
compare("ui/list-view", module_ui_list_view_core, module_ui_list_view_compat);
|
||||
@@ -634,6 +778,10 @@ import * as module_ui_list_view_list_view_core from "@nativescript/core/ui/list-
|
||||
import * as module_ui_list_view_list_view_compat from "tns-core-modules/ui/list-view/list-view";
|
||||
compare("ui/list-view/list-view", module_ui_list_view_list_view_core, module_ui_list_view_list_view_compat);
|
||||
|
||||
import * as module_ui_list_view_list_view_common_core from "@nativescript/core/ui/list-view/list-view-common";
|
||||
import * as module_ui_list_view_list_view_common_compat from "tns-core-modules/ui/list-view/list-view-common";
|
||||
compare("ui/list-view/list-view-common", module_ui_list_view_list_view_common_core, module_ui_list_view_list_view_common_compat);
|
||||
|
||||
import * as module_ui_page_core from "@nativescript/core/ui/page";
|
||||
import * as module_ui_page_compat from "tns-core-modules/ui/page";
|
||||
compare("ui/page", module_ui_page_core, module_ui_page_compat);
|
||||
@@ -642,6 +790,10 @@ import * as module_ui_page_page_core from "@nativescript/core/ui/page/page";
|
||||
import * as module_ui_page_page_compat from "tns-core-modules/ui/page/page";
|
||||
compare("ui/page/page", module_ui_page_page_core, module_ui_page_page_compat);
|
||||
|
||||
import * as module_ui_page_page_common_core from "@nativescript/core/ui/page/page-common";
|
||||
import * as module_ui_page_page_common_compat from "tns-core-modules/ui/page/page-common";
|
||||
compare("ui/page/page-common", module_ui_page_page_common_core, module_ui_page_page_common_compat);
|
||||
|
||||
import * as module_ui_placeholder_core from "@nativescript/core/ui/placeholder";
|
||||
import * as module_ui_placeholder_compat from "tns-core-modules/ui/placeholder";
|
||||
compare("ui/placeholder", module_ui_placeholder_core, module_ui_placeholder_compat);
|
||||
@@ -658,6 +810,10 @@ import * as module_ui_progress_progress_core from "@nativescript/core/ui/progres
|
||||
import * as module_ui_progress_progress_compat from "tns-core-modules/ui/progress/progress";
|
||||
compare("ui/progress/progress", module_ui_progress_progress_core, module_ui_progress_progress_compat);
|
||||
|
||||
import * as module_ui_progress_progress_common_core from "@nativescript/core/ui/progress/progress-common";
|
||||
import * as module_ui_progress_progress_common_compat from "tns-core-modules/ui/progress/progress-common";
|
||||
compare("ui/progress/progress-common", module_ui_progress_progress_common_core, module_ui_progress_progress_common_compat);
|
||||
|
||||
import * as module_ui_proxy_view_container_core from "@nativescript/core/ui/proxy-view-container";
|
||||
import * as module_ui_proxy_view_container_compat from "tns-core-modules/ui/proxy-view-container";
|
||||
compare("ui/proxy-view-container", module_ui_proxy_view_container_core, module_ui_proxy_view_container_compat);
|
||||
@@ -682,6 +838,10 @@ import * as module_ui_scroll_view_scroll_view_core from "@nativescript/core/ui/s
|
||||
import * as module_ui_scroll_view_scroll_view_compat from "tns-core-modules/ui/scroll-view/scroll-view";
|
||||
compare("ui/scroll-view/scroll-view", module_ui_scroll_view_scroll_view_core, module_ui_scroll_view_scroll_view_compat);
|
||||
|
||||
import * as module_ui_scroll_view_scroll_view_common_core from "@nativescript/core/ui/scroll-view/scroll-view-common";
|
||||
import * as module_ui_scroll_view_scroll_view_common_compat from "tns-core-modules/ui/scroll-view/scroll-view-common";
|
||||
compare("ui/scroll-view/scroll-view-common", module_ui_scroll_view_scroll_view_common_core, module_ui_scroll_view_scroll_view_common_compat);
|
||||
|
||||
import * as module_ui_search_bar_core from "@nativescript/core/ui/search-bar";
|
||||
import * as module_ui_search_bar_compat from "tns-core-modules/ui/search-bar";
|
||||
compare("ui/search-bar", module_ui_search_bar_core, module_ui_search_bar_compat);
|
||||
@@ -690,6 +850,10 @@ import * as module_ui_search_bar_search_bar_core from "@nativescript/core/ui/sea
|
||||
import * as module_ui_search_bar_search_bar_compat from "tns-core-modules/ui/search-bar/search-bar";
|
||||
compare("ui/search-bar/search-bar", module_ui_search_bar_search_bar_core, module_ui_search_bar_search_bar_compat);
|
||||
|
||||
import * as module_ui_search_bar_search_bar_common_core from "@nativescript/core/ui/search-bar/search-bar-common";
|
||||
import * as module_ui_search_bar_search_bar_common_compat from "tns-core-modules/ui/search-bar/search-bar-common";
|
||||
compare("ui/search-bar/search-bar-common", module_ui_search_bar_search_bar_common_core, module_ui_search_bar_search_bar_common_compat);
|
||||
|
||||
import * as module_ui_segmented_bar_core from "@nativescript/core/ui/segmented-bar";
|
||||
import * as module_ui_segmented_bar_compat from "tns-core-modules/ui/segmented-bar";
|
||||
compare("ui/segmented-bar", module_ui_segmented_bar_core, module_ui_segmented_bar_compat);
|
||||
@@ -698,6 +862,10 @@ import * as module_ui_segmented_bar_segmented_bar_core from "@nativescript/core/
|
||||
import * as module_ui_segmented_bar_segmented_bar_compat from "tns-core-modules/ui/segmented-bar/segmented-bar";
|
||||
compare("ui/segmented-bar/segmented-bar", module_ui_segmented_bar_segmented_bar_core, module_ui_segmented_bar_segmented_bar_compat);
|
||||
|
||||
import * as module_ui_segmented_bar_segmented_bar_common_core from "@nativescript/core/ui/segmented-bar/segmented-bar-common";
|
||||
import * as module_ui_segmented_bar_segmented_bar_common_compat from "tns-core-modules/ui/segmented-bar/segmented-bar-common";
|
||||
compare("ui/segmented-bar/segmented-bar-common", module_ui_segmented_bar_segmented_bar_common_core, module_ui_segmented_bar_segmented_bar_common_compat);
|
||||
|
||||
import * as module_ui_slider_core from "@nativescript/core/ui/slider";
|
||||
import * as module_ui_slider_compat from "tns-core-modules/ui/slider";
|
||||
compare("ui/slider", module_ui_slider_core, module_ui_slider_compat);
|
||||
@@ -706,10 +874,26 @@ import * as module_ui_slider_slider_core from "@nativescript/core/ui/slider/slid
|
||||
import * as module_ui_slider_slider_compat from "tns-core-modules/ui/slider/slider";
|
||||
compare("ui/slider/slider", module_ui_slider_slider_core, module_ui_slider_slider_compat);
|
||||
|
||||
import * as module_ui_slider_slider_common_core from "@nativescript/core/ui/slider/slider-common";
|
||||
import * as module_ui_slider_slider_common_compat from "tns-core-modules/ui/slider/slider-common";
|
||||
compare("ui/slider/slider-common", module_ui_slider_slider_common_core, module_ui_slider_slider_common_compat);
|
||||
|
||||
import * as module_ui_styling_background_core from "@nativescript/core/ui/styling/background";
|
||||
import * as module_ui_styling_background_compat from "tns-core-modules/ui/styling/background";
|
||||
compare("ui/styling/background", module_ui_styling_background_core, module_ui_styling_background_compat);
|
||||
|
||||
import * as module_ui_styling_background_common_core from "@nativescript/core/ui/styling/background-common";
|
||||
import * as module_ui_styling_background_common_compat from "tns-core-modules/ui/styling/background-common";
|
||||
compare("ui/styling/background-common", module_ui_styling_background_common_core, module_ui_styling_background_common_compat);
|
||||
|
||||
import * as module_ui_styling_converters_core from "@nativescript/core/ui/styling/converters";
|
||||
import * as module_ui_styling_converters_compat from "tns-core-modules/ui/styling/converters";
|
||||
compare("ui/styling/converters", module_ui_styling_converters_core, module_ui_styling_converters_compat);
|
||||
|
||||
import * as module_ui_styling_css_animation_parser_core from "@nativescript/core/ui/styling/css-animation-parser";
|
||||
import * as module_ui_styling_css_animation_parser_compat from "tns-core-modules/ui/styling/css-animation-parser";
|
||||
compare("ui/styling/css-animation-parser", module_ui_styling_css_animation_parser_core, module_ui_styling_css_animation_parser_compat);
|
||||
|
||||
import * as module_ui_styling_css_selector_core from "@nativescript/core/ui/styling/css-selector";
|
||||
import * as module_ui_styling_css_selector_compat from "tns-core-modules/ui/styling/css-selector";
|
||||
compare("ui/styling/css-selector", module_ui_styling_css_selector_core, module_ui_styling_css_selector_compat);
|
||||
@@ -722,6 +906,14 @@ import * as module_ui_styling_font_core from "@nativescript/core/ui/styling/font
|
||||
import * as module_ui_styling_font_compat from "tns-core-modules/ui/styling/font";
|
||||
compare("ui/styling/font", module_ui_styling_font_core, module_ui_styling_font_compat);
|
||||
|
||||
import * as module_ui_styling_font_common_core from "@nativescript/core/ui/styling/font-common";
|
||||
import * as module_ui_styling_font_common_compat from "tns-core-modules/ui/styling/font-common";
|
||||
compare("ui/styling/font-common", module_ui_styling_font_common_core, module_ui_styling_font_common_compat);
|
||||
|
||||
import * as module_ui_styling_linear_gradient_core from "@nativescript/core/ui/styling/linear-gradient";
|
||||
import * as module_ui_styling_linear_gradient_compat from "tns-core-modules/ui/styling/linear-gradient";
|
||||
compare("ui/styling/linear-gradient", module_ui_styling_linear_gradient_core, module_ui_styling_linear_gradient_compat);
|
||||
|
||||
import * as module_ui_styling_style_core from "@nativescript/core/ui/styling/style";
|
||||
import * as module_ui_styling_style_compat from "tns-core-modules/ui/styling/style";
|
||||
compare("ui/styling/style", module_ui_styling_style_core, module_ui_styling_style_compat);
|
||||
@@ -746,6 +938,10 @@ import * as module_ui_switch_switch_core from "@nativescript/core/ui/switch/swit
|
||||
import * as module_ui_switch_switch_compat from "tns-core-modules/ui/switch/switch";
|
||||
compare("ui/switch/switch", module_ui_switch_switch_core, module_ui_switch_switch_compat);
|
||||
|
||||
import * as module_ui_switch_switch_common_core from "@nativescript/core/ui/switch/switch-common";
|
||||
import * as module_ui_switch_switch_common_compat from "tns-core-modules/ui/switch/switch-common";
|
||||
compare("ui/switch/switch-common", module_ui_switch_switch_common_core, module_ui_switch_switch_common_compat);
|
||||
|
||||
import * as module_ui_tab_navigation_base_tab_content_item_core from "@nativescript/core/ui/tab-navigation-base/tab-content-item";
|
||||
import * as module_ui_tab_navigation_base_tab_content_item_compat from "tns-core-modules/ui/tab-navigation-base/tab-content-item";
|
||||
compare("ui/tab-navigation-base/tab-content-item", module_ui_tab_navigation_base_tab_content_item_core, module_ui_tab_navigation_base_tab_content_item_compat);
|
||||
@@ -754,6 +950,10 @@ import * as module_ui_tab_navigation_base_tab_content_item_tab_content_item_core
|
||||
import * as module_ui_tab_navigation_base_tab_content_item_tab_content_item_compat from "tns-core-modules/ui/tab-navigation-base/tab-content-item/tab-content-item";
|
||||
compare("ui/tab-navigation-base/tab-content-item/tab-content-item", module_ui_tab_navigation_base_tab_content_item_tab_content_item_core, module_ui_tab_navigation_base_tab_content_item_tab_content_item_compat);
|
||||
|
||||
import * as module_ui_tab_navigation_base_tab_content_item_tab_content_item_common_core from "@nativescript/core/ui/tab-navigation-base/tab-content-item/tab-content-item-common";
|
||||
import * as module_ui_tab_navigation_base_tab_content_item_tab_content_item_common_compat from "tns-core-modules/ui/tab-navigation-base/tab-content-item/tab-content-item-common";
|
||||
compare("ui/tab-navigation-base/tab-content-item/tab-content-item-common", module_ui_tab_navigation_base_tab_content_item_tab_content_item_common_core, module_ui_tab_navigation_base_tab_content_item_tab_content_item_common_compat);
|
||||
|
||||
import * as module_ui_tab_navigation_base_tab_navigation_base_core from "@nativescript/core/ui/tab-navigation-base/tab-navigation-base";
|
||||
import * as module_ui_tab_navigation_base_tab_navigation_base_compat from "tns-core-modules/ui/tab-navigation-base/tab-navigation-base";
|
||||
compare("ui/tab-navigation-base/tab-navigation-base", module_ui_tab_navigation_base_tab_navigation_base_core, module_ui_tab_navigation_base_tab_navigation_base_compat);
|
||||
@@ -786,6 +986,10 @@ import * as module_ui_tab_view_tab_view_core from "@nativescript/core/ui/tab-vie
|
||||
import * as module_ui_tab_view_tab_view_compat from "tns-core-modules/ui/tab-view/tab-view";
|
||||
compare("ui/tab-view/tab-view", module_ui_tab_view_tab_view_core, module_ui_tab_view_tab_view_compat);
|
||||
|
||||
import * as module_ui_tab_view_tab_view_common_core from "@nativescript/core/ui/tab-view/tab-view-common";
|
||||
import * as module_ui_tab_view_tab_view_common_compat from "tns-core-modules/ui/tab-view/tab-view-common";
|
||||
compare("ui/tab-view/tab-view-common", module_ui_tab_view_tab_view_common_core, module_ui_tab_view_tab_view_common_compat);
|
||||
|
||||
import * as module_ui_tabs_core from "@nativescript/core/ui/tabs";
|
||||
import * as module_ui_tabs_compat from "tns-core-modules/ui/tabs";
|
||||
compare("ui/tabs", module_ui_tabs_core, module_ui_tabs_compat);
|
||||
@@ -794,14 +998,30 @@ import * as module_ui_tabs_tabs_core from "@nativescript/core/ui/tabs/tabs";
|
||||
import * as module_ui_tabs_tabs_compat from "tns-core-modules/ui/tabs/tabs";
|
||||
compare("ui/tabs/tabs", module_ui_tabs_tabs_core, module_ui_tabs_tabs_compat);
|
||||
|
||||
import * as module_ui_tabs_tabs_common_core from "@nativescript/core/ui/tabs/tabs-common";
|
||||
import * as module_ui_tabs_tabs_common_compat from "tns-core-modules/ui/tabs/tabs-common";
|
||||
compare("ui/tabs/tabs-common", module_ui_tabs_tabs_common_core, module_ui_tabs_tabs_common_compat);
|
||||
|
||||
import * as module_ui_text_base_core from "@nativescript/core/ui/text-base";
|
||||
import * as module_ui_text_base_compat from "tns-core-modules/ui/text-base";
|
||||
compare("ui/text-base", module_ui_text_base_core, module_ui_text_base_compat);
|
||||
|
||||
import * as module_ui_text_base_formatted_string_core from "@nativescript/core/ui/text-base/formatted-string";
|
||||
import * as module_ui_text_base_formatted_string_compat from "tns-core-modules/ui/text-base/formatted-string";
|
||||
compare("ui/text-base/formatted-string", module_ui_text_base_formatted_string_core, module_ui_text_base_formatted_string_compat);
|
||||
|
||||
import * as module_ui_text_base_span_core from "@nativescript/core/ui/text-base/span";
|
||||
import * as module_ui_text_base_span_compat from "tns-core-modules/ui/text-base/span";
|
||||
compare("ui/text-base/span", module_ui_text_base_span_core, module_ui_text_base_span_compat);
|
||||
|
||||
import * as module_ui_text_base_text_base_core from "@nativescript/core/ui/text-base/text-base";
|
||||
import * as module_ui_text_base_text_base_compat from "tns-core-modules/ui/text-base/text-base";
|
||||
compare("ui/text-base/text-base", module_ui_text_base_text_base_core, module_ui_text_base_text_base_compat);
|
||||
|
||||
import * as module_ui_text_base_text_base_common_core from "@nativescript/core/ui/text-base/text-base-common";
|
||||
import * as module_ui_text_base_text_base_common_compat from "tns-core-modules/ui/text-base/text-base-common";
|
||||
compare("ui/text-base/text-base-common", module_ui_text_base_text_base_common_core, module_ui_text_base_text_base_common_compat);
|
||||
|
||||
import * as module_ui_text_field_core from "@nativescript/core/ui/text-field";
|
||||
import * as module_ui_text_field_compat from "tns-core-modules/ui/text-field";
|
||||
compare("ui/text-field", module_ui_text_field_core, module_ui_text_field_compat);
|
||||
@@ -810,6 +1030,10 @@ import * as module_ui_text_field_text_field_core from "@nativescript/core/ui/tex
|
||||
import * as module_ui_text_field_text_field_compat from "tns-core-modules/ui/text-field/text-field";
|
||||
compare("ui/text-field/text-field", module_ui_text_field_text_field_core, module_ui_text_field_text_field_compat);
|
||||
|
||||
import * as module_ui_text_field_text_field_common_core from "@nativescript/core/ui/text-field/text-field-common";
|
||||
import * as module_ui_text_field_text_field_common_compat from "tns-core-modules/ui/text-field/text-field-common";
|
||||
compare("ui/text-field/text-field-common", module_ui_text_field_text_field_common_core, module_ui_text_field_text_field_common_compat);
|
||||
|
||||
import * as module_ui_text_view_core from "@nativescript/core/ui/text-view";
|
||||
import * as module_ui_text_view_compat from "tns-core-modules/ui/text-view";
|
||||
compare("ui/text-view", module_ui_text_view_core, module_ui_text_view_compat);
|
||||
@@ -826,6 +1050,10 @@ import * as module_ui_time_picker_time_picker_core from "@nativescript/core/ui/t
|
||||
import * as module_ui_time_picker_time_picker_compat from "tns-core-modules/ui/time-picker/time-picker";
|
||||
compare("ui/time-picker/time-picker", module_ui_time_picker_time_picker_core, module_ui_time_picker_time_picker_compat);
|
||||
|
||||
import * as module_ui_time_picker_time_picker_common_core from "@nativescript/core/ui/time-picker/time-picker-common";
|
||||
import * as module_ui_time_picker_time_picker_common_compat from "tns-core-modules/ui/time-picker/time-picker-common";
|
||||
compare("ui/time-picker/time-picker-common", module_ui_time_picker_time_picker_common_core, module_ui_time_picker_time_picker_common_compat);
|
||||
|
||||
import * as module_ui_transition_core from "@nativescript/core/ui/transition";
|
||||
import * as module_ui_transition_compat from "tns-core-modules/ui/transition";
|
||||
compare("ui/transition", module_ui_transition_core, module_ui_transition_compat);
|
||||
@@ -854,6 +1082,10 @@ import * as module_ui_web_view_web_view_core from "@nativescript/core/ui/web-vie
|
||||
import * as module_ui_web_view_web_view_compat from "tns-core-modules/ui/web-view/web-view";
|
||||
compare("ui/web-view/web-view", module_ui_web_view_web_view_core, module_ui_web_view_web_view_compat);
|
||||
|
||||
import * as module_ui_web_view_web_view_common_core from "@nativescript/core/ui/web-view/web-view-common";
|
||||
import * as module_ui_web_view_web_view_common_compat from "tns-core-modules/ui/web-view/web-view-common";
|
||||
compare("ui/web-view/web-view-common", module_ui_web_view_web_view_common_core, module_ui_web_view_web_view_common_compat);
|
||||
|
||||
import * as module_utils_debug_core from "@nativescript/core/utils/debug";
|
||||
import * as module_utils_debug_compat from "tns-core-modules/utils/debug";
|
||||
compare("utils/debug", module_utils_debug_core, module_utils_debug_compat);
|
||||
@@ -866,6 +1098,14 @@ import * as module_utils_mainthread_helper_core from "@nativescript/core/utils/m
|
||||
import * as module_utils_mainthread_helper_compat from "tns-core-modules/utils/mainthread-helper";
|
||||
compare("utils/mainthread-helper", module_utils_mainthread_helper_core, module_utils_mainthread_helper_compat);
|
||||
|
||||
import * as module_utils_module_merge_core from "@nativescript/core/utils/module-merge";
|
||||
import * as module_utils_module_merge_compat from "tns-core-modules/utils/module-merge";
|
||||
compare("utils/module-merge", module_utils_module_merge_core, module_utils_module_merge_compat);
|
||||
|
||||
import * as module_utils_number_utils_core from "@nativescript/core/utils/number-utils";
|
||||
import * as module_utils_number_utils_compat from "tns-core-modules/utils/number-utils";
|
||||
compare("utils/number-utils", module_utils_number_utils_core, module_utils_number_utils_compat);
|
||||
|
||||
import * as module_utils_types_core from "@nativescript/core/utils/types";
|
||||
import * as module_utils_types_compat from "tns-core-modules/utils/types";
|
||||
compare("utils/types", module_utils_types_core, module_utils_types_compat);
|
||||
@@ -874,6 +1114,10 @@ import * as module_utils_utils_core from "@nativescript/core/utils/utils";
|
||||
import * as module_utils_utils_compat from "tns-core-modules/utils/utils";
|
||||
compare("utils/utils", module_utils_utils_core, module_utils_utils_compat);
|
||||
|
||||
import * as module_utils_utils_common_core from "@nativescript/core/utils/utils-common";
|
||||
import * as module_utils_utils_common_compat from "tns-core-modules/utils/utils-common";
|
||||
compare("utils/utils-common", module_utils_utils_common_core, module_utils_utils_common_compat);
|
||||
|
||||
import * as module_xhr_core from "@nativescript/core/xhr";
|
||||
import * as module_xhr_compat from "tns-core-modules/xhr";
|
||||
compare("xhr", module_xhr_core, module_xhr_compat);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"dependencies": {
|
||||
"@nativescript/core": "file:../../dist/nativescript-core-6.2.0.tgz",
|
||||
"nativescript-theme-core": "~1.0.6",
|
||||
"tns-core-modules": "file:../../dist/tns-core-modules-6.1.0.tgz"
|
||||
"tns-core-modules": "file:../../dist/tns-core-modules-6.2.0.tgz"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nativescript-dev-webpack": "~1.2.0",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"main": "app.js",
|
||||
"android": {
|
||||
"v8Flags": "--expose_gc"
|
||||
"v8Flags": "--expose_gc",
|
||||
"markingMode": "none"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ describe(`${imagePrefix}-suite`, () => {
|
||||
|
||||
it("gestures_02_doubleTap", async function () {
|
||||
const lblDoubleTap = await driver.waitForElement("Double Tap here");
|
||||
await lblDoubleTap.doubleTap();
|
||||
await lblDoubleTap.doubleTap({ x: 20, y: 20 });
|
||||
const result = await driver.findElementByTextIfExists("Double Tap gesture detected, true", SearchOptions.contains);
|
||||
assert.isTrue(result != null && result !== undefined, `Gestures event 'Double Tap gesture detected, true' not detected!`);
|
||||
});
|
||||
@@ -59,7 +59,7 @@ describe(`${imagePrefix}-suite`, () => {
|
||||
it("gestures_longPress", async function () {
|
||||
const lblTapOrDoubleTap = await driver.waitForElement("Tap or Double Tap");
|
||||
const rect = await lblTapOrDoubleTap.getRectangle();
|
||||
await lblTapOrDoubleTap.doubleTap();
|
||||
await lblTapOrDoubleTap.doubleTap({ x: 20, y: 20 });
|
||||
let result = await driver.findElementByTextIfExists("Last action: Double tap gesture, true", SearchOptions.contains);
|
||||
assert.isTrue(result != null && result !== undefined, `Gestures event 'Last action: Double tap gesture, true' not detected!`);
|
||||
await driver.clickPoint(rect.x, rect.y);
|
||||
@@ -76,23 +76,23 @@ describe(`${imagePrefix}-suite`, () => {
|
||||
|
||||
it("gestures_05_pan", async function () {
|
||||
const lblSwipe = await driver.waitForElement("Pan here");
|
||||
const rect = await lblSwipe.getRectangle();
|
||||
await lblSwipe.pan([
|
||||
{ x: rect.x + 100, y: rect.y + 100 },
|
||||
{ x: rect.x + 140, y: rect.y + 120 },
|
||||
{ x: rect.x + 160, y: rect.y + 120 }
|
||||
], { x: 50, y: 50 });
|
||||
{ x: 10, y: 20 },
|
||||
{ x: 40, y: 30 },
|
||||
{ x: 50, y: 60 }
|
||||
], { x: 5, y: 5 });
|
||||
|
||||
const result = await driver.findElementByTextIfExists("Pan deltaX", SearchOptions.contains);
|
||||
const text = await result.text();
|
||||
assert.isTrue(/Pan deltaX:\d+; deltaY:\d+;, true, states: ended/.test(text), `Gestures event 'Pan deltaX: ...' not detected!`);
|
||||
assert.isTrue(/Pan deltaX:([-+]?)\d+; deltaY:([-+]?)\d+;, true, states: ended/ig.test(text), `Gestures event 'Pan deltaX: ...' not detected!`);
|
||||
});
|
||||
|
||||
it("gestures_06_pinch", async function () {
|
||||
const lblPan = await driver.waitForElement("Pinch here");
|
||||
await lblPan.pinch("out");
|
||||
const result = await driver.findElementByTextIfExists("Pinch Scale: 1, true, states: ended", SearchOptions.contains);
|
||||
assert.isTrue(result != null && result !== undefined, `Gestures event '"Pinch Scale: 0, true, states: ended"' not detected!`);
|
||||
const result = await driver.findElementByTextIfExists("Pinch Scale:", SearchOptions.contains);
|
||||
const text = await result.text();
|
||||
assert.isTrue(/Pinch Scale: \d+, true, states: ended/ig.test(text), `Gestures event '"Pinch Scale: 0, true, states: ended"' not detected!`);
|
||||
});
|
||||
|
||||
it("gestures_07_rotate", async function () {
|
||||
|
||||
@@ -142,6 +142,14 @@ function removeCssClass(rootView: View, cssClass: string) {
|
||||
rootView.cssClasses.delete(cssClass);
|
||||
}
|
||||
|
||||
function increaseStyleScopeApplicationCssSelectorVersion(rootView: View) {
|
||||
const styleScope = rootView._styleScope || ((<any>rootView).currentPage && (<any>rootView).currentPage._styleScope);
|
||||
|
||||
if (styleScope) {
|
||||
styleScope._increaseApplicationCssSelectorVersion();
|
||||
}
|
||||
}
|
||||
|
||||
export function orientationChanged(rootView: View, newOrientation: "portrait" | "landscape" | "unknown"): void {
|
||||
if (!rootView) {
|
||||
return;
|
||||
@@ -151,6 +159,7 @@ export function orientationChanged(rootView: View, newOrientation: "portrait" |
|
||||
if (!rootView.cssClasses.has(newOrientationCssClass)) {
|
||||
ORIENTATION_CSS_CLASSES.forEach(cssClass => removeCssClass(rootView, cssClass));
|
||||
applyCssClass(rootView, newOrientationCssClass);
|
||||
increaseStyleScopeApplicationCssSelectorVersion(rootView);
|
||||
rootView._onCssStateChange();
|
||||
}
|
||||
}
|
||||
@@ -164,6 +173,7 @@ export function systemAppearanceChanged(rootView: View, newSystemAppearance: "da
|
||||
if (!rootView.cssClasses.has(newSystemAppearanceCssClass)) {
|
||||
SYSTEM_APPEARANCE_CSS_CLASSES.forEach(cssClass => removeCssClass(rootView, cssClass));
|
||||
applyCssClass(rootView, newSystemAppearanceCssClass);
|
||||
increaseStyleScopeApplicationCssSelectorVersion(rootView);
|
||||
rootView._onCssStateChange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,11 @@ export const lowMemoryEvent: string;
|
||||
*/
|
||||
export const orientationChangedEvent: string;
|
||||
|
||||
/**
|
||||
* String value used when hooking to systemAppearanceChanged event.
|
||||
*/
|
||||
export const systemAppearanceChangedEvent: string;
|
||||
|
||||
/**
|
||||
* Event data containing information for the application events.
|
||||
*/
|
||||
|
||||
@@ -22,8 +22,7 @@ import { Builder } from "../ui/builder";
|
||||
import {
|
||||
CLASS_PREFIX,
|
||||
getRootViewCssClasses,
|
||||
pushToRootViewCssClasses,
|
||||
resetRootViewCssClasses
|
||||
pushToRootViewCssClasses
|
||||
} from "../css/system-classes";
|
||||
|
||||
import { ios as iosView, View } from "../ui/core/view";
|
||||
@@ -301,14 +300,18 @@ class IOSApplication implements IOSApplicationDefinition {
|
||||
// setup view as styleScopeHost
|
||||
rootView._setupAsRootView({});
|
||||
}
|
||||
|
||||
setViewControllerView(rootView);
|
||||
|
||||
const haveController = this._window.rootViewController !== null;
|
||||
this._window.rootViewController = controller;
|
||||
|
||||
setRootViewSystemAppearanceCssClass(rootView);
|
||||
|
||||
if (!haveController) {
|
||||
this._window.makeKeyAndVisible();
|
||||
}
|
||||
|
||||
setupRootViewCssClasses(rootView);
|
||||
rootView.on(iosView.traitCollectionColorAppearanceChangedEvent, () => {
|
||||
const userInterfaceStyle = controller.traitCollection.userInterfaceStyle;
|
||||
const newSystemAppearance = getSystemAppearanceValue(userInterfaceStyle);
|
||||
@@ -356,6 +359,8 @@ function createRootView(v?: View) {
|
||||
}
|
||||
}
|
||||
|
||||
setRootViewCssClasses(rootView);
|
||||
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@@ -398,7 +403,7 @@ export function _start(entry?: string | NavigationEntry) {
|
||||
|
||||
// Mind root view CSS classes in future work
|
||||
// on embedding NativeScript applications
|
||||
setupRootViewCssClasses(rootView);
|
||||
setRootViewSystemAppearanceCssClass(rootView);
|
||||
rootView.on(iosView.traitCollectionColorAppearanceChangedEvent, () => {
|
||||
const userInterfaceStyle = controller.traitCollection.userInterfaceStyle;
|
||||
const newSystemAppearance = getSystemAppearanceValue(userInterfaceStyle);
|
||||
@@ -482,22 +487,24 @@ function setViewControllerView(view: View): void {
|
||||
}
|
||||
}
|
||||
|
||||
function setupRootViewCssClasses(rootView: View): void {
|
||||
resetRootViewCssClasses();
|
||||
|
||||
function setRootViewCssClasses(rootView: View): void {
|
||||
const deviceType = device.deviceType.toLowerCase();
|
||||
pushToRootViewCssClasses(`${CLASS_PREFIX}${IOS_PLATFORM}`);
|
||||
pushToRootViewCssClasses(`${CLASS_PREFIX}${deviceType}`);
|
||||
pushToRootViewCssClasses(`${CLASS_PREFIX}${iosApp.orientation}`);
|
||||
|
||||
if (majorVersion >= 13) {
|
||||
pushToRootViewCssClasses(`${CLASS_PREFIX}${iosApp.systemAppearance}`);
|
||||
}
|
||||
|
||||
const rootViewCssClasses = getRootViewCssClasses();
|
||||
rootViewCssClasses.forEach(c => rootView.cssClasses.add(c));
|
||||
}
|
||||
|
||||
function setRootViewSystemAppearanceCssClass(rootView: View): void {
|
||||
if (majorVersion >= 13) {
|
||||
const systemAppearanceCssClass = `${CLASS_PREFIX}${iosApp.systemAppearance}`;
|
||||
pushToRootViewCssClasses(systemAppearanceCssClass);
|
||||
rootView.cssClasses.add(systemAppearanceCssClass);
|
||||
}
|
||||
}
|
||||
|
||||
export function orientation(): "portrait" | "landscape" | "unknown" {
|
||||
return iosApp.orientation;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,60 @@
|
||||
const semver = require("semver");
|
||||
|
||||
const webpackPackageName = "nativescript-dev-webpack";
|
||||
|
||||
module.exports = function ($staticConfig, hookArgs) {
|
||||
const cliVersion = semver.parse($staticConfig.version);
|
||||
const majorVersion = cliVersion && cliVersion.major;
|
||||
const minorVersion = cliVersion && cliVersion.minor;
|
||||
const platfrom = hookArgs.prepareData.platform;
|
||||
const projectData = hookArgs.projectData;
|
||||
|
||||
// Required CLI version for building IOS: 6.2.0
|
||||
if (platfrom.toLowerCase() === "ios" &&
|
||||
(majorVersion < 6 || (majorVersion === 6 && minorVersion < 2))) {
|
||||
!satisfiesRequriredVersion(cliVersion, 6, 2)) {
|
||||
throw new Error(`Building @nativescript/core for iOS requires NativeScript CLI with version at least 6.2.0. Please upgrade your NativeScript CLI version (npm i -g nativescript).`);
|
||||
}
|
||||
|
||||
// Required webpack version for angular projects: 1.3.0
|
||||
if (projectData.projectType === "Angular") {
|
||||
const webpackMinVer = getMinWebpackVersion(projectData);
|
||||
|
||||
if (webpackMinVer && !satisfiesRequriredVersion(webpackMinVer, 1, 3)) {
|
||||
throw new Error(`Building @nativescript/core for Angular requires ${webpackPackageName} with version at least 1.3.0. Please upgrade: npm i ${webpackPackageName} --save-dev.`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks if semver object satisifies a major/minor requirement. Pre-release versions are OK too!
|
||||
*/
|
||||
function satisfiesRequriredVersion(actualVersion, requiredMajor, requiredMinor) {
|
||||
// Return true for null version to handle tags (ex. "next", "rc")
|
||||
if (!actualVersion) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (actualVersion.major < requiredMajor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (actualVersion.major === requiredMajor && actualVersion.minor < requiredMinor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getMinWebpackVersion(projectData) {
|
||||
const devDependencies = projectData.devDependencies || {};
|
||||
const dependencies = projectData.dependencies || {};
|
||||
const webpackVer = dependencies[webpackPackageName] || devDependencies[webpackPackageName];
|
||||
|
||||
let webpackMinVer = null;
|
||||
|
||||
if (semver.valid(webpackVer)) {
|
||||
webpackMinVer = semver.parse(webpackVer);
|
||||
} else if (semver.validRange(webpackVer)) {
|
||||
webpackMinVer = semver.minVersion(webpackVer);
|
||||
}
|
||||
|
||||
return webpackMinVer;
|
||||
}
|
||||
5
nativescript-core/css/system-classes.d.ts
vendored
5
nativescript-core/css/system-classes.d.ts
vendored
@@ -28,8 +28,3 @@ export function pushToRootViewCssClasses(value: string): number;
|
||||
* @param value
|
||||
*/
|
||||
export function removeFromRootViewCssClasses(value: string): string;
|
||||
|
||||
/**
|
||||
* Resets CSS classes for root view.
|
||||
*/
|
||||
export function resetRootViewCssClasses(): string[];
|
||||
|
||||
@@ -30,8 +30,3 @@ export function removeFromRootViewCssClasses(value: string): string {
|
||||
|
||||
return removedElement;
|
||||
}
|
||||
|
||||
export function resetRootViewCssClasses(): string[] {
|
||||
// Preserve the default `ns-root` CSS class
|
||||
return rootViewCssClasses.splice(1);
|
||||
}
|
||||
|
||||
@@ -4,9 +4,6 @@ import { getNodeById } from "./dom-node";
|
||||
import { ViewBase } from "../ui/core/view-base";
|
||||
import { mainThreadify } from "../utils/utils";
|
||||
|
||||
// Use lazy requires for core modules
|
||||
const frameTopmost = () => require("../ui/frame").topmost();
|
||||
|
||||
let unsetValue;
|
||||
function unsetViewValue(view, name) {
|
||||
if (!unsetValue) {
|
||||
@@ -27,7 +24,7 @@ function getViewById(nodeId: number): ViewBase {
|
||||
}
|
||||
|
||||
export function getDocument() {
|
||||
const topMostFrame = frameTopmost();
|
||||
const topMostFrame = require("../ui/frame").Frame.topmost();
|
||||
if (!topMostFrame) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -380,9 +380,7 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
this._bottomNavigationBar.setVisibility(android.view.View.GONE);
|
||||
}
|
||||
|
||||
if (this._attachedToWindow) {
|
||||
this.changeTab(this.selectedIndex);
|
||||
}
|
||||
this.changeTab(this.selectedIndex);
|
||||
}
|
||||
|
||||
_onAttachedToWindow(): void {
|
||||
@@ -467,8 +465,9 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
// TODO: Should we extract adapter-like class?
|
||||
// TODO: Rename this?
|
||||
public changeTab(index: number) {
|
||||
// this is the case when there are no items
|
||||
if (index === -1) {
|
||||
// index is -1 when there are no items
|
||||
// bot nav is not attached if you change the tab too early
|
||||
if (index === -1 || !this._attachedToWindow) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -547,8 +546,8 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
}
|
||||
|
||||
const tabItems = new Array<org.nativescript.widgets.TabItemSpec>();
|
||||
items.forEach((item, i, arr) => {
|
||||
(<any>item).index = i;
|
||||
items.forEach((tabStripItem, i, arr) => {
|
||||
tabStripItem._index = i;
|
||||
if (items[i]) {
|
||||
const tabItemSpec = this.createTabItemSpec(items[i]);
|
||||
tabItems.push(tabItemSpec);
|
||||
@@ -699,7 +698,7 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
}
|
||||
|
||||
public setTabBarIconColor(tabStripItem: TabStripItem, value: number | Color): void {
|
||||
const index = (<any>tabStripItem).index;
|
||||
const index = tabStripItem._index;
|
||||
const tabBarItem = this._bottomNavigationBar.getViewForItemAt(index);
|
||||
const imgView = <android.widget.ImageView>tabBarItem.getChildAt(0);
|
||||
const drawable = this.getIcon(tabStripItem);
|
||||
|
||||
@@ -72,12 +72,19 @@ class UITabBarControllerImpl extends UITabBarController {
|
||||
public viewWillTransitionToSizeWithTransitionCoordinator(size: CGSize, coordinator: UIViewControllerTransitionCoordinator): void {
|
||||
super.viewWillTransitionToSizeWithTransitionCoordinator(size, coordinator);
|
||||
UIViewControllerTransitionCoordinator.prototype.animateAlongsideTransitionCompletion
|
||||
.call(coordinator, null, () => {
|
||||
.call(coordinator, () => {
|
||||
const owner = this._owner.get();
|
||||
if (owner && owner.items) {
|
||||
// owner.items.forEach(tabItem => tabItem._updateTitleAndIconPositions()); TODO:
|
||||
if (owner && owner.tabStrip && owner.tabStrip.items) {
|
||||
const tabStrip = owner.tabStrip;
|
||||
tabStrip.items.forEach(tabStripItem => {
|
||||
updateBackgroundPositions(tabStrip, tabStripItem);
|
||||
|
||||
const index = tabStripItem._index;
|
||||
const tabBarItemController = this.viewControllers[index];
|
||||
updateTitleAndIconPositions(tabStripItem, tabBarItemController.tabBarItem, tabBarItemController);
|
||||
});
|
||||
}
|
||||
});
|
||||
}, null);
|
||||
}
|
||||
|
||||
// Mind implementation for other controllers
|
||||
@@ -213,6 +220,26 @@ class UINavigationControllerDelegateImpl extends NSObject implements UINavigatio
|
||||
}
|
||||
}
|
||||
|
||||
function updateBackgroundPositions(tabStrip: TabStrip, tabStripItem: TabStripItem) {
|
||||
let bgView = (<any>tabStripItem).bgView;
|
||||
if (!bgView) {
|
||||
const index = tabStripItem._index;
|
||||
const width = tabStrip.nativeView.frame.size.width / tabStrip.items.length;
|
||||
const frame = CGRectMake(width * index, 0, width, tabStrip.nativeView.frame.size.width);
|
||||
bgView = UIView.alloc().initWithFrame(frame);
|
||||
tabStrip.nativeView.insertSubviewAtIndex(bgView, 0);
|
||||
(<any>tabStripItem).bgView = bgView;
|
||||
} else {
|
||||
const index = tabStripItem._index;
|
||||
const width = tabStrip.nativeView.frame.size.width / tabStrip.items.length;
|
||||
const frame = CGRectMake(width * index, 0, width, tabStrip.nativeView.frame.size.width);
|
||||
bgView.frame = frame;
|
||||
}
|
||||
|
||||
const backgroundColor = tabStripItem.style.backgroundColor;
|
||||
bgView.backgroundColor = backgroundColor instanceof Color ? backgroundColor.ios : backgroundColor;
|
||||
}
|
||||
|
||||
function updateTitleAndIconPositions(tabStripItem: TabStripItem, tabBarItem: UITabBarItem, controller: UIViewController) {
|
||||
if (!tabStripItem || !tabBarItem) {
|
||||
return;
|
||||
@@ -345,21 +372,11 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
}
|
||||
|
||||
public setTabBarItemBackgroundColor(tabStripItem: TabStripItem, value: UIColor | Color): void {
|
||||
if (!this.tabStrip) {
|
||||
if (!this.tabStrip || !tabStripItem) {
|
||||
return;
|
||||
}
|
||||
|
||||
let bgView = (<any>tabStripItem).bgView;
|
||||
if (!bgView) {
|
||||
const index = (<any>tabStripItem).index;
|
||||
const width = this.tabStrip.nativeView.frame.size.width / this.tabStrip.items.length;
|
||||
const frame = CGRectMake(width * index, 0, width, this.tabStrip.nativeView.frame.size.width);
|
||||
bgView = UIView.alloc().initWithFrame(frame);
|
||||
this.tabStrip.nativeView.insertSubviewAtIndex(bgView, 0);
|
||||
(<any>tabStripItem).bgView = bgView;
|
||||
}
|
||||
|
||||
bgView.backgroundColor = value instanceof Color ? value.ios : value;
|
||||
updateBackgroundPositions(this.tabStrip, tabStripItem);
|
||||
}
|
||||
|
||||
public setTabBarItemColor(tabStripItem: TabStripItem, value: UIColor | Color): void {
|
||||
@@ -509,7 +526,7 @@ export class BottomNavigation extends TabNavigationBase {
|
||||
applyStatesToItem(tabBarItem, states);
|
||||
|
||||
controller.tabBarItem = tabBarItem;
|
||||
(<any>tabStripItem).index = i;
|
||||
tabStripItem._index = i;
|
||||
tabStripItem.setNativeView(tabBarItem);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ const androidBackPressedEvent = "androidBackPressed";
|
||||
const shortAnimTime = 17694720; // android.R.integer.config_shortAnimTime
|
||||
const statePressed = 16842919; // android.R.attr.state_pressed
|
||||
const stateEnabled = 16842910; // android.R.attr.state_enabled
|
||||
const styleAnimationDialog = 16973826; // android.R.style.Animation_Dialog
|
||||
|
||||
const sdkVersion = lazy(() => parseInt(device.sdkVersion));
|
||||
|
||||
@@ -187,7 +188,7 @@ function initializeDialogFragment() {
|
||||
dialog
|
||||
.getWindow()
|
||||
.setWindowAnimations(
|
||||
android.R.style.Animation_Dialog
|
||||
styleAnimationDialog
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
18
nativescript-core/ui/enums/enums.d.ts
vendored
18
nativescript-core/ui/enums/enums.d.ts
vendored
@@ -641,7 +641,7 @@ export module AnimationCurve {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use `UserInterfaceStyle` instead.
|
||||
* @deprecated use `SystemAppearance` instead.
|
||||
*
|
||||
* Specifies the types of the status bar style.
|
||||
*/
|
||||
@@ -657,8 +657,24 @@ export module StatusBarStyle {
|
||||
export const dark: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Specifies the types of the system appearance.
|
||||
*/
|
||||
export module SystemAppearance {
|
||||
/**
|
||||
* The light system appearance.
|
||||
*/
|
||||
export const light: string;
|
||||
|
||||
/**
|
||||
* The dark system appearance.
|
||||
*/
|
||||
export const dark: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use `SystemAppearance` instead.
|
||||
*
|
||||
* Specifies the types of the user interface style.
|
||||
*/
|
||||
export module UserInterfaceStyle {
|
||||
|
||||
@@ -17,6 +17,9 @@ interface TransitionListener {
|
||||
|
||||
const defaultInterpolator = lazy(() => new android.view.animation.AccelerateDecelerateInterpolator());
|
||||
|
||||
const animFadeIn = 17432576; // android.R.anim.fade_in
|
||||
const animFadeOut = 17432577; // android.R.anim.fade_out
|
||||
|
||||
export const waitingQueue = new Map<number, Set<ExpandedEntry>>();
|
||||
export const completedEntries = new Map<number, ExpandedEntry>();
|
||||
|
||||
@@ -105,7 +108,7 @@ export function _setAndroidFragmentTransitions(
|
||||
// Also setup empty/immediate transition to be executed when navigating back to this page.
|
||||
// TODO: Consider removing empty/immediate animator when migrating to official androidx.fragment.app.Fragment:1.2.
|
||||
if (isNestedDefaultTransition) {
|
||||
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
fragmentTransaction.setCustomAnimations(animFadeIn, animFadeOut);
|
||||
setupAllAnimation(newEntry, noTransition);
|
||||
setupNewFragmentCustomTransition({ duration: 0, curve: null }, newEntry, noTransition);
|
||||
} else {
|
||||
|
||||
@@ -9,7 +9,7 @@ import { Page } from "../page";
|
||||
import * as application from "../../application";
|
||||
|
||||
import {
|
||||
_stack, FrameBase, goBack, NavigationType, Observable,
|
||||
_stack, FrameBase, NavigationType, Observable,
|
||||
traceCategories, traceEnabled, traceError, traceWrite, View
|
||||
} from "./frame-common";
|
||||
|
||||
@@ -1189,7 +1189,7 @@ class ActivityCallbacksImplementation implements AndroidActivityCallbacks {
|
||||
const view = this._rootView;
|
||||
let callSuper = false;
|
||||
if (view instanceof Frame) {
|
||||
callSuper = !goBack();
|
||||
callSuper = !FrameBase.goBack();
|
||||
} else {
|
||||
const viewArgs = <application.AndroidActivityBackPressedEventData>{
|
||||
eventName: "activityBackPressed",
|
||||
|
||||
6
nativescript-core/ui/styling/gradient.d.ts
vendored
6
nativescript-core/ui/styling/gradient.d.ts
vendored
@@ -4,15 +4,15 @@
|
||||
|
||||
import { LengthPercentUnit } from "./style-properties";
|
||||
import { Color } from "../../color";
|
||||
import { LinearGradient } from "../../css/parser";
|
||||
import { LinearGradient as LinearGradientDefinition } from "../../css/parser";
|
||||
|
||||
export class LinearGradient {
|
||||
public angle: number;
|
||||
public colorStops: ColorStop[];
|
||||
|
||||
public static parse(value: LinearGradient): LinearGradient;
|
||||
public static parse(value: LinearGradientDefinition): LinearGradientDefinition;
|
||||
|
||||
public static equals(first: LinearGradient, second: LinearGradient): boolean;
|
||||
public static equals(first: LinearGradientDefinition, second: LinearGradientDefinition): boolean;
|
||||
}
|
||||
|
||||
export interface ColorStop {
|
||||
|
||||
@@ -36,6 +36,10 @@ export class StyleScope {
|
||||
public static createSelectorsFromImports(tree: SyntaxTree, keyframes: Object): RuleSet[];
|
||||
public ensureSelectors(): number;
|
||||
|
||||
/**
|
||||
* Increase the application CSS selector version.
|
||||
*/
|
||||
public _increaseApplicationCssSelectorVersion(): void;
|
||||
public isApplicationCssSelectorsLatestVersionApplied(): boolean;
|
||||
public isLocalCssSelectorsLatestVersionApplied(): boolean;
|
||||
|
||||
|
||||
@@ -760,6 +760,10 @@ export class StyleScope {
|
||||
return this._getSelectorsVersion();
|
||||
}
|
||||
|
||||
public _increaseApplicationCssSelectorVersion(): void {
|
||||
applicationCssSelectorVersion++;
|
||||
}
|
||||
|
||||
public isApplicationCssSelectorsLatestVersionApplied(): boolean {
|
||||
return this._applicationCssSelectorsAppliedVersion === applicationCssSelectorVersion;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,12 @@ export class TabStripItem extends View {
|
||||
public static tapEvent: string;
|
||||
|
||||
//@private
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_index: number;
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
|
||||
@@ -26,6 +26,7 @@ export class TabStripItem extends View implements TabStripItemDefinition, AddChi
|
||||
|
||||
public image: Image;
|
||||
public label: Label;
|
||||
public _index: number;
|
||||
|
||||
private _title: string;
|
||||
private _iconSource: string;
|
||||
@@ -211,7 +212,7 @@ export class TabStripItem extends View implements TabStripItemDefinition, AddChi
|
||||
|
||||
const parent = <TabStrip>this.parent;
|
||||
const tabStripParent = parent && <TabNavigationBase>parent.parent;
|
||||
if ((<any>this).index === tabStripParent.selectedIndex &&
|
||||
if (this._index === tabStripParent.selectedIndex &&
|
||||
!(isIOS && tabStripParent instanceof Tabs)) {
|
||||
this._goToVisualState("highlighted");
|
||||
}
|
||||
|
||||
@@ -617,10 +617,10 @@ export class Tabs extends TabsBase {
|
||||
}
|
||||
|
||||
const tabItems = new Array<org.nativescript.widgets.TabItemSpec>();
|
||||
items.forEach((item: TabStripItem, i, arr) => {
|
||||
(<any>item).index = i;
|
||||
const tabItemSpec = this.createTabItemSpec(item);
|
||||
(<any>item).tabItemSpec = tabItemSpec;
|
||||
items.forEach((tabStripItem: TabStripItem, i, arr) => {
|
||||
tabStripItem._index = i;
|
||||
const tabItemSpec = this.createTabItemSpec(tabStripItem);
|
||||
(<any>tabStripItem).tabItemSpec = tabItemSpec;
|
||||
tabItems.push(tabItemSpec);
|
||||
});
|
||||
|
||||
@@ -808,7 +808,7 @@ export class Tabs extends TabsBase {
|
||||
}
|
||||
|
||||
public setTabBarIconColor(tabStripItem: TabStripItem, value: number | Color): void {
|
||||
const index = (<any>tabStripItem).index;
|
||||
const index = tabStripItem._index;
|
||||
const tabBarItem = this._tabsBar.getViewForItemAt(index);
|
||||
const imgView = <android.widget.ImageView>tabBarItem.getChildAt(0);
|
||||
const drawable = this.getIcon(tabStripItem);
|
||||
|
||||
@@ -848,11 +848,11 @@ export class Tabs extends TabsBase {
|
||||
|
||||
const tabBarItems = [];
|
||||
|
||||
items.forEach((item: TabStripItem, i) => {
|
||||
(<any>item).index = i;
|
||||
const tabBarItem = this.createTabBarItem(item, i);
|
||||
items.forEach((tabStripItem: TabStripItem, i) => {
|
||||
tabStripItem._index = i;
|
||||
const tabBarItem = this.createTabBarItem(tabStripItem, i);
|
||||
tabBarItems.push(tabBarItem);
|
||||
item.setNativeView(tabBarItem);
|
||||
tabStripItem.setNativeView(tabBarItem);
|
||||
});
|
||||
|
||||
this.tabBarItems = tabBarItems;
|
||||
|
||||
Reference in New Issue
Block a user