From aae5293b032a55b629a9954511e16495030d0d22 Mon Sep 17 00:00:00 2001 From: Alexander Chocron Date: Tue, 29 Nov 2016 10:11:30 -0800 Subject: [PATCH 01/62] Create Tests folder and projects for UITests --- .../Contoso.Forms.Puppet.Droid.csproj | 5 +- .../Contoso.Forms.Puppet.iOS/AppDelegate.cs | 4 + .../Contoso.Forms.Puppet.iOS.csproj | 4 + .../Contoso.Forms.Puppet.iOS/packages.config | 1 + MobileCenter-SDK.sln | 206 ++++++++++++++++++ .../PlatformCrashes.cs | 2 +- Tests/Contoso.Forms.Test/App.xaml | 6 + Tests/Contoso.Forms.Test/App.xaml.cs | 29 +++ .../Contoso.Forms.Test.csproj | 59 +++++ .../Contoso.Forms.TestPage.xaml | 4 + .../Contoso.Forms.TestPage.xaml.cs | 12 + .../Properties/AssemblyInfo.cs | 26 +++ Tests/Contoso.Forms.Test/packages.config | 4 + Tests/Droid/Assets/AboutAssets.txt | 19 ++ Tests/Droid/Contoso.Forms.Test.Droid.csproj | 115 ++++++++++ Tests/Droid/MainActivity.cs | 28 +++ Tests/Droid/Properties/AndroidManifest.xml | 6 + Tests/Droid/Properties/AssemblyInfo.cs | 27 +++ Tests/Droid/Resources/AboutResources.txt | 44 ++++ Tests/Droid/Resources/drawable-hdpi/icon.png | Bin 0 -> 1431 bytes Tests/Droid/Resources/drawable-xhdpi/icon.png | Bin 0 -> 1789 bytes .../Droid/Resources/drawable-xxhdpi/icon.png | Bin 0 -> 2353 bytes Tests/Droid/Resources/drawable/icon.png | Bin 0 -> 1431 bytes Tests/Droid/Resources/layout/Tabbar.axml | 2 + Tests/Droid/Resources/layout/Toolbar.axml | 2 + Tests/Droid/Resources/values/styles.xml | 27 +++ Tests/Droid/packages.config | 12 + Tests/UITests/AppInitializer.cs | 21 ++ .../UITests/Contoso.Forms.Test.UITests.csproj | 58 +++++ Tests/UITests/Tests.cs | 37 ++++ Tests/UITests/packages.config | 5 + Tests/iOS/AppDelegate.cs | 27 +++ .../AppIcon.appiconset/Contents.json | 157 +++++++++++++ Tests/iOS/Assets.xcassets/Contents.json | 6 + Tests/iOS/Contoso.Forms.Test.iOS.csproj | 134 ++++++++++++ Tests/iOS/Entitlements.plist | 6 + Tests/iOS/Info.plist | 46 ++++ Tests/iOS/LaunchScreen.storyboard | 27 +++ Tests/iOS/Main.cs | 20 ++ Tests/iOS/packages.config | 5 + 40 files changed, 1190 insertions(+), 3 deletions(-) create mode 100644 Tests/Contoso.Forms.Test/App.xaml create mode 100644 Tests/Contoso.Forms.Test/App.xaml.cs create mode 100644 Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj create mode 100644 Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml create mode 100644 Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs create mode 100644 Tests/Contoso.Forms.Test/Properties/AssemblyInfo.cs create mode 100644 Tests/Contoso.Forms.Test/packages.config create mode 100644 Tests/Droid/Assets/AboutAssets.txt create mode 100644 Tests/Droid/Contoso.Forms.Test.Droid.csproj create mode 100644 Tests/Droid/MainActivity.cs create mode 100644 Tests/Droid/Properties/AndroidManifest.xml create mode 100644 Tests/Droid/Properties/AssemblyInfo.cs create mode 100644 Tests/Droid/Resources/AboutResources.txt create mode 100644 Tests/Droid/Resources/drawable-hdpi/icon.png create mode 100644 Tests/Droid/Resources/drawable-xhdpi/icon.png create mode 100644 Tests/Droid/Resources/drawable-xxhdpi/icon.png create mode 100644 Tests/Droid/Resources/drawable/icon.png create mode 100644 Tests/Droid/Resources/layout/Tabbar.axml create mode 100644 Tests/Droid/Resources/layout/Toolbar.axml create mode 100644 Tests/Droid/Resources/values/styles.xml create mode 100644 Tests/Droid/packages.config create mode 100644 Tests/UITests/AppInitializer.cs create mode 100644 Tests/UITests/Contoso.Forms.Test.UITests.csproj create mode 100644 Tests/UITests/Tests.cs create mode 100644 Tests/UITests/packages.config create mode 100644 Tests/iOS/AppDelegate.cs create mode 100644 Tests/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Tests/iOS/Assets.xcassets/Contents.json create mode 100644 Tests/iOS/Contoso.Forms.Test.iOS.csproj create mode 100644 Tests/iOS/Entitlements.plist create mode 100644 Tests/iOS/Info.plist create mode 100644 Tests/iOS/LaunchScreen.storyboard create mode 100644 Tests/iOS/Main.cs create mode 100644 Tests/iOS/packages.config diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj index a6dd4d7bc..f232e86cc 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj @@ -16,6 +16,7 @@ Resources Assets true + false true @@ -26,7 +27,8 @@ prompt 4 None - arm64-v8a;armeabi;armeabi-v7a;x86 +true +armeabi-v7a;x86_64 true @@ -36,7 +38,6 @@ prompt 4 true - false diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs index 4c9e7d1f2..932857dfd 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs @@ -14,6 +14,10 @@ public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsAppli { public override bool FinishedLaunching(UIApplication app, NSDictionary options) { + #if ENABLE_TEST_CLOUD + Xamarin.Calabash.Start(); + #endif + global::Xamarin.Forms.Forms.Init(); MobileCenter.Configure("44cd8722-bfe0-4748-ac14-7692e031a8a5"); diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Contoso.Forms.Puppet.iOS.csproj b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Contoso.Forms.Puppet.iOS.csproj index afc598221..0b9aac9f1 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Contoso.Forms.Puppet.iOS.csproj +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Contoso.Forms.Puppet.iOS.csproj @@ -83,6 +83,7 @@ ARMv7, ARM64 HttpClientHandler Default + true @@ -101,6 +102,9 @@ ..\..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll + + ..\..\..\packages\Xamarin.TestCloud.Agent.0.20.3\lib\Xamarin.iOS10\Calabash.dll + diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/packages.config b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/packages.config index b78e7945e..dcda5bc3b 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/packages.config +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file diff --git a/MobileCenter-SDK.sln b/MobileCenter-SDK.sln index 19d5449e7..a21aa51d0 100644 --- a/MobileCenter-SDK.sln +++ b/MobileCenter-SDK.sln @@ -67,6 +67,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Demo.Droid", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Demo.iOS", "Apps\Contoso.Forms.Demo\Contoso.Forms.Demo.iOS\Contoso.Forms.Demo.iOS.csproj", "{EB8F7B8E-5013-4C0C-9C32-59ADC5FDFDBD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{4C54D493-95FE-44DA-B3E4-FA17B594D72C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Test", "Tests\Contoso.Forms.Test\Contoso.Forms.Test.csproj", "{AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Test.iOS", "Tests\iOS\Contoso.Forms.Test.iOS.csproj", "{122FE275-3721-4C40-A1AA-E7D22813C8B9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Test.Droid", "Tests\Droid\Contoso.Forms.Test.Droid.csproj", "{64D0912F-65B5-49DC-88B5-D1261B63D6A3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Test.UITests", "Tests\UITests\Contoso.Forms.Test.UITests.csproj", "{78990F7A-6C3E-4007-B0E3-A8BF9625A327}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SDK\MobileCenter\Microsoft.Azure.Mobile.Shared\Microsoft.Azure.Mobile.Shared.projitems*{119c1730-e109-4bc9-aa89-9dca2c50bfd5}*SharedItemsImports = 4 @@ -1209,6 +1219,198 @@ Global {EB8F7B8E-5013-4C0C-9C32-59ADC5FDFDBD}.Release|x64.Build.0 = Release|iPhone {EB8F7B8E-5013-4C0C-9C32-59ADC5FDFDBD}.Release|x86.ActiveCfg = Release|iPhone {EB8F7B8E-5013-4C0C-9C32-59ADC5FDFDBD}.Release|x86.Build.0 = Release|iPhone + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|ARM.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|iPhone.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|x64.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|x64.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|x86.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.AppStore|x86.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|ARM.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|ARM.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|iPhone.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|x64.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|x64.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|x86.ActiveCfg = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Debug|x86.Build.0 = Debug|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|Any CPU.Build.0 = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|ARM.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|ARM.Build.0 = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|iPhone.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|iPhone.Build.0 = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|x64.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|x64.Build.0 = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|x86.ActiveCfg = Release|Any CPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916}.Release|x86.Build.0 = Release|Any CPU + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|Any CPU.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|ARM.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|ARM.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|iPhone.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|iPhone.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|x64.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|x64.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|x86.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Ad-Hoc|x86.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|Any CPU.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|ARM.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|ARM.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|iPhone.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|iPhone.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|x64.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|x64.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|x86.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.AppStore|x86.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|ARM.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|iPhone.ActiveCfg = Debug|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|iPhone.Build.0 = Debug|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|x64.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Debug|x86.Build.0 = Debug|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|Any CPU.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|Any CPU.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|ARM.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|ARM.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|iPhone.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|iPhone.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|x64.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|x64.Build.0 = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|x86.ActiveCfg = Release|iPhone + {122FE275-3721-4C40-A1AA-E7D22813C8B9}.Release|x86.Build.0 = Release|iPhone + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|ARM.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|iPhone.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|x64.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|x64.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|x86.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.AppStore|x86.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|ARM.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|iPhone.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|x64.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|x64.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|x86.ActiveCfg = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Debug|x86.Build.0 = Debug|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|Any CPU.Build.0 = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|ARM.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|ARM.Build.0 = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|iPhone.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|iPhone.Build.0 = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|x64.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|x64.Build.0 = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|x86.ActiveCfg = Release|Any CPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3}.Release|x86.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|ARM.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|iPhone.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|x64.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|x64.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|x86.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.AppStore|x86.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|ARM.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|ARM.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|iPhone.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|x64.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|x64.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|x86.ActiveCfg = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Debug|x86.Build.0 = Debug|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|Any CPU.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|ARM.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|ARM.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|iPhone.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|iPhone.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|x64.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|x64.Build.0 = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|x86.ActiveCfg = Release|Any CPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1244,6 +1446,10 @@ Global {8E7B51FC-8A9B-49F7-A40D-4D12BBF893B6} = {91CEE2C9-F64C-45C9-9353-B1EC87D13C6D} {3B39B339-86C4-47EF-8F85-811220494CA6} = {91CEE2C9-F64C-45C9-9353-B1EC87D13C6D} {EB8F7B8E-5013-4C0C-9C32-59ADC5FDFDBD} = {91CEE2C9-F64C-45C9-9353-B1EC87D13C6D} + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916} = {4C54D493-95FE-44DA-B3E4-FA17B594D72C} + {122FE275-3721-4C40-A1AA-E7D22813C8B9} = {4C54D493-95FE-44DA-B3E4-FA17B594D72C} + {64D0912F-65B5-49DC-88B5-D1261B63D6A3} = {4C54D493-95FE-44DA-B3E4-FA17B594D72C} + {78990F7A-6C3E-4007-B0E3-A8BF9625A327} = {4C54D493-95FE-44DA-B3E4-FA17B594D72C} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0 diff --git a/SDK/MobileCenterCrashes/Microsoft.Azure.Mobile.Crashes.Android/PlatformCrashes.cs b/SDK/MobileCenterCrashes/Microsoft.Azure.Mobile.Crashes.Android/PlatformCrashes.cs index 94bb5b528..3cfb44568 100644 --- a/SDK/MobileCenterCrashes/Microsoft.Azure.Mobile.Crashes.Android/PlatformCrashes.cs +++ b/SDK/MobileCenterCrashes/Microsoft.Azure.Mobile.Crashes.Android/PlatformCrashes.cs @@ -127,7 +127,7 @@ private static IList GenerateModelStackFrames(StackTrace stackT return modelFrames; } - private class CrashListener : Java.Lang.Object, AndroidCrashes.IWrapperSdkListener + class CrashListener : Java.Lang.Object, AndroidCrashes.IWrapperSdkListener { public void OnCrashCaptured(ManagedErrorLog errorLog) { diff --git a/Tests/Contoso.Forms.Test/App.xaml b/Tests/Contoso.Forms.Test/App.xaml new file mode 100644 index 000000000..35d088d69 --- /dev/null +++ b/Tests/Contoso.Forms.Test/App.xaml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Tests/Contoso.Forms.Test/App.xaml.cs b/Tests/Contoso.Forms.Test/App.xaml.cs new file mode 100644 index 000000000..774bdc14c --- /dev/null +++ b/Tests/Contoso.Forms.Test/App.xaml.cs @@ -0,0 +1,29 @@ +using Xamarin.Forms; + +namespace Contoso.Forms.Test +{ + public partial class App : Application + { + public App() + { + InitializeComponent(); + + MainPage = new Contoso.Forms.TestPage(); + } + + protected override void OnStart() + { + // Handle when your app starts + } + + protected override void OnSleep() + { + // Handle when your app sleeps + } + + protected override void OnResume() + { + // Handle when your app resumes + } + } +} diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj b/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj new file mode 100644 index 000000000..26982f9fc --- /dev/null +++ b/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj @@ -0,0 +1,59 @@ + + + + Debug + AnyCPU + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916} + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + true + Library + Contoso.Forms.Test + Contoso.Forms.Test + v4.5 + Profile259 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + + + true + bin\Release + prompt + 4 + + + + + + + + App.xaml + + + Contoso.Forms.TestPage.xaml + + + + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll + + + + + + + + \ No newline at end of file diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml new file mode 100644 index 000000000..982eb64f8 --- /dev/null +++ b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml @@ -0,0 +1,4 @@ + + + diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs new file mode 100644 index 000000000..ad8d4910d --- /dev/null +++ b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs @@ -0,0 +1,12 @@ +using Xamarin.Forms; + +namespace Contoso.Forms.Test +{ + public partial class Contoso.Forms.TestPage : ContentPage + { + public Contoso.Forms.TestPage () + { + InitializeComponent(); +} + } +} diff --git a/Tests/Contoso.Forms.Test/Properties/AssemblyInfo.cs b/Tests/Contoso.Forms.Test/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..01219263b --- /dev/null +++ b/Tests/Contoso.Forms.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Contoso.Forms.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/Tests/Contoso.Forms.Test/packages.config b/Tests/Contoso.Forms.Test/packages.config new file mode 100644 index 000000000..69eb25707 --- /dev/null +++ b/Tests/Contoso.Forms.Test/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Tests/Droid/Assets/AboutAssets.txt b/Tests/Droid/Assets/AboutAssets.txt new file mode 100644 index 000000000..a9b0638eb --- /dev/null +++ b/Tests/Droid/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with your package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/Tests/Droid/Contoso.Forms.Test.Droid.csproj b/Tests/Droid/Contoso.Forms.Test.Droid.csproj new file mode 100644 index 000000000..791e998b6 --- /dev/null +++ b/Tests/Droid/Contoso.Forms.Test.Droid.csproj @@ -0,0 +1,115 @@ + + + + Debug + AnyCPU + {64D0912F-65B5-49DC-88B5-D1261B63D6A3} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Contoso.Forms.Test.Droid + Contoso.Forms.Test.Droid + v7.0 + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + true + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + arm64-v8a;armeabi;armeabi-v7a;x86 + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + ..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + + + ..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll + + + ..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll + + + ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll + + + ..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll + + + ..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll + + + ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\FormsViewGroup.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Core.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll + + + + + + + + + + + + + + + + + + + + + + + + + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916} + Contoso.Forms.Test + + + + + + \ No newline at end of file diff --git a/Tests/Droid/MainActivity.cs b/Tests/Droid/MainActivity.cs new file mode 100644 index 000000000..91fe8c8a0 --- /dev/null +++ b/Tests/Droid/MainActivity.cs @@ -0,0 +1,28 @@ +using System; + +using Android.App; +using Android.Content; +using Android.Content.PM; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.OS; + +namespace Contoso.Forms.Test.Droid +{ + [Activity(Label = "Contoso.Forms.Test.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] + public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity + { + protected override void OnCreate(Bundle bundle) + { + TabLayoutResource = Resource.Layout.Tabbar; + ToolbarResource = Resource.Layout.Toolbar; + + base.OnCreate(bundle); + + global::Xamarin.Forms.Forms.Init(this, bundle); + + LoadApplication(new App()); + } + } +} diff --git a/Tests/Droid/Properties/AndroidManifest.xml b/Tests/Droid/Properties/AndroidManifest.xml new file mode 100644 index 000000000..3d95961df --- /dev/null +++ b/Tests/Droid/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Tests/Droid/Properties/AssemblyInfo.cs b/Tests/Droid/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..dc27af00a --- /dev/null +++ b/Tests/Droid/Properties/AssemblyInfo.cs @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Contoso.Forms.Test.Droid")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/Tests/Droid/Resources/AboutResources.txt b/Tests/Droid/Resources/AboutResources.txt new file mode 100644 index 000000000..10f52d460 --- /dev/null +++ b/Tests/Droid/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.axml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.axml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.axml file, or R.strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/Tests/Droid/Resources/drawable-hdpi/icon.png b/Tests/Droid/Resources/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..964f110abb68f1663c4fd164a0079ae9034ef96d GIT binary patch literal 1431 zcmV;I1!($-P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;Eegmrwuz1qew*K~!i%?ON$?8$}f7kD?7FKsj0g5<=n- zM+Gf>0Ez%1ZXtwFr9!15B;W%|Ow*Rq5|WUX1lm&QL8?|MJ!wPRC_dsiwiDY)9N*X4 z;Wd6TGvnRanRRx8SNqfN+w9Dn-|ozt_ulMnw|99RNmp3A(G}KibcMAWU19A;SC|3s z+U47JD%Ll)ICy*oMIyDaNQcEedfJVXyrfL95I{Ip{;zMWP^cKbJ7`_g&Cbe*qQc(! zEsDeI0W^~jLu4!%Z7t+A2+hd8Cj%L5)59kxXUT^-6cPsBb~?rT2=J0$JVdP%m;ttN zvEy`{>;*@|G`FC^^ib8|SbF|N)Q)(~A_&D@9=vCRN*9(Ht72h?cDaJ4tE z`|<+W#fav@9^4nmm8&=^7a#sXg$OSXg|Wc^Zyt$|&%be4D4;26wMP#G$&R`-7dAYe z!XeGj93pTw%sF~n!l(1iiv~0&0vWQeE=`0zKNyno@L!EmA;PUBKyTAPV(?7=6#3+5 zBQb0f!z;sKvU@Xm!eGz*JyXDu#E>afH_+MPfvZVuBXEdLwAT0d=ksy_&BR=BE!Xw) zgne{e$g?qk=!6{P{yqN10ySyav9NE+XTTp|n+zC_%Fs|4oJF%4E17?#T6^+GYMFgb z$IVPc`^f&uqVb{3L9(FTx5v=+8w&GWoW}v=aXOeKhq}Y#3nuXxoXJ!=cTo=J$V9r{ zWC1^1OOiv8)E8#?EjIA#FVyCK`zQu3AD^H?hs_74TQSqTIvUg$wqI|@OJO|0Zte?_ z{PlQ|I>fuYSE70BU==^#)Gzqx3xhBM`?Y{=r()!on+8HJ4N;%*y<;=@XbXVwg&ea% zb;6$eDa0H;@2eMP$5Ol$&EHHEnY`n&;-%QS^Vmu|k9Uuu^I-Ch&61G~18L_0TtRog z&f{yOo{*=(2}!mpb@#wl4(KQ7xA?``1hy@s>%u(Qs``KiS_`TA#;A~Lxv)iLJ^6C= zp?y@zsppcykP2ua2u?Qz!M)dX{Ls)iwc{Zvp35l=f`PJW%a@}Gvisw`L0FmCMxgn& zVY|w-rA~OeIG7p2sq#8H(frf+?&5ryx^3v__Igz&nm|Y~vSOtH=JsIgut{m)t)o%$ z`PaqnI*Kb*8UTtEb6_`;U0?&i8I5fQm`s*BJk%FHtFo8_gau|&eyc4pSH=)eVH+1a z&rqK2slF-xbz(eQxqAi6Z$N&*l&Q>s?RZY;41}}jUbcSLB6<=B1iMmkMl)Ly2JE!q*V#{3{ny$5GhJcrMpsz7 l(G}KibcMAW9V)EL`!DSo$rUNEF*X1I002ovPDHLkV1lslsTBYK literal 0 HcmV?d00001 diff --git a/Tests/Droid/Resources/drawable-xhdpi/icon.png b/Tests/Droid/Resources/drawable-xhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c01e60ced0cd4ca7d47f6d4061603c5d0a4af95 GIT binary patch literal 1789 zcmeHH_g9k#6#Xb71c;|9U=LWV6)<2+O%MeK6$mn9grR^$A!q`XiUDH9QKVFMWS?jN z!wN%+VW}95kRU^uLJ1&*5fB0ykQg9j5E}jsPw%<+z4PAt?VfXAD#FtltZk?b007w4 z1@5EjA=}bYS5@Y@Hxys&*|8ci4#QD ziF}rAKI>E=>vSQ@?&;*Oq)B_yq+`*PQ^}Nb>D2kM>GR}ick;AH`3$0B#*lW2&7tc*Uw<)wrw)J=^mNCip+(8?l7z|K_{86s;7eHo>EyC>W<|yp%I3ewIAZytSk7Nl2-X!si9)!c z5KA{#Rg`T?k=3P0DExTQk%jYh*d4W z!#M@ud~afKw^7k(0E_x95@#8S#{F>2@~EX1e&I1f6{1jAxV>MvqktIXzZa^PsM+n2 zm7ov*Hm^Vr?sV20ZfT&Mf-sNPS4-dAYGvfSt#rra5Xlkq9oEx2jRWWqQ(|uJOgUMF zSmN(q-+a<_G-7+Ry{xm{>WkPTcq5uJ!;J(Ytom;xTuUN`b{RKIH(c;Mt-PzDNUvKZ-#UorE8;n)%0m)rQ_88m z;S4i8HHdqU)Yj-=ZgV3MN(kJ!H-i_}eUev~yb!T_#Kss2BVduI9{A=KM29mg*oD85)MD=yVzXTs?55TxPQVMTN6A*6+k z({6IJsa0YM@eSv8Y@FqOw{8zD5Y)9Pt29C5>4k(-1lO z1s5Re!MfRlCZi)5YzG(N8O=|f)9ZO5tx}HBVb&WT+sBdg7*=vpik8eLDn5P}R5*GW zv0m;F%qKAh2t&aLg!hY%eqM8^i`H@HGjZudnwyC*xI5Kz468lNyu9ei13NdO;~rXJ zxp&lhPM5>^gr!F?iQ$LpOgKD_8CqaY^@ypKSS4 zl25kij0_YpceNb?KO0no+c}7e^`7=}51w9khDegnO1c6#no$ye(4)&qG<3smN^J}) z*u}QhM{L~OqKAunzN8Etkun?PJyDWTdH(^Tu|3`|Y?odBQ0UAqoEhY3{(4 literal 0 HcmV?d00001 diff --git a/Tests/Droid/Resources/drawable-xxhdpi/icon.png b/Tests/Droid/Resources/drawable-xxhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8c1c57dc5ca6268f2d5edae12f41a1a1dc3435 GIT binary patch literal 2353 zcmeHI`#Td18(yds%8X?LD*?0078A951+U zYwB-GOK$g`Y=y*a*@1F*umzC2)Tg%xsbKIWFaYp2MP@x=MLHBvF-BN_W5iFBHNM3h7gCH3x=Tu!!D$ee-)0n7LLG* zwlV5aH0oV4dZl#Cr)=zM*_a=BJb*k7uN)70I}uzpalLvXq-HX-X7X0;WOywHRmVZs zac+N@imacyOPPwMa_>{Qu^+h)KXD&@ntn{1e$qJov}p#@H1mwkd)~}TZsDc2^3vO8 zUod7f+h?=d=d!=dz3iAHbZ%olw`)GXd!E=cPx|_+@Y}DV-i4CBh4TId^7qBcfyHX( zQq7O0cY{k5)-rWyxq-d>kjS4VzrLp-`5o>&x5E{QoyYux3v8U7kius$nTpI=#D z5UwwZ)|W&Z{M8MCctg0hDO%fHUEf^a*xcOQ+Rp#~^*@-vy;*|Z_F8+w9j~AO00s1K z?qDOeqP9&Hw7oYPb_c4Tb7QI5>S=@)9QlBSf+7#AcLJZdzkL{H{OpESEu!uFh^0G3#pmL?T{mB2NY{3K z_31dA`4GDgFJQ*|#)Rd2<91GjR3B^{RJW_t-``W(8G#pwl_K_JgR7K3pDfbNH%h*) z5fTOu3e)y^Ts&}{6kt%b$O4}L?oWNr(Y9rn#fKj)KgK(a)hp8e*QR7Ols z?NS;$)1i}|VS#a|)WFi!ZLA2C7Mw??T$S$~JT*Fpd-lb<6~w6#ybZ%-v&d16I* z>)2(e+}84@BdY^c^dXT!v((2gXCF0iP>~&%=yj&*=cc7)F?Y#FbGe6V6~;bIc5}_E zzhHtVWT2A1Envi5m-j~MP3ow%AKi6+En7`}t?fwl46!`S`i|;;8otDe4o1}TOyCqT zuop0josB{6TT<1;M`t@(4$_L;*Urc(5ZW|@iE+X9fmB5p_Oa~DO|djCPDT_3;+rl* zed!QH-Pc&SBT4~>rCnH2=uIlS)$CkcUQu}fYE;mN3^vxxXmhEDdA>4n^;*l^amijn zGrf%+nEaf0-Hb1*Sk}<}&>eALPn3-gCFO({9TXv7m6O%<3WBXrd?L7%$&BVCskI8FXpveL8;+5R(hQQPcq zXWl`^XC=K(P3Xtz#LJUiaH4~8X^kH7%;M0fHzi|J z+J*|&_&f1LP@0^hXR}L2zQBnhJKeLB4@|T3fAc3Ctm<;A>o(H{Lce z{h!lN5F({W*7EenM}C?67u^v1=VdWb-L$Nz)x-5WQSfLPo*ia^X5$U|Ou zS6FHF#G*fC({`M)nktfszgmUr_|~!2zPr=y=|;GJ74xM}@Iu~#n<5&PcP%}K*&6#Q zgE`ySm~iI&RxDZ*TrZ3tuAd?dmxy!!)OdvdVE7{6+h8?ILpAy<6mgocwdb zipf77giuWfaL{mh%~+}f!#>04eSwVieaV_z;RAf-3N6FyE{GD^F&o(B@JJnU!|@MF z;#eWk-=L*bOK`61kXr=spCr3%Ur}VKuZe_we4k`?J*NDpYtvlo`#hn`ZKCK5Sv;8G zq^~3V8OKO|&{_?8v8n2C$=~aQlgTimN})%Q>~rH8K4?qsywuZF1yN*TCF-0b;Xwh%3<$an72)4H5DH9Z6J6WxLbEaWVtDo; zRh_{*{kJ8awWrtBh#T)ld`8Sqs98(6P73=PX zF3~)OaX&GwBY#q4!Ip1;#&d>=A*%cI`d*uR-iGZRg^i?@)ZZ9PtKeuP-ekRPx8Kg>*U5GY(igp;;-EBZmUC@o=G+g{zckmKk_=n4~ zpH~TmL}Jq0jpyS{NyxFwuYb@@<)MD4O!{9`QJx=u7Sv85?npXg@}JX*V^DWyh><3Q|PE|6`nJ^D8!9`HQ? literal 0 HcmV?d00001 diff --git a/Tests/Droid/Resources/drawable/icon.png b/Tests/Droid/Resources/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ba7150f4d6c3bd6d95e68b7c89e39f1ef22bca GIT binary patch literal 1431 zcmV;I1!($-P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGe?*IS_?*V;wibwze02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;Eegmrwuz1qew*K~!i%?ON$?8$}f7kD?7FKsj0g5<=n- zM+Gf>0Ez%1ZXtwFr9!15B;W%|Ow*Rq5|WUX1lm&QL8?|MJ!wPRC_dsiwiDY)9N*X4 z;Wd6TGvnRanRRx8SNqfN+w9Dn-|ozt_ulMnw|99RNmp3A(G}KibcMAWU19A;SC|3s z+U47JD%Ll)ICy*oMIyDaNQcEedfJVXyrfL95I{Ip{;zMWP^cKbJ7`_g&Cbe*qQc(! zEsDeI0W^~jLu4!%Z7t+A2+hd8Cj%L5)59kxXUT^-6cPsBb~?rT2=J0$JVdP%m;ttN zvEy`{>;*@|G`FC^^ib8|SbF|N)Q)(~A_&D@9=vCRN*9(Ht72h?cDaJ4tE z`|<+W#fav@9^4nmm8&=^7a#sXg$OSXg|Wc^Zyt$|&%be4D4;26wMP#G$&R`-7dAYe z!XeGj93pTw%sF~n!l(1iiv~0&0vWQeE=`0zKNyno@L!EmA;PUBKyTAPV(?7=6#3+5 zBQb0f!z;sKvU@Xm!eGz*JyXDu#E>afH_+MPfvZVuBXEdLwAT0d=ksy_&BR=BE!Xw) zgne{e$g?qk=!6{P{yqN10ySyav9NE+XTTp|n+zC_%Fs|4oJF%4E17?#T6^+GYMFgb z$IVPc`^f&uqVb{3L9(FTx5v=+8w&GWoW}v=aXOeKhq}Y#3nuXxoXJ!=cTo=J$V9r{ zWC1^1OOiv8)E8#?EjIA#FVyCK`zQu3AD^H?hs_74TQSqTIvUg$wqI|@OJO|0Zte?_ z{PlQ|I>fuYSE70BU==^#)Gzqx3xhBM`?Y{=r()!on+8HJ4N;%*y<;=@XbXVwg&ea% zb;6$eDa0H;@2eMP$5Ol$&EHHEnY`n&;-%QS^Vmu|k9Uuu^I-Ch&61G~18L_0TtRog z&f{yOo{*=(2}!mpb@#wl4(KQ7xA?``1hy@s>%u(Qs``KiS_`TA#;A~Lxv)iLJ^6C= zp?y@zsppcykP2ua2u?Qz!M)dX{Ls)iwc{Zvp35l=f`PJW%a@}Gvisw`L0FmCMxgn& zVY|w-rA~OeIG7p2sq#8H(frf+?&5ryx^3v__Igz&nm|Y~vSOtH=JsIgut{m)t)o%$ z`PaqnI*Kb*8UTtEb6_`;U0?&i8I5fQm`s*BJk%FHtFo8_gau|&eyc4pSH=)eVH+1a z&rqK2slF-xbz(eQxqAi6Z$N&*l&Q>s?RZY;41}}jUbcSLB6<=B1iMmkMl)Ly2JE!q*V#{3{ny$5GhJcrMpsz7 l(G}KibcMAW9V)EL`!DSo$rUNEF*X1I002ovPDHLkV1oYMspS9w literal 0 HcmV?d00001 diff --git a/Tests/Droid/Resources/layout/Tabbar.axml b/Tests/Droid/Resources/layout/Tabbar.axml new file mode 100644 index 000000000..0bc7e9db6 --- /dev/null +++ b/Tests/Droid/Resources/layout/Tabbar.axml @@ -0,0 +1,2 @@ + + diff --git a/Tests/Droid/Resources/layout/Toolbar.axml b/Tests/Droid/Resources/layout/Toolbar.axml new file mode 100644 index 000000000..d685cbadb --- /dev/null +++ b/Tests/Droid/Resources/layout/Toolbar.axml @@ -0,0 +1,2 @@ + + diff --git a/Tests/Droid/Resources/values/styles.xml b/Tests/Droid/Resources/values/styles.xml new file mode 100644 index 000000000..3dc5ef6ba --- /dev/null +++ b/Tests/Droid/Resources/values/styles.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/Tests/Droid/packages.config b/Tests/Droid/packages.config new file mode 100644 index 000000000..53a161905 --- /dev/null +++ b/Tests/Droid/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Tests/UITests/AppInitializer.cs b/Tests/UITests/AppInitializer.cs new file mode 100644 index 000000000..44f7224ad --- /dev/null +++ b/Tests/UITests/AppInitializer.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Linq; +using Xamarin.UITest; +using Xamarin.UITest.Queries; + +namespace Contoso.Forms.Test.UITests +{ + public class AppInitializer + { + public static IApp StartApp(Platform platform) + { + if (platform == Platform.Android) + { + return ConfigureApp.Android.StartApp(); + } + + return ConfigureApp.iOS.StartApp(); + } + } +} diff --git a/Tests/UITests/Contoso.Forms.Test.UITests.csproj b/Tests/UITests/Contoso.Forms.Test.UITests.csproj new file mode 100644 index 000000000..07408f520 --- /dev/null +++ b/Tests/UITests/Contoso.Forms.Test.UITests.csproj @@ -0,0 +1,58 @@ + + + + Debug + AnyCPU + {78990F7A-6C3E-4007-B0E3-A8BF9625A327} + Library + Contoso.Forms.Test.UITests + Contoso.Forms.Test.UITests + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + + + true + bin\Release + prompt + 4 + + + + + ..\..\packages\NUnit.2.6.3\lib\nunit.framework.dll + + + ..\..\packages\Xamarin.UITest.1.3.7\lib\Xamarin.UITest.dll + + + + + + + + + {122FE275-3721-4C40-A1AA-E7D22813C8B9} + Contoso.Forms.Test.iOS + False + False + + + {64D0912F-65B5-49DC-88B5-D1261B63D6A3} + Contoso.Forms.Test.Droid + False + False + + + + + + + \ No newline at end of file diff --git a/Tests/UITests/Tests.cs b/Tests/UITests/Tests.cs new file mode 100644 index 000000000..d56ba2760 --- /dev/null +++ b/Tests/UITests/Tests.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; +using System.Linq; +using NUnit.Framework; +using Xamarin.UITest; +using Xamarin.UITest.Queries; + +namespace Contoso.Forms.Test.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 WelcomeTextIsDisplayed() + { + AppResult[] results = app.WaitForElement(c => c.Marked("Welcome to Xamarin Forms!")); + app.Screenshot("Welcome screen."); + + Assert.IsTrue(results.Any()); + } + } +} diff --git a/Tests/UITests/packages.config b/Tests/UITests/packages.config new file mode 100644 index 000000000..ef4e5edf2 --- /dev/null +++ b/Tests/UITests/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Tests/iOS/AppDelegate.cs b/Tests/iOS/AppDelegate.cs new file mode 100644 index 000000000..742feec3f --- /dev/null +++ b/Tests/iOS/AppDelegate.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace Contoso.Forms.Test.iOS +{ + [Register("AppDelegate")] + public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate + { + public override bool FinishedLaunching(UIApplication app, NSDictionary options) + { + global::Xamarin.Forms.Forms.Init(); + + // Code for starting up the Xamarin Test Cloud Agent +#if ENABLE_TEST_CLOUD + Xamarin.Calabash.Start(); +#endif + + LoadApplication(new App()); + + return base.FinishedLaunching(app, options); + } + } +} diff --git a/Tests/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tests/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..4e646784c --- /dev/null +++ b/Tests/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,157 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "29x29", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "3x" + }, + { + "idiom": "iphone", + "size": "57x57", + "scale": "1x" + }, + { + "idiom": "iphone", + "size": "57x57", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "3x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "50x50", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "50x50", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "72x72", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "72x72", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "2x" + }, + { + "size": "24x24", + "idiom": "watch", + "scale": "2x", + "role": "notificationCenter", + "subtype": "38mm" + }, + { + "size": "27.5x27.5", + "idiom": "watch", + "scale": "2x", + "role": "notificationCenter", + "subtype": "42mm" + }, + { + "size": "29x29", + "idiom": "watch", + "role": "companionSettings", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "watch", + "role": "companionSettings", + "scale": "3x" + }, + { + "size": "40x40", + "idiom": "watch", + "scale": "2x", + "role": "appLauncher", + "subtype": "38mm" + }, + { + "size": "44x44", + "idiom": "watch", + "scale": "2x", + "role": "longLook", + "subtype": "42mm" + }, + { + "size": "86x86", + "idiom": "watch", + "scale": "2x", + "role": "quickLook", + "subtype": "38mm" + }, + { + "size": "98x98", + "idiom": "watch", + "scale": "2x", + "role": "quickLook", + "subtype": "42mm" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/Tests/iOS/Assets.xcassets/Contents.json b/Tests/iOS/Assets.xcassets/Contents.json new file mode 100644 index 000000000..4caf392f9 --- /dev/null +++ b/Tests/iOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Tests/iOS/Contoso.Forms.Test.iOS.csproj b/Tests/iOS/Contoso.Forms.Test.iOS.csproj new file mode 100644 index 000000000..0889fcd3f --- /dev/null +++ b/Tests/iOS/Contoso.Forms.Test.iOS.csproj @@ -0,0 +1,134 @@ + + + + Debug + iPhoneSimulator + {122FE275-3721-4C40-A1AA-E7D22813C8B9} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + Contoso.Forms.Test.iOS + Contoso.Forms.Test.iOS + Resources + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + 55610 + None + x86_64 + HttpClientHandler + Default + false + + + pdbonly + true + bin\iPhone\Release + + prompt + 4 + iPhone Developer + true + true + true + Entitlements.plist + SdkOnly + ARMv7, ARM64 + HttpClientHandler + Default + + + pdbonly + true + bin\iPhoneSimulator\Release + + prompt + 4 + iPhone Developer + true + true + None + x86_64 + HttpClientHandler + Default + + + true + full + false + bin\iPhone\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + true + true + Entitlements.plist + SdkOnly + ARMv7, ARM64 + HttpClientHandler + Default + + + + + + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll + + + ..\..\packages\Xamarin.Forms.2.3.1.114\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll + + + ..\..\packages\Xamarin.TestCloud.Agent.0.19.0\lib\Xamarin.iOS10\Calabash.dll + + + + + + + + + + + + + + + + + + + + + + + + {AABF653E-0CC1-4D59-93DB-4EEF0E1DF916} + Contoso.Forms.Test + + + + + \ No newline at end of file diff --git a/Tests/iOS/Entitlements.plist b/Tests/iOS/Entitlements.plist new file mode 100644 index 000000000..9ae599370 --- /dev/null +++ b/Tests/iOS/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/Tests/iOS/Info.plist b/Tests/iOS/Info.plist new file mode 100644 index 000000000..dc01b7ef1 --- /dev/null +++ b/Tests/iOS/Info.plist @@ -0,0 +1,46 @@ + + + + + CFBundleDisplayName + Contoso.Forms.Test + CFBundleName + Contoso.Forms.Test + CFBundleIdentifier + com.contoso.contoso-forms-test + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + MinimumOSVersion + 8.0 + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/Tests/iOS/LaunchScreen.storyboard b/Tests/iOS/LaunchScreen.storyboard new file mode 100644 index 000000000..5d2e905aa --- /dev/null +++ b/Tests/iOS/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/iOS/Main.cs b/Tests/iOS/Main.cs new file mode 100644 index 000000000..a77cb48dd --- /dev/null +++ b/Tests/iOS/Main.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace Contoso.Forms.Test.iOS +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, "AppDelegate"); + } + } +} diff --git a/Tests/iOS/packages.config b/Tests/iOS/packages.config new file mode 100644 index 000000000..bcaf3b179 --- /dev/null +++ b/Tests/iOS/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From 0535c07e3b6e705b2beba072fa7326eccb88269d Mon Sep 17 00:00:00 2001 From: Alexander Chocron Date: Tue, 29 Nov 2016 14:13:00 -0800 Subject: [PATCH 02/62] Investigate ui tests --- Tests/Contoso.Forms.Test/App.xaml.cs | 2 +- .../Contoso.Forms.Test.csproj | 10 +++++---- .../Contoso.Forms.TestPage.xaml | 4 ---- .../Contoso.Forms.TestPage.xaml.cs | 12 ----------- Tests/Contoso.Forms.Test/TestPage.xaml | 8 +++++++ Tests/Contoso.Forms.Test/TestPage.xaml.cs | 21 +++++++++++++++++++ Tests/UITests/Tests.cs | 7 ++++--- 7 files changed, 40 insertions(+), 24 deletions(-) delete mode 100644 Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml delete mode 100644 Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs create mode 100644 Tests/Contoso.Forms.Test/TestPage.xaml create mode 100644 Tests/Contoso.Forms.Test/TestPage.xaml.cs diff --git a/Tests/Contoso.Forms.Test/App.xaml.cs b/Tests/Contoso.Forms.Test/App.xaml.cs index 774bdc14c..5b28fb0a9 100644 --- a/Tests/Contoso.Forms.Test/App.xaml.cs +++ b/Tests/Contoso.Forms.Test/App.xaml.cs @@ -8,7 +8,7 @@ public App() { InitializeComponent(); - MainPage = new Contoso.Forms.TestPage(); + MainPage = new TestPage(); } protected override void OnStart() diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj b/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj index 26982f9fc..891285a45 100644 --- a/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj +++ b/Tests/Contoso.Forms.Test/Contoso.Forms.Test.csproj @@ -29,16 +29,18 @@ - + + MSBuild:UpdateDesignTimeXaml + App.xaml - - Contoso.Forms.TestPage.xaml - + + TestPage.xaml + diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml deleted file mode 100644 index 982eb64f8..000000000 --- a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs b/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs deleted file mode 100644 index ad8d4910d..000000000 --- a/Tests/Contoso.Forms.Test/Contoso.Forms.TestPage.xaml.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Xamarin.Forms; - -namespace Contoso.Forms.Test -{ - public partial class Contoso.Forms.TestPage : ContentPage - { - public Contoso.Forms.TestPage () - { - InitializeComponent(); -} - } -} diff --git a/Tests/Contoso.Forms.Test/TestPage.xaml b/Tests/Contoso.Forms.Test/TestPage.xaml new file mode 100644 index 000000000..ddebf0fbf --- /dev/null +++ b/Tests/Contoso.Forms.Test/TestPage.xaml @@ -0,0 +1,8 @@ + + + + +