diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_active_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_active_items.png index b2576fe65..f431a03c8 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_active_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_active_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_inactive_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_inactive_items.png index 7d5881652..1f39e498e 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_inactive_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_inactive_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_remove_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_remove_items.png index 0a9a802d3..f431a03c8 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_remove_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_remove_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_reset_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_reset_items.png index ae2bc14bb..b74aa4345 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_reset_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 12/add_reset_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png new file mode 100644 index 000000000..665c64d86 Binary files /dev/null and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_active_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png new file mode 100644 index 000000000..2a4722714 Binary files /dev/null and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_inactive_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png new file mode 100644 index 000000000..665c64d86 Binary files /dev/null and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_remove_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png new file mode 100644 index 000000000..41a11cfb9 Binary files /dev/null and b/e2e/animation-examples/e2e/resources/images/ng4animations/iPhone XR 13/add_reset_items.png differ diff --git a/e2e/config/appium.capabilities.json b/e2e/config/appium.capabilities.json index 29f17cc5f..695030f6a 100644 --- a/e2e/config/appium.capabilities.json +++ b/e2e/config/appium.capabilities.json @@ -200,5 +200,25 @@ "deviceName": "iPhone XR", "noReset": true, "fullReset": false + }, + "sim.iPhoneXR.ios12": { + "platformName": "iOS", + "platformVersion": "12.0", + "deviceName": "iPhone XR 12", + "noReset": true, + "fullReset": false + }, + "sim.iPhoneXR.ios13": { + "platformName": "iOS", + "platformVersion": "13.0", + "deviceName": "iPhone XR 13", + "appiumVersion": "1.15.0", + "noReset": true, + "fullReset": false, + "density": 3, + "offsetPixels": 87, + "app": "", + "idleTimeout": 120, + "automationName": "Appium" } } \ No newline at end of file diff --git a/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts b/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts index 9b729ca27..46b09358e 100644 --- a/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts +++ b/e2e/renderer/e2e/page-router-outlet.e2e-spec.ts @@ -7,6 +7,7 @@ import { } from "nativescript-dev-appium"; import { assert } from "chai"; import { isSauceLab } from "nativescript-dev-appium/lib/parser"; +import { ImageOptions } from "nativescript-dev-appium/lib/image-options"; const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout. @@ -49,7 +50,7 @@ describe("page-router-outlet-scenario", async function () { }); it("should not hide action bar by default", async function () { - const screenMatches = await driver.compareScreen("actionBarVisibility-always-default", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-always-default", 5, 50, ImageOptions.pixel); assert(screenMatches); }); @@ -57,7 +58,7 @@ describe("page-router-outlet-scenario", async function () { const hideActionBarButton = await driver.findElementByAutomationText("HideActionBar"); await hideActionBarButton.click(); - const screenMatches = await driver.compareScreen("actionBarVisibility-always-hidden", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-always-hidden", 5, 50, ImageOptions.pixel); assert(screenMatches); }); @@ -65,7 +66,7 @@ describe("page-router-outlet-scenario", async function () { const showActionBarButton = await driver.findElementByAutomationText("ShowActionBar"); await showActionBarButton.click(); - const screenMatches = await driver.compareScreen("actionBarVisibility-always-shown", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-always-shown", 5, 50, ImageOptions.pixel); assert(screenMatches); }); }); @@ -167,21 +168,21 @@ describe("page-router-outlet-scenario", async function () { }); it("should show action bar by default", async function () { - const screenMatches = await driver.compareScreen("actionBarVisibility-auto-default", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-auto-default", 5, 50, ImageOptions.pixel); assert(screenMatches); }); it("should hide action bar when hidden by page", async function () { const hideActionBarButton = await driver.findElementByAutomationText("HideActionBar"); await hideActionBarButton.click(); - const screenMatches = await driver.compareScreen("actionBarVisibility-auto-hidden", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-auto-hidden", 5, 50, ImageOptions.pixel); assert(screenMatches); }); it("should show action bar when shown by page", async function () { const showActionBarButton = await driver.findElementByAutomationText("ShowActionBar"); await showActionBarButton.click(); - const screenMatches = await driver.compareScreen("actionBarVisibility-auto-shown", 5); + const screenMatches = await driver.compareScreen("actionBarVisibility-auto-shown", 5, 50, ImageOptions.pixel); assert(screenMatches); }); }); diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-default.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-default.png new file mode 100644 index 000000000..0d641d88b Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-default.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-hidden.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-hidden.png new file mode 100644 index 000000000..0d641d88b Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-hidden.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-shown.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-shown.png new file mode 100644 index 000000000..0d641d88b Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-always-shown.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-default.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-default.png new file mode 100644 index 000000000..ed051c10f Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-default.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-hidden.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-hidden.png new file mode 100644 index 000000000..65f428e84 Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-hidden.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-shown.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-shown.png new file mode 100644 index 000000000..ed051c10f Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-auto-shown.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default-lazy.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default-lazy.png new file mode 100644 index 000000000..6a61c9b25 Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default-lazy.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default.png new file mode 100644 index 000000000..74560afcb Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-default.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden-lazy.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden-lazy.png new file mode 100644 index 000000000..6a61c9b25 Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden-lazy.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden.png new file mode 100644 index 000000000..74560afcb Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-hidden.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown-lazy.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown-lazy.png new file mode 100644 index 000000000..6a61c9b25 Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown-lazy.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown.png new file mode 100644 index 000000000..74560afcb Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/actionBarVisibility-never-shown.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-first-tab.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-first-tab.png new file mode 100644 index 000000000..714d335fa Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-first-tab.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-second-tab.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-second-tab.png new file mode 100644 index 000000000..70b0ab1fb Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-second-tab.png differ diff --git a/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-third-tab.png b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-third-tab.png new file mode 100644 index 000000000..4ea08ec99 Binary files /dev/null and b/e2e/renderer/e2e/resources/images/renderer/iPhone XR 13/tab-view-binding-third-tab.png differ diff --git a/e2e/renderer/e2e/tab-view.e2e-spec.ts b/e2e/renderer/e2e/tab-view.e2e-spec.ts index 7cce1b36e..77c7e4fe7 100644 --- a/e2e/renderer/e2e/tab-view.e2e-spec.ts +++ b/e2e/renderer/e2e/tab-view.e2e-spec.ts @@ -7,6 +7,7 @@ import { } from "nativescript-dev-appium"; import { assert } from "chai"; import { isSauceLab } from "nativescript-dev-appium/lib/parser"; +import { ImageOptions } from "nativescript-dev-appium/lib/image-options"; const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout. @@ -58,7 +59,7 @@ describe("TabView-scenario", async function(){ secondTabItem = notSelectedTabItems[0]; thirdTabItem = notSelectedTabItems[1]; - const screenMatches = await driver.compareScreen("tab-view-binding-first-tab", 5); + const screenMatches = await driver.compareScreen("tab-view-binding-first-tab", 5, 50, ImageOptions.pixel); assert(screenMatches); }); @@ -73,7 +74,7 @@ describe("TabView-scenario", async function(){ secondTabItem = await driver.findElementByAutomationText("SELECTED"); thirdTabItem = notSelectedTabItems[1]; - const screenMatches = await driver.compareScreen("tab-view-binding-second-tab", 5); + const screenMatches = await driver.compareScreen("tab-view-binding-second-tab", 5, 50, ImageOptions.pixel); assert(screenMatches); }); @@ -88,7 +89,7 @@ describe("TabView-scenario", async function(){ secondTabItem = notSelectedTabItems[1]; thirdTabItem = await driver.findElementByAutomationText("SELECTED"); - const screenMatches = await driver.compareScreen("tab-view-binding-third-tab", 5); + const screenMatches = await driver.compareScreen("tab-view-binding-third-tab", 5, 50, ImageOptions.pixel); assert(screenMatches); }); }); diff --git a/e2e/renderer/package.json b/e2e/renderer/package.json index 61c360d37..16b90f954 100644 --- a/e2e/renderer/package.json +++ b/e2e/renderer/package.json @@ -31,6 +31,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", + "chai": "^4.2.0", "lazy": "1.0.11", "mocha": "~5.2.0", "mochawesome": "~3.1.2", diff --git a/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/home.png b/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/home.png new file mode 100644 index 000000000..d039c537e Binary files /dev/null and b/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/home.png differ diff --git a/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/support.png b/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/support.png new file mode 100644 index 000000000..f21417d83 Binary files /dev/null and b/e2e/routable-animations/e2e/resources/images/nsroanimations/iPhone XR 13/support.png differ diff --git a/e2e/routable-animations/e2e/tests.e2e.ts b/e2e/routable-animations/e2e/tests.e2e.ts index 0360271f5..83ede4906 100644 --- a/e2e/routable-animations/e2e/tests.e2e.ts +++ b/e2e/routable-animations/e2e/tests.e2e.ts @@ -1,6 +1,7 @@ import { AppiumDriver, createDriver, SearchOptions, nsCapabilities } from "nativescript-dev-appium"; import { assert } from "chai"; import { isSauceLab } from "nativescript-dev-appium/lib/parser"; +import { ImageOptions } from "nativescript-dev-appium/lib/image-options"; const QUEUE_WAIT_TIME: number = 600000; // Sometimes SauceLabs threads are not available and the tests wait in a queue to start. Wait 10 min before timeout. @@ -32,7 +33,7 @@ describe("sample scenario", function () { it("should go to support page", async function () { const btnGoToSupportPage = await driver.findElementByAutomationText("go to support page"); - const homeImage = await driver.compareScreen("home"); + const homeImage = await driver.compareScreen("home", 5, 20, ImageOptions.pixel); assert.isTrue(homeImage); await btnGoToSupportPage.click(); const titleSupportPage = await driver.findElementByAutomationText("Support Page"); @@ -41,7 +42,7 @@ describe("sample scenario", function () { it("should go back to home page", async function () { const btnGoBackToHomePage = await driver.findElementByAutomationText("go back to home page"); - const supportImage = await driver.compareScreen("support"); + const supportImage = await driver.compareScreen("support", 5, 20, ImageOptions.pixel); assert.isTrue(supportImage); await btnGoBackToHomePage.click(); const titleHomePage = await driver.findElementByAutomationText("Home Page");