From c789f37aec56a442cf900b03955ef81890a58cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez=20Ruiz?= Date: Thu, 15 Dec 2016 10:14:15 +0100 Subject: [PATCH] Added UITest project --- .../eShopOnContainers.Xamarin.Tests.sln | 51 +++++++++++++ .../AppInitializer.cs | 23 ++++++ .../eShopOnContainers.UITests/Tests.cs | 42 +++++++++++ .../eShopOnContainers.UITests/app.config | 11 +++ .../eShopOnContainers.UITests.csproj | 75 +++++++++++++++++++ .../eShopOnContainers.UITests/packages.config | 6 ++ 6 files changed, 208 insertions(+) create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.UITests/AppInitializer.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.UITests/Tests.cs create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.UITests/app.config create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.UITests/eShopOnContainers.UITests.csproj create mode 100644 src/Mobile/eShopOnContainers/eShopOnContainers.UITests/packages.config diff --git a/src/Mobile/eShopOnContainers.Xamarin.Tests.sln b/src/Mobile/eShopOnContainers.Xamarin.Tests.sln index ec6c4ee63..ba9396937 100644 --- a/src/Mobile/eShopOnContainers.Xamarin.Tests.sln +++ b/src/Mobile/eShopOnContainers.Xamarin.Tests.sln @@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UITests", "eShopOnContainers\eShopOnContainers.UITests\eShopOnContainers.UITests.csproj", "{E3B18084-842C-4B80-8E4A-A7E588EC3137}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -491,6 +493,54 @@ Global {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.ActiveCfg = Release|x86 {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.Build.0 = Release|x86 {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|x86.Deploy.0 = Release|x86 + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|Any CPU.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|ARM.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|ARM.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhone.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x64.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x64.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x86.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.AppStore|x86.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|ARM.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhone.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x64.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x64.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x86.ActiveCfg = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Debug|x86.Build.0 = Debug|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|Any CPU.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|ARM.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|ARM.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhone.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhone.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x64.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x64.Build.0 = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x86.ActiveCfg = Release|Any CPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -504,5 +554,6 @@ Global {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} + {E3B18084-842C-4B80-8E4A-A7E588EC3137} = {71D6317D-AF0F-46FE-91DA-B0556911FC4B} EndGlobalSection EndGlobal diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/AppInitializer.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/AppInitializer.cs new file mode 100644 index 000000000..3dc31f1bc --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/AppInitializer.cs @@ -0,0 +1,23 @@ +using Xamarin.UITest; + +namespace eShopOnContainers.UITests +{ + public class AppInitializer + { + public static IApp StartApp(Platform platform) + { + if (platform == Platform.Android) + { + return ConfigureApp + .Android + .ApkFile(@"..\..\..\eShopOnContainers.Droid\bin\Release\eShopOnContainers.Droid.apk") + .StartApp(); + } + + return ConfigureApp + .iOS + .StartApp(); + } + } +} + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/Tests.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/Tests.cs new file mode 100644 index 000000000..e8a6c07bd --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/Tests.cs @@ -0,0 +1,42 @@ +using NUnit.Framework; +using Xamarin.UITest; + +namespace eShopOnContainers.UITests +{ + [TestFixture(Platform.Android)] + [TestFixture(Platform.iOS)] + public class Tests + { + IApp app; + Platform platform; + + public Tests(Platform platform) + { + this.platform = platform; + } + + [SetUp] + public void BeforeEachTest() + { + app = AppInitializer.StartApp(platform); + } + + [Test] + public void AppLaunches() + { + app.Screenshot("First screen."); + } + + [Test] + public void LoginTest() + { + app.Tap(x => x.Text("[ LOGIN ]")); + app.Tap(x => x.Class("WebView").Css("INPUT#Email")); + app.EnterText(x => x.Class("WebView").Css("INPUT#Email"), "jdoe@eshop.com"); + app.Tap(x => x.Class("WebView").Css("INPUT#Password")); + app.EnterText(x => x.Class("WebView").Css("INPUT#Password"), "eshopContainers.123"); + app.Tap(x => x.Class("WebView").Css("BUTTON.btn.btn-default.btn-brand.btn-brand-big")); + app.Screenshot("eShopOnContainers Login process"); + } + } +} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/app.config b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/app.config new file mode 100644 index 000000000..8460dd432 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/eShopOnContainers.UITests.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/eShopOnContainers.UITests.csproj new file mode 100644 index 000000000..e33fadc36 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/eShopOnContainers.UITests.csproj @@ -0,0 +1,75 @@ + + + + Debug + AnyCPU + {E3B18084-842C-4B80-8E4A-A7E588EC3137} + Library + eShopOnContainers.UITests + eShopOnContainers.UITests + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + full + true + bin\Release + prompt + 4 + false + + + + ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll + False + + + ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll + False + + + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + True + + + ..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll + False + + + ..\..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll + False + + + + ..\..\packages\Xamarin.UITest.2.0.3\lib\Xamarin.UITest.dll + True + + + + + + + + + + + + + {65116d1c-145b-4693-abda-f0fb6f425191} + eShopOnContainers.Core + + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/packages.config b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/packages.config new file mode 100644 index 000000000..e65af7b90 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UITests/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file