summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.iOS.UITests
diff options
context:
space:
mode:
authorRui Marinho <me@ruimarinho.net>2017-03-23 11:03:48 +0000
committerGitHub <noreply@github.com>2017-03-23 11:03:48 +0000
commit2be80a55a514a050ab5ab07a201d13c111f49f63 (patch)
treea9cc64903a830e4b754ae6eee3fcc2ebb3ba200d /Xamarin.Forms.Core.iOS.UITests
parent16fcac8cf52ab960e7354a52864b0a72aefdfc1f (diff)
downloadxamarin-forms-2be80a55a514a050ab5ab07a201d13c111f49f63.tar.gz
xamarin-forms-2be80a55a514a050ab5ab07a201d13c111f49f63.tar.bz2
xamarin-forms-2be80a55a514a050ab5ab07a201d13c111f49f63.zip
[UITests]Add Xamarin.Forms.Core.UITests.Shared (#711)
* [UITests]Add Xamarin.Forms.Core.UITests.Shared * fix * [UITests]Use shared UITest project on macOS * [UITests] Add correct platform queries * [Controls] Add missing Preserve
Diffstat (limited to 'Xamarin.Forms.Core.iOS.UITests')
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/BaseTestFixture.cs139
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/PlatformQueries.cs136
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Queries.cs138
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/BaseViewContainerRemote.cs340
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/EventViewContainerRemote.cs20
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/LayeredViewContainerRemote.cs25
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/RemoteFactory.cs56
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/StateViewContainerRemote.cs35
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Remotes/ViewContainerRemote.cs13
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ActionSheetUITests.cs167
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ActivityIndicatorUITests.cs67
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/AppearingUITests.cs72
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/AutomationIDUITests.cs76
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/BoxViewUITests.cs60
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ButtonUITests.cs180
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ContextActionsUITests.cs121
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/DatePickerUITests.cs55
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/DisplayAlertUITests.cs63
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/EditorUITests.cs55
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/EntryUITests.cs69
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/FrameUITests.cs60
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ImageUITests.cs63
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/LabelUITests.cs57
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-CellsUITests.cs284
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-UnevenListTests.cs38
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/PickerUITests.cs54
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ProgressBarUITests.cs56
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/RootGalleryUITests.cs95
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ScrollViewUITests.cs68
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/SearchBarUITests.cs54
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/SliderUITests.cs54
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/StepperUITests.cs55
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/SwitchUITests.cs54
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/TimePickerUITests.cs56
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ToolbarItemTests.cs151
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/ViewUITests.cs247
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Tests/WebViewUITests.cs101
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/UITestCategories.cs36
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/AppExtensions.cs35
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/Drag.cs173
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs114
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/Logger.cs71
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/NumericExtensions.cs126
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/ParsingUtils.cs89
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/UITestCustomExceptions.cs101
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/ViewInspector.cs349
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj47
47 files changed, 1 insertions, 4574 deletions
diff --git a/Xamarin.Forms.Core.iOS.UITests/BaseTestFixture.cs b/Xamarin.Forms.Core.iOS.UITests/BaseTestFixture.cs
deleted file mode 100644
index e6a38e40..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/BaseTestFixture.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using NUnit.Framework;
-using Xamarin.Forms.Controls;
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal abstract class BaseTestFixture
- {
- // TODO: Landscape tests
-
- public static IApp App { get; set; }
- public string PlatformViewType { get; protected set; }
- public static AppRect ScreenBounds { get; set; }
-
- [TestFixtureTearDown]
- protected virtual void FixtureTeardown()
- {
- }
-
- static int s_testsrun;
- const int ConsecutiveTestLimit = 10;
-
- // Until we get more of our memory leak issues worked out, restart the app
- // after a specified number of tests so we don't get bogged down in GC
- // (or booted by jetsam)
- public void EnsureMemory()
- {
- s_testsrun += 1;
-
- if (s_testsrun >= ConsecutiveTestLimit)
- {
- s_testsrun = 0;
-
- CoreUITestsSetup.LaunchApp();
-
- FixtureSetup();
- }
- }
-
- [SetUp]
- protected virtual void TestSetup()
- {
- EnsureMemory();
- }
-
- [TearDown]
- protected virtual void TestTearDown()
- {
- }
-
- protected abstract void NavigateToGallery();
-
-#pragma warning disable 618
- [TestFixtureSetUp]
-#pragma warning restore 618
- protected virtual void FixtureSetup()
- {
- ResetApp();
-
- int maxAttempts = 2;
- int attempts = 0;
-
- while (attempts < maxAttempts)
- {
- attempts += 1;
- try
- {
- NavigateToGallery();
- return;
- }
- catch (Exception ex)
- {
- var debugMessage = $"NavigateToGallery failed: {ex}";
-
- Debug.WriteLine(debugMessage);
- Console.WriteLine(debugMessage);
-
- if (attempts < maxAttempts)
- {
- // Something has failed and we're stuck in a place where we can't navigate
- // to the test. Usually this is because we're getting network/HTTP errors
- // communicating with the server on the device. So we'll try restarting the app.
- CoreUITestsSetup.LaunchApp();
- }
- else
- {
- // But if it's still not working after [maxAttempts], we've got assume this is a legit
- // problem that restarting won't fix
- throw;
- }
- }
- }
- }
-
- protected void ResetApp()
- {
-#if __IOS__
- App.Invoke("reset:", string.Empty);
-#endif
-#if __ANDROID__
- App.Invoke("Reset");
-#endif
- }
- }
-}
-
-#if UITEST
-namespace Xamarin.Forms.Core.UITests
-{
- using NUnit.Framework;
-
- [SetUpFixture]
- public class CoreUITestsSetup
- {
- [SetUp]
- public void RunBeforeAnyTests()
- {
- LaunchApp();
- }
-
- public static void LaunchApp()
- {
- BaseTestFixture.App = null;
- BaseTestFixture.App = AppSetup.Setup();
-
- BaseTestFixture.App.SetOrientationPortrait();
- BaseTestFixture.ScreenBounds = BaseTestFixture.App.RootViewRect();
- }
- }
-}
-#endif
diff --git a/Xamarin.Forms.Core.iOS.UITests/PlatformQueries.cs b/Xamarin.Forms.Core.iOS.UITests/PlatformQueries.cs
deleted file mode 100644
index 4ae2515c..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/PlatformQueries.cs
+++ /dev/null
@@ -1,136 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Xamarin.UITest.iOS;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class iOSLoaderIdentifier
- {
-
- }
-
- internal static class PlatformMethodQueries
- {
- public static readonly Dictionary<BindableProperty, Tuple<string[], bool>> PropertyPlatformMethodDictionary = new Dictionary<BindableProperty, Tuple<string[], bool>> {
- { ActivityIndicator.ColorProperty, Tuple.Create (new[] { "color" }, false) },
- { ActivityIndicator.IsRunningProperty, Tuple.Create (new[] { "isAnimating" }, false) },
- { Button.BorderRadiusProperty, Tuple.Create (new[] { "layer", "cornerRadius" }, false) },
- { Button.BorderWidthProperty, Tuple.Create (new[] { "layer", "borderWidth" }, false) },
- { Button.FontProperty, Tuple.Create (new[] { "titleLabel", "font" }, false) },
- { Button.TextProperty, Tuple.Create (new[] { "titleLabel", "text" }, false) },
- { Button.TextColorProperty, Tuple.Create (new[] { "titleLabel", "textColor" }, false) },
- { View.AnchorXProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- { View.AnchorYProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- { View.BackgroundColorProperty, Tuple.Create (new[] { "backgroundColor" }, false) },
- { View.IsEnabledProperty, Tuple.Create (new[] { "isEnabled" }, false) },
- { View.OpacityProperty, Tuple.Create (new [] { "alpha" }, true) },
- { View.RotationProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- { View.RotationXProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- { View.RotationYProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- { View.ScaleProperty, Tuple.Create (new[] { "layer", "transform" }, true) },
- };
- }
-
- internal static class PlatformViews
- {
- public static readonly string ActivityIndicator = "UIActivityIndicatorView";
- public static readonly string BoxView = "Xamarin_Forms_Platform_iOS_BoxRenderer";
- public static readonly string Button = "UIButton";
- public static readonly string DatePicker = "UITextField";
- public static readonly string Editor = "UITextView";
- public static readonly string Entry = "UITextField";
- public static readonly string Frame = "view:'Xamarin_Forms_Platform_iOS_FrameRenderer'";
- public static readonly string Image = "UIImageView";
- public static readonly string Label = "UILabel";
- public static readonly string ListView = "UITableView";
- public static readonly string OpenGLView = "GLKView";
- public static readonly string Picker = "UITextField";
- public static readonly string ProgressBar = "UIProgressView";
- public static readonly string SearchBar = "UISearchBar";
- public static readonly string Slider = "UISlider";
- public static readonly string Stepper = "UIStepper";
- public static readonly string Switch = "UISwitch";
- public static readonly string TableView = "UITableView";
- public static readonly string TimePicker = "UITextField";
- public static readonly string WebView = "UIWebView";
- }
-
- internal static class PlatformQueries
- {
- public static readonly Func<AppQuery, AppQuery> Root = q => q.Class ("UIWindow");
- public static readonly Func<AppQuery, AppQuery> RootPageListView = q => q.Class ("Xamarin_Forms_Platform_iOS_ListViewRenderer index:0");
- public static readonly Func<AppQuery, AppQuery> GalleryListView = q => q.Class ("Xamarin_Forms_Platform_iOS_ListViewRenderer index:1");
- public static readonly Func<AppQuery, AppQuery> PageWithoutNavigationBar = q => q.Raw ("*").Index (7);
- public static readonly Func<AppQuery, AppQuery> NavigationBarBackButton = q => q.Class ("UINavigationItemButtonView");
-
- // Controls
- public static readonly Func<AppQuery, AppQuery> ActivityIndicator = q => q.ClassFull (PlatformViews.ActivityIndicator);
- public static readonly Func<AppQuery, AppQuery> Button = q => q.ClassFull (PlatformViews.Button);
-
- public static Func<AppQuery, AppQuery> EntryWithPlaceholder (string text) {
- return q => q.Raw (string.Format ("TextField placeholder:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> EntryWithText (string text) {
- return q => q.Raw (string.Format ("TextField text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> EntryCellWithPlaceholder (string text) {
- return q => q.Raw (string.Format ("UITextFieldLabel text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> EntryCellWithText (string text) {
- return q => q.Raw (string.Format ("TextField text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> EditorsWithText (string text) {
- return q => q.Raw (string.Format ("TextView text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> EntryWithIndex (int index) {
- return q => q.Raw (string.Format ("TextField index:{0}", index));
- }
-
- public static Func<AppQuery, AppQuery> SearchBarWithIndex (int index) {
- return q => q.Raw (string.Format ("SearchBar index:{0}", index));
- }
-
- public static Func<AppQuery, AppQuery> LabelWithIndex (int index) {
- return q => q.Raw (string.Format ("Label index:{0}", index));
- }
-
- public static Func<AppQuery, AppQuery> LabelWithText (string text) {
- return q => q.Raw (string.Format ("Label text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> LabelWithId (string id) {
- return q => q.Raw (string.Format ("Label id:'{0}'", id));
- }
-
- public static Func<AppQuery, AppQuery> PickerEntryWithIndex (int index) {
- return q => q.Raw (string.Format ("TextField index:{0}", index));
- }
-
- public static Func<AppQuery, AppQuery> PickerEntryWithPlaceholder (string placeholder) {
- return q => q.Raw (string.Format ("TextField placeholder:'{0}'", placeholder));
- }
-
- public static Func<AppQuery, AppQuery> PickerEntryWithText (string text) {
- return q => q.Raw (string.Format ("TextField text:'{0}'", text));
- }
-
- public static Func<AppQuery, AppQuery> SwitchWithIndex (int index) {
- return q => q.Raw (string.Format ("Switch index:{0}", index));
- }
-
- public static Func<AppQuery, AppQuery> StepperWithIndex (int index) {
- return q => q.Raw (string.Format ("Stepper index:{0}", index));
- }
-
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Queries.cs b/Xamarin.Forms.Core.iOS.UITests/Queries.cs
deleted file mode 100644
index e1c00ee9..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Queries.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class GalleryQueries
- {
- public const string AutomationIDGallery = "* marked:'AutomationID Gallery'";
- public const string ActivityIndicatorGallery = "* marked:'ActivityIndicator Gallery'";
- public const string BoxViewGallery = "* marked:'BoxView Gallery'";
- public const string ButtonGallery = "* marked:'Button Gallery'";
- public const string ContextActionsListGallery = "* marked:'ContextActions List Gallery'";
- public const string ContextActionsTableGallery = "* marked:'ContextActions Table Gallery'";
- public const string DatePickerGallery = "* marked:'DatePicker Gallery'";
- public const string EditorGallery = "* marked:'Editor Gallery'";
- public const string EntryGallery = "* marked:'Entry Gallery'";
- public const string FrameGallery = "* marked:'Frame Gallery'";
- public const string ImageGallery = "* marked:'Image Gallery'";
- public const string LabelGallery = "* marked:'Label Gallery'";
- public const string ListViewGallery = "* marked:'ListView Gallery'";
- public const string OpenGLViewGallery = "* marked:'OpenGLView Gallery'";
- public const string PickerGallery = "* marked:'Picker Gallery'";
- public const string ProgressBarGallery = "* marked:'ProgressBar Gallery'";
- public const string ScrollViewGallery = "* marked:'ScrollView Gallery'";
- public const string ScrollViewGalleryHorizontal = "* marked:'ScrollView Gallery Horizontal'";
- public const string SearchBarGallery = "* marked:'SearchBar Gallery'";
- public const string SliderGallery = "* marked:'Slider Gallery'";
- public const string StepperGallery = "* marked:'Stepper Gallery'";
- public const string SwitchGallery = "* marked:'Switch Gallery'";
- public const string TableViewGallery = "* marked:'TableView Gallery'";
- public const string TimePickerGallery = "* marked:'TimePicker Gallery'";
- public const string WebViewGallery = "* marked:'WebView Gallery'";
- public const string ToolbarItemGallery = "* marked:'ToolbarItems Gallery'";
- public const string DisplayAlertGallery = "* marked:'DisplayAlert Gallery'";
- public const string ActionSheetGallery = "* marked:'ActionSheet Gallery'";
- public const string RootPagesGallery = "* marked:'RootPages Gallery'";
-
- public const string AppearingGallery = "* marked:'Appearing Gallery'";
-
- // Legacy galleries
- public const string CellsGalleryLegacy = "* marked:'Cells Gallery - Legacy'";
- public const string UnevenListGalleryLegacy = "* marked:'UnevenList Gallery - Legacy'";
- }
-
- internal static class Queries
- {
- #region Shared queries
- public static Func<AppQuery, AppQuery> RootPageListView = PlatformQueries.RootPageListView;
- public static Func<AppQuery, AppQuery> GalleryListView = PlatformQueries.GalleryListView;
-
- public static Func<AppQuery, AppQuery> ButtonWithText (string text)
- {
- return q => q.Button (text);
- }
-
- public static Func<AppQuery, AppQuery> ElementWithText (string text)
- {
- return q => q.Marked (text);
- }
-
- public static Func<AppQuery, AppQuery> All ()
- {
- return q => q.All ();
- }
-
- #endregion
-
- #region Platform queries
-
- public static Func<AppQuery, AppQuery> NavigationBarBackButton ()
- {
- return PlatformQueries.NavigationBarBackButton;
- }
-
- public static Func<AppQuery, AppQuery> PageWithoutNavigationBar ()
- {
- return PlatformQueries.PageWithoutNavigationBar;
- }
-
- public static Func<AppQuery, AppQuery> Root ()
- {
- return PlatformQueries.Root;
- }
-
- public static Func<AppQuery, AppQuery> EntryCellWithPlaceholder (string placeholder)
- {
- return PlatformQueries.EntryCellWithPlaceholder (placeholder);
- }
-
- public static Func<AppQuery, AppQuery> EntryCellWithText (string placeholder)
- {
- return PlatformQueries.EntryCellWithText (placeholder);
- }
-
- #endregion
-
- }
-
- internal static class Views
- {
- public static readonly string ActivityIndicator = PlatformViews.ActivityIndicator;
- public static readonly string BoxView = PlatformViews.BoxView;
- public static readonly string Button = PlatformViews.Button;
- public static readonly string DatePicker = PlatformViews.DatePicker;
- public static readonly string Editor = PlatformViews.Editor;
- public static readonly string Entry = PlatformViews.Entry;
- public static readonly string Frame = PlatformViews.Frame;
- public static readonly string Image = PlatformViews.Image;
- public static readonly string Label = PlatformViews.Label;
- public static readonly string ListView = PlatformViews.ListView;
- public static readonly string OpenGLView = PlatformViews.OpenGLView;
- public static readonly string Picker = PlatformViews.Picker;
- public static readonly string ProgressBar = PlatformViews.ProgressBar;
- public static readonly string SearchBar = PlatformViews.SearchBar;
- public static readonly string Slider = PlatformViews.Slider;
- public static readonly string Stepper = PlatformViews.Stepper;
- public static readonly string Switch = PlatformViews.Switch;
- public static readonly string TableView = PlatformViews.TableView;
- public static readonly string TimePicker = PlatformViews.TimePicker;
- public static readonly string WebView = PlatformViews.WebView;
- }
-
- internal static class Rects
- {
- public static AppRect RootViewRect (this IApp app)
- {
- return app.Query (q => q.Raw ("* index:0"))[0].Rect;
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/BaseViewContainerRemote.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/BaseViewContainerRemote.cs
deleted file mode 100644
index b0fc8f79..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/BaseViewContainerRemote.cs
+++ /dev/null
@@ -1,340 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Runtime.Remoting.Messaging;
-using System.Security.Permissions;
-
-using NUnit.Framework;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using System.Globalization;
-
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal abstract class BaseViewContainerRemote
- {
- //bool requiresDismissal;
-
- protected IApp App { get; private set; }
-
- public string ViewQuery { get; private set; }
-
- public string PlatformViewType { get; set; }
-
- public string ContainerQuery { get; private set; }
- public string ContainerDescendents { get; private set; }
-
- public string EventLabelQuery { get; set; }
-
- public string StateLabelQuery { get; private set; }
- public string StateButtonQuery { get; private set; }
-
- public string LayeredHiddenButtonQuery { get; private set; }
- public string LayeredLabelQuery { get; private set; }
-
- protected BaseViewContainerRemote (IApp app, Enum formsType, string platformViewType)
- {
- App = app;
- PlatformViewType = platformViewType;
-
- // Currently tests are failing because the ViewInitilized is setting the renderer and control, fix and then remove index one
-
- ContainerQuery = string.Format("* marked:'{0}Container'", formsType);
- ContainerDescendents = string.Format("* marked:'{0}Container' child *", formsType);
-
- ViewQuery = string.Format ("* marked:'{0}VisualElement'", formsType);
-
- EventLabelQuery = string.Format ("* marked:'{0}EventLabel'", formsType);
- StateLabelQuery = string.Format ("* marked:'{0}StateLabel'", formsType);
- StateButtonQuery = string.Format ("* marked:'{0}StateButton'", formsType);
- LayeredHiddenButtonQuery = string.Format ("* marked:'{0}LayeredHiddenButton'", formsType);
- LayeredLabelQuery = string.Format ("* marked:'{0}LayeredLabel'", formsType);
-
- if (platformViewType == PlatformViews.DatePicker) {
- //requiresDismissal = true;
- }
- }
-
- public virtual void GoTo ([CallerMemberName] string callerMemberName = "")
- {
- var scrollBounds = App.Query (Queries.PageWithoutNavigationBar ()).First ().Rect;
-
- // Scroll using gutter to the right of view, avoid scrolling inside of WebView
- if (PlatformViewType == PlatformViews.WebView) {
- scrollBounds = new AppRect {
- X = scrollBounds.Width - 20,
- CenterX = scrollBounds.Width - 10,
- Y = scrollBounds.Y,
- CenterY = scrollBounds.CenterY,
- Width = 20,
- Height = scrollBounds.Height,
- };
- }
-
-
- while (true)
- {
-#if __MACOS__
- var result = App.Query(o => o.Raw(ViewQuery));
-#else
- var result = App.Query (o => o.Raw(ContainerQuery));
-#endif
-
- if (result.Any())
- break;
- App.Tap(o => o.Raw("* marked:'MoveNextButton'"));
- }
-
- //Assert.True (App.ScrollForElement (
- // ContainerQuery, new Drag (scrollBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium)
- //), "Failed to find element in: " + callerMemberName);
-
- App.Screenshot ("Go to element");
- }
-
- public void TapView ()
- {
- App.Tap (q => q.Raw (ViewQuery));
- }
-
- public void DismissPopOver ()
- {
- App.Screenshot ("About to dismiss pop over");
- App.Tap (q => q.Button ("Done"));
- App.Screenshot ("Pop over dismissed");
- }
-
- public AppResult GetView ()
- {
- return App.Query (q => q.Raw (ViewQuery)).First ();
- }
-
- public AppResult[] GetViews ()
- {
- return App.Query (q => q.Raw (ViewQuery));
- }
-
- public AppResult[] GetContainerDescendants ()
- {
- return App.Query (q => q.Raw (ContainerDescendents));
- }
-
- public T GetProperty<T> (BindableProperty formProperty)
- {
- Tuple<string[], bool> property = formProperty.GetPlatformPropertyQuery ();
- string[] propertyPath = property.Item1;
- bool isOnParentRenderer = property.Item2;
-
- var query = ViewQuery;
- if (isOnParentRenderer &&
- PlatformViewType != PlatformViews.BoxView &&
- PlatformViewType != PlatformViews.Frame) {
- query = query + " parent * index:0";
- }
-
- object prop = null;
- bool found = false;
-
- bool isEdgeCase = false;
-#if __ANDROID__
- isEdgeCase = (formProperty == View.ScaleProperty);
-#endif
- if (!isEdgeCase)
- {
- found =
- MaybeGetProperty<string>(App, query, propertyPath, out prop) ||
- MaybeGetProperty<float>(App, query, propertyPath, out prop) ||
- MaybeGetProperty<bool>(App, query, propertyPath, out prop) ||
- MaybeGetProperty<object>(App, query, propertyPath, out prop);
- }
-#if __MACOS__
- if (!found)
- {
-
- if (formProperty == View.IsEnabledProperty)
- {
- var view = App.Query((arg) => arg.Raw(query)).FirstOrDefault();
- found = view != null;
- prop = view.Enabled;
- }
-
- if (formProperty == Button.TextProperty)
- {
- var view = App.Query((arg) => arg.Raw(query)).FirstOrDefault();
- found = view != null;
- prop = view.Text;
- }
- }
-#endif
-
-#if __ANDROID__
- if (formProperty == View.ScaleProperty) {
- var matrix = new Matrix ();
- matrix.M00 = App.Query (q => q.Raw (query).Invoke (propertyPath[0]).Value<float> ()).First ();
- matrix.M11 = App.Query (q => q.Raw (query).Invoke (propertyPath[1]).Value<float> ()).First ();
- matrix.M22 = 0.5f;
- matrix.M33 = 1.0f;
- return (T)((object)matrix);
- }
-#endif
-
- if (!found || prop == null) {
- throw new NullReferenceException ("null property");
- }
-
- if (prop.GetType () == typeof(T))
- return (T)prop;
-
- if (prop.GetType () == typeof(string) && typeof(T) == typeof(Matrix)) {
- Matrix matrix = ParsingUtils.ParseCATransform3D ((string)prop);
- return (T)((object)matrix);
- }
-
- if (typeof(T) == typeof(Color)) {
-#if __IOS__
- Color color = ParsingUtils.ParseUIColor ((string)prop);
- return (T)((object)color);
-#else
- uint intColor = (uint)((float)prop);
- Color color = Color.FromUint (intColor);
- return (T)((object)color);
-#endif
- }
-
-#if __IOS__
- if (prop.GetType () == typeof (string) && typeof(T) == typeof(Font)) {
- Font font = ParsingUtils.ParseUIFont ((string)prop);
- return (T)((object)font);
- }
-#endif
-
- T result = default(T);
-
- var stringToBoolConverter = new StringToBoolConverter ();
- var floatToBoolConverter = new FloatToBoolConverter ();
-
- if (stringToBoolConverter.CanConvertTo (prop, typeof(bool))) {
- result = (T)stringToBoolConverter.ConvertTo (prop, typeof(bool));
- } else if (floatToBoolConverter.CanConvertTo (prop, typeof(bool))) {
- result = (T)floatToBoolConverter.ConvertTo (prop, typeof(bool));
- }
-
- return result;
- }
-
- static bool MaybeGetProperty<T>(IApp app, string query, string[] propertyPath, out object result)
- {
-
- try {
- switch (propertyPath.Length){
- case 1:
- result = app.Query (q => q.Raw (query).Invoke (propertyPath[0]).Value<T> ()).First ();
- break;
- case 2:
- result = app.Query (q => q.Raw (query).Invoke (propertyPath[0]).Invoke (propertyPath[1]).Value<T> ()).First ();
- break;
- case 3:
- result = app.Query (q => q.Raw (query).Invoke (propertyPath[0]).Invoke (propertyPath[1]).Invoke (propertyPath[2]).Value<T> ()).First ();
- break;
- case 4:
- result = app.Query (q => q.Raw (query).Invoke (propertyPath[0]).Invoke (propertyPath[1]).Invoke (propertyPath[2]).Invoke(propertyPath[3]).Value<T> ()).First ();
- break;
- default:
- result = null;
- return false;
- }
- }
- catch {
- result = null;
- return false;
- }
-
- return true;
- }
-
- }
-
- internal class StringToBoolConverter : TypeConverter
- {
- public override bool CanConvertTo (object source, Type targetType)
- {
- if (targetType != typeof(bool) || !(source is string))
- return false;
-
- var str = (string)source;
- str = str.ToLowerInvariant ();
-
- switch (str) {
- case "0":
- case "1":
- case "false":
- case "true":
- return true;
- default:
- return false;
- }
- }
-
- public override object ConvertTo (object source, Type targetType)
- {
- var str = (string)source;
- str = str.ToLowerInvariant();
-
- switch (str)
- {
- case "1":
- case "true":
- return true;
- default:
- return false;
- }
- }
- }
-
- internal class FloatToBoolConverter : TypeConverter
- {
- public override bool CanConvertTo (object source, Type targetType)
- {
- if (targetType != typeof(bool) || !(source is float))
- return false;
-
- var flt = (float)source;
- var epsilon = 0.0001;
- if (Math.Abs (flt - 1.0f) < epsilon || Math.Abs (flt - 0.0f) < epsilon)
- return true;
- else
- return false;
- }
-
- public override object ConvertTo (object source, Type targetType)
- {
- var flt = (float)source;
- var epsilon = 0.0001;
- if (Math.Abs (flt - 1.0f) < epsilon)
- return true;
- else
- return false;
- }
- }
-
- internal abstract class TypeConverter
- {
- public abstract bool CanConvertTo (object source, Type targetType);
-
- public abstract object ConvertTo (object source, Type targetType);
- }
-
- internal static class PlatformMethods
- {
- public static Tuple<string[], bool> GetPlatformPropertyQuery (this BindableProperty bindableProperty)
- {
- return PlatformMethodQueries.PropertyPlatformMethodDictionary[bindableProperty];
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/EventViewContainerRemote.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/EventViewContainerRemote.cs
deleted file mode 100644
index d603974d..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/EventViewContainerRemote.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Linq;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal sealed class EventViewContainerRemote : BaseViewContainerRemote
- {
- public EventViewContainerRemote (IApp app, Enum formsType, string platformViewType)
- : base (app, formsType, platformViewType) { }
-
- public AppResult GetEventLabel ()
- {
- App.WaitForElement (q => q.Raw (EventLabelQuery));
- return App.Query (q => q.Raw (EventLabelQuery)).First ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/LayeredViewContainerRemote.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/LayeredViewContainerRemote.cs
deleted file mode 100644
index 6f6c1071..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/LayeredViewContainerRemote.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Linq;
-using System.Security.Cryptography.X509Certificates;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal sealed class LayeredViewContainerRemote : BaseViewContainerRemote
- {
- public LayeredViewContainerRemote (IApp app, Enum formsType, string platformViewType)
- : base (app, formsType, platformViewType) {}
-
- public AppResult GetLayeredLabel ()
- {
- return App.Query (q => q.Raw (LayeredLabelQuery)).First ();
- }
-
- public void TapHiddenButton ()
- {
- App.Tap (q => q.Raw (LayeredHiddenButtonQuery));
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/RemoteFactory.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/RemoteFactory.cs
deleted file mode 100644
index ec9757ef..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/RemoteFactory.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
-
-// Potential cleanup of Raw Queries
-// public void MyTest(IApp app)
-// {
-// var viewName = "myView";
-//
-// app.Query (x => x.Marked (viewName + " View").Parent ().Index (0).Sibling ().Index (1).Child (0).Child (0));
-//
-// app.Query (x => x.Marked (viewName + " View").Parent (0).Sibling (1).Child (0).Child (0));
-//
-// app.Query (x => x.LayeredHiddenButton ("mine").LayeredHiddenButton ("yours"));
-//
-// app.Query (x => x.LayeredHiddenButton (viewName).Parentx(4));
-//
-// app.ForAndroid (x => {
-// x.Back();
-// });
-// }
-
-
-// Potential cleanup of Raw Queries
-// make public or reflection will not pick up in REPL
-// internal static class Exts
-// {
-// public static void ForAndroid(this IApp app, Action<AndroidApp> action)
-// {
-// if (app is AndroidApp)
-// {
-// action (app as AndroidApp);
-// }
-// }
-//
-// public static AppQuery LayeredHiddenButton(this AppQuery query, string viewName)
-// {
-// if(query.QueryPlatform == QueryPlatform.Android)
-// {
-// return query.Marked (viewName + " Android View").Parent (0).Sibling (1).Child (0).Child (0);
-//
-// }
-// return query.Marked (viewName + " iOS View").Parent (0).Sibling (1).Child (0).Child (0);
-// }
-//
-// public static AppQuery Parentx(this AppQuery query, int index)
-// {
-// return query.Parent ().Index (index);
-// }
-// }
-
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/StateViewContainerRemote.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/StateViewContainerRemote.cs
deleted file mode 100644
index 2d7a1172..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/StateViewContainerRemote.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Linq.Expressions;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-using NUnit.Framework;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal sealed class StateViewContainerRemote : BaseViewContainerRemote
- {
- public StateViewContainerRemote (IApp app, Enum formsType, string platformViewType)
- : base(app, formsType, platformViewType) { }
-
- public void TapStateButton ()
- {
- App.Screenshot ("Before state change");
- App.Tap (q => q.Raw (StateButtonQuery));
- App.Screenshot ("After state change");
- }
-
- public AppResult GetStateLabel ()
- {
- return App.Query (q => q.Raw (StateLabelQuery)).First ();
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Remotes/ViewContainerRemote.cs b/Xamarin.Forms.Core.iOS.UITests/Remotes/ViewContainerRemote.cs
deleted file mode 100644
index f19d3e6b..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Remotes/ViewContainerRemote.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal sealed class ViewContainerRemote : BaseViewContainerRemote
- {
- public ViewContainerRemote (IApp app, Enum formsType, string platformViewType)
- : base (app, formsType, platformViewType) { }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ActionSheetUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ActionSheetUITests.cs
deleted file mode 100644
index 88d280e5..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ActionSheetUITests.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.ActionSheet)]
- internal class ActionSheetUITests : BaseTestFixture
- {
- AppRect screenSize;
-
- protected override void NavigateToGallery()
- {
- App.NavigateToGallery(GalleryQueries.ActionSheetGallery);
- }
-
- static void CheckExtras()
- {
- App.WaitForElement(c => c.Marked("Extra One"));
- App.WaitForElement(c => c.Marked("Extra Six"));
- }
-
- protected override void TestSetup()
- {
- base.TestSetup();
-#if !__MACOS__
- screenSize = App.Query(q => q.Marked("ActionSheetPage"))[0].Rect;
-#endif
- }
-
- [Test]
- public void TestDisplayActionSheet()
- {
- ScrollAndTap("ActionSheet Extras");
- CheckExtras();
- App.Tap(c => c.Marked("Extra One"));
- }
-
- [Test]
- public void TestDisplayActionSheetCancel()
- {
- ScrollAndTap("ActionSheet Cancel");
- // iPad does not have a Cancel button for action sheet
- if (App.Query(q => q.Marked("Cancel")).Length > 0)
- App.Tap(c => c.Marked("Cancel"));
- else
- App.TapCoordinates(20, screenSize.Height / 2);
- }
-
- [Test]
- public void TestDisplayActionSheetCancelDestruction()
- {
- ScrollAndTap("ActionSheet Cancel Destruction");
- App.WaitForNoElement(c => c.Marked("Extra One"));
- App.WaitForElement(c => c.Marked("Destruction"));
- if (App.Query(q => q.Marked("Cancel")).Length > 0)
- App.Tap(c => c.Marked("Cancel"));
- else
- App.TapCoordinates(20, screenSize.Height / 2);
- }
-
- [Test]
- public void TestDisplayActionSheetCancelExtras()
- {
- ScrollAndTap("ActionSheet Cancel Extras");
- CheckExtras();
- if (App.Query(q => q.Marked("Cancel")).Length > 0)
- App.Tap(c => c.Marked("Cancel"));
- else
- App.TapCoordinates(20, screenSize.Height / 2);
- }
-
- [Test]
- public void TestDisplayActionSheetCancelExtrasDestruction()
- {
- ScrollAndTap("ActionSheet Cancel Destruction Extras");
- CheckExtras();
- App.WaitForElement(c => c.Marked("Destruction"));
- if (App.Query(q => q.Marked("Cancel")).Length > 0)
- App.Tap(c => c.Marked("Cancel"));
- else
- App.TapCoordinates(20, screenSize.Height / 2);
- }
-
- [Test]
- public void TestDisplayActionSheetDestruction()
- {
- ScrollAndTap("ActionSheet Destruction");
- App.WaitForNoElement(c => c.Marked("Extra One"));
- App.Tap(c => c.Marked("Destruction"));
- }
-
- [Test]
- public void TestDisplayActionSheetDestructionExtras()
- {
- ScrollAndTap("ActionSheet Destruction Extras");
- CheckExtras();
- App.Tap(c => c.Marked("Extra One"));
- }
-
- [Test]
- public void TestDisplayActionSheetTitleCancel()
- {
- ScrollAndTap("ActionSheet Title Cancel");
- App.WaitForElement(c => c.Marked("Title"));
- if (App.Query(q => q.Marked("Cancel")).Length > 0)
- App.Tap(c => c.Marked("Cancel"));
- else
- App.TapCoordinates(20, screenSize.Height / 2);
- }
-
- [Test]
- public void TestDisplayActionSheetTitleCancelDestruction()
- {
- ScrollAndTap("ActionSheet Title Cancel Destruction");
- App.WaitForElement(c => c.Marked("Title"));
- App.WaitForNoElement(c => c.Marked("Extra One"));
- App.Tap(c => c.Marked("Destruction"));
- }
-
- [Test]
- public void TestDisplayActionSheetTitleCancelDestructionExtras()
- {
- ScrollAndTap("ActionSheet Title Cancel Destruction Extras");
- App.WaitForElement(c => c.Marked("Title"));
- CheckExtras();
- App.Tap(c => c.Marked("Destruction"));
- }
-
- [Test]
- public void TestDisplayActionSheetTitleDestruction()
- {
- ScrollAndTap("ActionSheet Title Destruction");
- App.WaitForElement(c => c.Marked("Title"));
- App.WaitForNoElement(c => c.Marked("Extra One"));
- App.Tap(c => c.Marked("Destruction"));
- }
-
- [Test]
- public void TestDisplayActionSheetTitleDestructionExtras()
- {
- ScrollAndTap("ActionSheet Title Destruction Extras");
- App.WaitForElement(c => c.Marked("Title"));
- CheckExtras();
- App.Tap(c => c.Marked("Destruction"));
- }
-
-
- [Test]
- public void TestDisplayActionSheetTitleExtras()
- {
- ScrollAndTap("ActionSheet Title Extras");
- CheckExtras();
- App.Tap(c => c.Marked("Extra One"));
- }
-
- void ScrollAndTap(string actionSheet)
- {
-#if !__MACOS__
- App.ScrollForElement(string.Format("* text:'{0}'", actionSheet), new Drag(App.Query(q => q.Marked("ActionSheetPage"))[0].Rect, Drag.Direction.BottomToTop, Drag.DragLength.Long));
-#endif
- App.Tap(q => q.Raw(string.Format("* text:'{0}'", actionSheet)));
- }
-
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ActivityIndicatorUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ActivityIndicatorUITests.cs
deleted file mode 100644
index 86d0d750..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ActivityIndicatorUITests.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System;
-using System.IO;
-using System.Linq;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.ActivityIndicator)]
- internal class ActivityIndicatorUITests : _ViewUITests
- {
- public ActivityIndicatorUITests ()
- {
- PlatformViewType = Views.ActivityIndicator;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ActivityIndicatorGallery);
- }
-
- // View tests
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- public override void _GestureRecognizers ()
- {
- // TODO Can implement this
- var remote = new ViewContainerRemote (App, Test.View.GestureRecognizers, PlatformViewType);
- remote.GoTo ();
- }
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // ActivityIndicator tests
- [Test]
- [UiTest (typeof(ActivityIndicator), "IsRunning")]
- public void IsRunning ()
- {
- var remote = new ViewContainerRemote(App, Test.ActivityIndicator.IsRunning, PlatformViewType);
- remote.GoTo();
-#if __MACOS__
- Assert.Inconclusive("Not tested yet");
-#else
- var isRunning = remote.GetProperty<bool> (ActivityIndicator.IsRunningProperty);
- Assert.IsTrue (isRunning);
-#endif
- }
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
-
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/AppearingUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/AppearingUITests.cs
deleted file mode 100644
index 568663ab..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/AppearingUITests.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using System;
-using NUnit.Framework;
-
-namespace Xamarin.Forms.Core.UITests
-{
-#if __MACOS__
- [Ignore("Not tested on the MAC")]
-#endif
- [Category(UITestCategories.LifeCycle)]
- internal class AppearingUITests : BaseTestFixture
- {
- public AppearingUITests()
- {
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.AppearingGallery);
- }
-
- protected override void TestTearDown()
- {
- base.TestTearDown();
- ResetApp();
- NavigateToGallery();
- }
-
- [Test]
- public void AppearingNavigationPage ()
- {
- App.Tap (t => t.Marked ("NavAppearingPage"));
- App.WaitForElement ("Appearing NavAppearingPage");
- App.WaitForElement ("Appearing Page 1");
- App.Tap (t => t.Marked ("Push new Page"));
- App.WaitForElement ("Disappearing Page 1");
- App.WaitForElement ("Appearing Page 2");
- App.Tap (t => t.Marked ("Change Main Page"));
- App.WaitForElement ("Disappearing Page 2");
- App.WaitForElement ("Disappearing NavAppearingPage");
- App.WaitForElement ("Appearing Page 3");
- }
-
-
- [Test]
- public void AppearingCarouselPage ()
- {
- App.Tap (t => t.Marked ("CarouselAppearingPage"));
- App.WaitForElement ("Appearing CarouselAppearingPage");
- App.WaitForElement ("Appearing Page 1");
-
- }
-
- [Test]
- public void AppearingTabbedPage ()
- {
- App.Tap (t => t.Marked ("TabbedAppearingPage"));
- App.WaitForElement ("Appearing TabbedAppearingPage");
- App.WaitForElement ("Appearing Page 1");
-
- }
-
- [Test]
- public void AppearingMasterDetailPage ()
- {
- App.Tap (t => t.Marked ("MasterAppearingPage"));
- App.WaitForElement ("Appearing MasterAppearingPage");
- App.WaitForElement ("Appearing Page 1");
-
- }
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/AutomationIDUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/AutomationIDUITests.cs
deleted file mode 100644
index 9b814a92..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/AutomationIDUITests.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-using System;
-using System.Threading;
-using Xamarin.UITest.Queries;
-using System.Threading.Tasks;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.AutomationId)]
- internal class AutomationIDUITests : BaseTestFixture
- {
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.AutomationIDGallery);
- }
-
- [Test]
- public void Test1 ()
- {
- App.WaitForElement(c => c.Marked("btnTest1"));
- App.Tap (c => c.Marked ("btnTest1"));
- App.WaitForElement (c => c.Marked ("stckMain"));
- App.WaitForElement (c => c.Marked ("actHello"));
- App.WaitForElement (c => c.Marked ("bxvHello"));
- App.Tap (c => c.Marked ("btnHello"));
- App.WaitForElement (c => c.Marked ("dtPicker"));
- App.WaitForElement (c => c.Marked ("tPicker"));
-
- var label = App.Query ("lblHello") [0];
- Assert.AreEqual (label.Text, "Hello Label");
-
- var editor = App.Query ("editorHello") [0];
- Assert.AreEqual (editor.Text, "Hello Editor");
-
- var entry = App.Query ("entryHello") [0];
- Assert.AreEqual (entry.Text, "Hello Entry");
-
- App.Tap (c => c.Marked ("popModal"));
- }
-
-
- [Test]
- public async void Test2()
- {
- await Task.Delay(1000);
- App.WaitForElement(c => c.Marked("btnTest2"));
- App.Tap (c => c.Marked ("btnTest2"));
- App.WaitForElement (c => c.Marked ("imgHello"));
- App.WaitForElement (c => c.Marked ("lstView"));
- App.WaitForElement (c => c.Marked ("pickerHello"));
- App.WaitForElement (c => c.Marked ("progressHello"));
- App.ScrollDownTo (c => c.Marked ("progressHello"));
- App.WaitForElement (c => c.Marked ("srbHello"));
- App.WaitForElement (c => c.Marked ("sliHello"));
- App.WaitForElement (c => c.Marked ("stepperHello"));
- App.WaitForElement (c => c.Marked ("switchHello"));
- //App.WaitForElement (c => c.Marked ("webviewHello"));
- App.Tap (c => c.Marked ("popModal"));
- }
-
- [Test]
- [Ignore("only works on ios")]
- public void TestToolbarItem ()
- {
- App.Tap (c => c.Marked ("tbItemHello"));
- App.WaitForElement (x => x.Marked ("Hello"));
- App.Tap (c => c.Marked ("ok"));
- App.Tap (c => c.Marked ("tbItemHello2"));
- App.WaitForElement (x => x.Marked ("Hello2"));
- App.Tap (c => c.Marked ("ok"));
- }
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/BoxViewUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/BoxViewUITests.cs
deleted file mode 100644
index 6def5ed0..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/BoxViewUITests.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
-#if __MACOS__
- [Ignore("Not tested on the MAC")]
-#endif
- [Category(UITestCategories.BoxView)]
- internal class BoxViewUITests : _ViewUITests
- {
- public BoxViewUITests ()
- {
- PlatformViewType = Views.BoxView;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.BoxViewGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ButtonUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ButtonUITests.cs
deleted file mode 100644
index 89994a98..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ButtonUITests.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Button)]
- internal class ButtonUITests : _ViewUITests
- {
- public ButtonUITests ()
- {
- PlatformViewType = Views.Button;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ButtonGallery);
- }
-
- // View Tests
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // Button Tests
- [Test]
- [UiTest (typeof(Button),"BorderColor")]
- [UiTestBroken (BrokenReason.CalabashAndroidUnsupported, "Figure out how to get Android Drawables")]
- [UiTestBroken (BrokenReason.CalabashiOSUnsupported, "iOS nil result")]
- public void BorderColor ()
- {
- //TODO iOS
- var remote = new ViewContainerRemote (App, Test.Button.BorderColor, PlatformViewType);
- remote.GoTo ();
-
- }
-
- [Test]
- [UiTest (typeof (Button), "BorderRadius")]
- [UiTestBroken (BrokenReason.CalabashAndroidUnsupported, "Figure out how to get Android Drawables")]
- public void BorderRadius ()
- {
- var remote = new ViewContainerRemote (App, Test.Button.BorderRadius, PlatformViewType);
- remote.GoTo ();
-
-#if __IOS__
- var borderRadius = remote.GetProperty<float> (Button.BorderRadiusProperty);
- Assert.AreEqual (20.0f, borderRadius);
-#endif
-
- }
-
- [Test]
- [UiTest (typeof (Button), "BorderWidth")]
- [UiTestBroken (BrokenReason.CalabashAndroidUnsupported, "Figure out how to get Android Drawables")]
- public void BorderWidth ()
- {
- var remote = new ViewContainerRemote (App, Test.Button.BorderWidth, PlatformViewType);
- remote.GoTo ();
-
-#if __IOS__
- var borderWidth = remote.GetProperty<float> (Button.BorderWidthProperty);
- Assert.AreEqual (15.0f, borderWidth);
-#endif
-
- }
-
- [Test]
- [UiTest (typeof (Button), "Clicked")]
- public void Clicked ()
- {
- var remote = new EventViewContainerRemote (App, Test.Button.Clicked, PlatformViewType);
- remote.GoTo ();
-
- var textBeforeClick = remote.GetEventLabel ().Text;
- Assert.AreEqual ("Event: Clicked (none)", textBeforeClick);
-
- // Click Button
- remote.TapView ();
-
- var textAfterClick = remote.GetEventLabel ().Text;
- Assert.AreEqual ("Event: Clicked (fired 1)", textAfterClick);
- }
-
- [Test]
- [UiTest (typeof (Button), "Command")]
- public void Command ()
- {
- var remote = new ViewContainerRemote (App, Test.Button.Command, PlatformViewType);
- remote.GoTo ();
-
- remote.TapView ();
-
- App.WaitForElement (q => q.Marked ("Hello Command"));
- App.Tap (q => q.Marked ("Destroy"));
- }
-
- [Test]
- [UiTest (typeof (Button), "Font")]
- public void Font ()
- {
- //TODO iOS
- var remote = new ViewContainerRemote (App, Test.Button.Font, PlatformViewType);
- remote.GoTo ();
-
-#if __ANDROID__
- var isBold = remote.GetProperty<bool> (Button.FontProperty);
- Assert.True (isBold);
-#elif __MACOS__
- Assert.Inconclusive("needs testing");
-#else
- var font = remote.GetProperty<Font> (Button.FontProperty);
- Assert.True (font.FontAttributes.HasFlag (FontAttributes.Bold));
-#endif
- }
-
- [Test]
- [UiTest (typeof (Button), "Image")]
- [UiTestExempt (ExemptReason.TimeConsuming, "Need way to check Android resources")]
- public void Image ()
- {
- //TODO iOS
- var remote = new ViewContainerRemote (App, Test.Button.Image, PlatformViewType);
- remote.GoTo ();
- }
-
- [Test]
- [UiTest (typeof (Button), "Text")]
- public void Text ()
- {
- var remote = new ViewContainerRemote (App, Test.Button.Text, PlatformViewType);
- remote.GoTo ();
-
- var buttonText = remote.GetProperty<string> (Button.TextProperty);
- Assert.AreEqual ("Text", buttonText);
- }
-
- //TODO iOS
-
-#if __ANDROID__
- [Test]
- [UiTest (typeof (Button), "TextColor")]
- public void TextColor ()
- {
- var remote = new ViewContainerRemote (App, Test.Button.TextColor, PlatformViewType);
- remote.GoTo ();
-
- var buttonTextColor = remote.GetProperty<Color> (Button.TextColorProperty);
- Assert.AreEqual (Color.Pink, buttonTextColor);
- }
-#endif
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ContextActionsUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ContextActionsUITests.cs
deleted file mode 100644
index cd0b3643..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ContextActionsUITests.cs
+++ /dev/null
@@ -1,121 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-using System;
-using System.Threading;
-
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Cells)]
- internal class ContextActionsListUITests : BaseTestFixture
- {
-
- public ContextActionsListUITests ()
- {
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ContextActionsListGallery);
- }
-
- const string cell0 = "Subject Line 0";
- const string cell1 = "Subject Line 1";
- const string move = "Move";
- const string delete = "Delete";
- const string clear = "Clear Items";
- const string mark = "Mark";
-
-
-#if __ANDROID__ || __MACOS__
- [Test]
- public void ContextActionsShow ()
- {
- // mark is an icon on android
- App.TouchAndHold (q => q.Marked (cell0));
- App.WaitForElement (q => q.Marked (delete));
- App.Screenshot ("I have actions!");
- }
-
- [Test]
- public void ContextActionsDelete ()
- {
- // mark is an icon on android
- App.TouchAndHold (q => q.Marked (cell1));
- App.WaitForElement (q => q.Marked (delete));
- App.Screenshot ("I have actions!");
-
- App.Tap (q => q.Marked (delete));
- App.WaitForNoElement (q => q.Marked (cell1));
- App.Screenshot ("Deleted cell 0");
- }
-#endif
-
-#if __IOS__
- [Test]
- public void PopoverDismiss()
- {
- var device = App.Device as iOSDevice;
-
- if (device == null)
- {
- return;
- }
-
- if (device.IsTablet) {
- var screenBounds = App.Query (PlatformQueries.Root)[0].Rect;
- var cellBounds = App.Query (q => q.Marked (cell0))[0].Rect;
- App.DragCoordinates (screenBounds.Width - 10, cellBounds.CenterY, 10, cellBounds.CenterY);
- App.Screenshot("I see context actions");
- App.Tap (q => q.Marked ("More"));
- App.Screenshot ("Should see Popover");
- App.TapCoordinates (50, 50);
- App.Screenshot ("I should not crash");
- } else {
- Assert.Inconclusive("Not testing iOS Phone");
- }
- }
-#endif
- }
- [TestFixture]
- [Category(UITestCategories.Cells)]
- internal class ContextActionsTableUITests : BaseTestFixture
- {
- public ContextActionsTableUITests ()
- {
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ContextActionsTableGallery);
- }
-
- const string cell0 = "Subject Line 0";
- const string cell1 = "Subject Line 1";
- const string move = "Move";
- const string delete = "Delete";
- const string clear = "Clear Items";
- const string mark = "Mark";
- const string cellWithNoContextActions = "I have no ContextActions";
-
-#if __ANDROID__ || __MACOS__
- [Test]
- public void ContextActionsShowAndReset ()
- {
- // mark is an icon on android
- App.TouchAndHold (q => q.Marked (cell0));
- App.WaitForElement (q => q.Marked (delete));
- App.Screenshot ("I have actions!");
-
- App.Tap (q => q.Marked (cellWithNoContextActions));
- App.WaitForNoElement (q => q.Marked (delete));
- App.Screenshot ("Actions should be gone");
- }
-#endif
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/DatePickerUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/DatePickerUITests.cs
deleted file mode 100644
index 72452886..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/DatePickerUITests.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.DatePicker)]
- internal class DatePickerUITests : _ViewUITests
- {
- public DatePickerUITests ()
- {
- PlatformViewType = Views.DatePicker;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.DatePickerGallery);
- }
-
- // View Tests
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/DisplayAlertUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/DisplayAlertUITests.cs
deleted file mode 100644
index afefdebc..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/DisplayAlertUITests.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-using System;
-using System.Threading;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.DisplayAlert)]
- internal class DisplayAlertUITests : BaseTestFixture
- {
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.DisplayAlertGallery);
- }
-
- [Test]
- public void TestWithCancelButton ()
- {
-
- App.Tap (c => c.Marked ("Alert Override1"));
- App.Screenshot ("Display Alert");
- App.WaitForElement (c => c.Marked ("TheAlertTitle"));
- App.WaitForElement (c => c.Marked ("TheAlertMessage"));
- App.WaitForElement (c => c.Marked ("TheCancelButton"));
- App.Screenshot ("Display Alert Closed");
- App.Tap (c => c.Marked ("TheCancelButton"));
- App.WaitForNoElement (c => c.Marked ("TheAlertTitle"));
- }
-
- [Test]
- public void TestWithCancelAndOkButton ()
- {
- App.Tap (c => c.Marked ("Alert Override2"));
- App.Screenshot ("Display Alert");
- App.WaitForElement (c => c.Marked ("TheAlertTitle"));
- App.WaitForElement (c => c.Marked ("TheAlertMessage"));
- App.WaitForElement (c => c.Marked ("TheAcceptButton"));
- App.WaitForElement (c => c.Marked ("TheCancelButton"));
- App.Tap (c => c.Marked ("TheCancelButton"));
- App.Screenshot ("Display Alert Closed");
- App.WaitForNoElement (c => c.Marked ("TheAlertTitle"));
- }
-
- [Test]
- public void TestOkAndCancelResults ()
- {
- App.Tap (c => c.Marked ("Alert Override2"));
- App.Screenshot ("Display Alert");
- App.WaitForElement (c => c.Marked ("TheCancelButton"));
- App.Tap (c => c.Marked ("TheCancelButton"));
- App.Screenshot ("Display Alert Closed with cancel");
- App.WaitForElement (c => c.Marked ("Result: False"));
- App.Tap (c => c.Marked ("test2"));
- App.Screenshot ("Display Alert");
- App.WaitForElement (c => c.Marked ("TheAcceptButton"));
- App.Tap (c => c.Marked ("TheAcceptButton"));
- App.Screenshot ("Display Alert Closed with True");
- App.WaitForElement (c => c.Marked ("Result: True"));
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/EditorUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/EditorUITests.cs
deleted file mode 100644
index e407ad23..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/EditorUITests.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Editor)]
- internal class EditorUITests : _ViewUITests
- {
- public EditorUITests ()
- {
- PlatformViewType = Views.Editor;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.EditorGallery);
- }
-
- // View Tests
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/EntryUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/EntryUITests.cs
deleted file mode 100644
index 82ee605b..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/EntryUITests.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Entry)]
- internal class EntryUITests : _ViewUITests
- {
- public EntryUITests ()
- {
- PlatformViewType = Views.Entry;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.EntryGallery);
- }
-
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
- [Test]
- [UiTest (typeof(Entry), "Completed")]
- public void Completed ()
- {
- var remote = new EventViewContainerRemote (App, Test.Entry.Completed, PlatformViewType);
- remote.GoTo ();
-
- App.EnterText (q=> q.Raw (remote.ViewQuery), "Test");
-
- App.PressEnter ();
-
- var eventLabelText = remote.GetEventLabel ().Text;
- Assert.AreEqual (eventLabelText, "Event: Completed (fired 1)");
- }
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
-
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/FrameUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/FrameUITests.cs
deleted file mode 100644
index 338d6fed..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/FrameUITests.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
-#if __MACOS__
- [Ignore("Not tested on the MAC")]
-#endif
- [TestFixture]
- [Category(UITestCategories.Frame)]
- internal class FrameUITests : _ViewUITests
- {
- public FrameUITests ()
- {
- PlatformViewType = Views.Frame;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.FrameGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ImageUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ImageUITests.cs
deleted file mode 100644
index cdf9af61..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ImageUITests.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Image)]
- internal class ImageUITests : _ViewUITests
- {
- public ImageUITests ()
- {
- PlatformViewType = Views.Image;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ImageGallery);
-
- // let remote images load
- Thread.Sleep (2000);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- // TODO
- // Tests for remote images
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/LabelUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/LabelUITests.cs
deleted file mode 100644
index 2a011878..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/LabelUITests.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Label)]
- internal class LabelUITests : _ViewUITests
- {
- public LabelUITests ()
- {
- PlatformViewType = Views.Label;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.LabelGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-CellsUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-CellsUITests.cs
deleted file mode 100644
index 24732519..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-CellsUITests.cs
+++ /dev/null
@@ -1,284 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
-#if __MACOS__
- [Ignore("Not tested on the MAC")]
-#endif
- [TestFixture]
- [Category(UITestCategories.Cells)]
- internal class CellsGalleryTests : BaseTestFixture
- {
- // TODO find a way to test individula elements of cells
- // TODO port to new framework
-
- protected override void NavigateToGallery()
- {
- App.NavigateToGallery(GalleryQueries.CellsGalleryLegacy);
- }
-
- [Test]
- [Description("ListView with TextCells, all are present")]
- [UiTest(typeof(ListView))]
- [UiTest(typeof(TextCell))]
- public void CellsGalleryTextCellList()
- {
- App.ScrollForElement("* marked:'TextCell List'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
- App.Tap(q => q.Marked("TextCell List"));
- App.WaitForElement(q => q.Marked("Text 0"), "Timeout : Text 0");
-
- App.Screenshot("At TextCell List Gallery");
-
- App.ScrollForElement("* marked:'Detail 99'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.WaitForElement(q => q.Marked("Detail 99"), "Timeout : Detail 99");
-
- App.Screenshot("All TextCells are present");
- }
-
- [Test]
- [Description("TableView with TextCells, all are present")]
- [UiTest(typeof(TableView))]
- [UiTest(typeof(TextCell))]
- public void CellsGalleryTextCellTable()
- {
- App.ScrollForElement("* marked:'TextCell Table'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("TextCell Table"));
- App.WaitForElement(q => q.Marked("Text 1"), "Timeout : Text 1");
-
- App.Screenshot("At TextCell Table Gallery");
-
- App.ScrollForElement("* marked:'Detail 12'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.WaitForElement(q => q.Marked("Detail 12"), "Timeout : Detail 12");
-
- App.Screenshot("All TextCells are present");
- }
-
- [Test]
- [Description("ListView with ImageCells, all are present")]
- [UiTest(typeof(ListView))]
- [UiTest(typeof(ImageCell))]
- public void CellsGalleryImageCellList()
- {
- Thread.Sleep(2000);
-
- App.ScrollForElement("* marked:'ImageCell List'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- Thread.Sleep(2000);
-
- App.Tap(q => q.Marked("ImageCell List"));
- App.WaitForElement(q => q.Marked("Text 0"), "Timeout : Text 0");
-
- App.Screenshot("At ImageCell List Gallery");
-
- var scollBounds = App.Query(q => q.Marked("ImageCellListView")).First().Rect;
- App.ScrollForElement("* marked:'Detail 99'", new Drag(scollBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.WaitForElement(q => q.Marked("Detail 99"), "Timeout : Detail 99");
-
- App.Screenshot("All ImageCells are present");
-
- var numberOfImages = App.Query(q => q.Raw(PlatformViews.Image)).Length;
- // Check that there are images present. In Android,
- // have to make sure that there are more than 2 for navigation.
- Assert.IsTrue(numberOfImages > 2);
-
- App.Screenshot("Images are present");
- }
-
- [Test]
- [Ignore("Ignore because is only failing on iOS10 at XTC")]
- [Description("ListView with ImageCells, file access problems")]
- [UiTest(typeof(ListView))]
- [UiTest(typeof(ImageCell))]
- public async Task CellsGalleryImageUrlCellList()
- {
-
- App.ScrollForElement("* marked:'ImageCell Url List'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("ImageCell Url List"));
-
- //var scollBounds = App.Query(q => q.Marked("ImageUrlCellListView")).First().Rect;
- //App.ScrollForElement("* marked:'Detail 200'", new Drag(scollBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
- //App.ScrollUp();
- //App.WaitForElement(q => q.Marked("Detail 200"), "Timeout : Detail 200");
-
- App.Screenshot("All ImageCells are present");
-
- int numberOfImages = 0;
-
- // Most of the time, 1 second is long enough to wait for the images to load, but depending on network conditions
- // it may take longer
- for (int n = 0; n < 30; n++)
- {
- await Task.Delay(1000);
- numberOfImages = App.Query(q => q.Raw(PlatformViews.Image)).Length;
- if (numberOfImages > 2)
- {
- break;
- }
- }
-
- // Check that there are images present. In Android,
- // have to make sure that there are more than 2 for navigation.
- Assert.IsTrue(numberOfImages > 2);
-
- App.Screenshot("Images are present");
- }
-
-
-
-
- [Test]
- [Description("TableView with ImageCells, all are present")]
- [UiTest(typeof(TableView))]
- [UiTest(typeof(ImageCell))]
- public void CellsGalleryImageCellTable()
- {
- App.ScrollForElement("* marked:'ImageCell Table'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("ImageCell Table"));
- App.WaitForElement(q => q.Marked("Text 1"), "Timeout : Text 1");
-
- App.Screenshot("At ImageCell Table Gallery");
-
- App.ScrollForElement("* marked:'Detail 12'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.WaitForElement(q => q.Marked("Detail 12"), "Timeout : Detail 12");
-
- App.Screenshot("All ImageCells are present");
-
- var numberOfImages = App.Query(q => q.Raw(PlatformViews.Image)).Length;
- // Check that there are images present. In Android,
- // have to make sure that there are more than 2 for navigation.
- Assert.IsTrue(numberOfImages > 2);
-
- App.Screenshot("Images are present");
- }
-
- [Test]
- [Description("ListView with SwitchCells, all are present")]
- [UiTest(typeof(ListView))]
- [UiTest(typeof(SwitchCell))]
- public void CellsGallerySwitchCellList()
- {
- App.ScrollForElement("* marked:'SwitchCell List'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("SwitchCell List"));
- App.WaitForElement(q => q.Marked("Label 0"), "Timeout : Label 0");
-
- App.Screenshot("At SwitchCell List Gallery");
-
- App.ScrollForElement("* marked:'Label 99'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- var numberOfSwitches = App.Query(q => q.Raw(PlatformViews.Switch)).Length;
- Assert.IsTrue(numberOfSwitches > 2);
-
- App.Screenshot("Switches are present");
- }
-
- [Test]
- [Description("TableView with SwitchCells, all are present")]
- [UiTest(typeof(TableView))]
- [UiTest(typeof(SwitchCell))]
- public void CellsGallerySwitchCellTable()
- {
- App.ScrollForElement("* marked:'SwitchCell Table'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("SwitchCell Table"));
- App.WaitForElement(q => q.Marked("text 1"), "Timeout : text 1");
-
- App.Screenshot("At SwitchCell Table Gallery");
-
- App.ScrollForElement("* marked:'text 32'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- var numberOfSwitches = App.Query(q => q.Raw(PlatformViews.Switch)).Length;
- Assert.IsTrue(numberOfSwitches > 2);
-
- App.Screenshot("Switches are present");
- }
-
- [Test]
- [Description("ListView with EntryCells, all are present")]
- [UiTest(typeof(ListView))]
- [UiTest(typeof(EntryCell))]
- public void CellsGalleryEntryCellList()
- {
- App.ScrollForElement("* marked:'EntryCell List'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("EntryCell List"));
- App.WaitForElement(q => q.Marked("Label 0"), "Timeout : Label 0");
-
- App.Screenshot("At EntryCell List Gallery");
-
- App.ScrollForElement("* marked:'Label 99'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Screenshot("All EntryCells are present");
- }
-
- [Test]
- [Description("TableView with EntryCells, all are present")]
- [UiTest(typeof(TableView))]
- [UiTest(typeof(EntryCell))]
- public void CellsGalleryEntryCellTable()
- {
- App.ScrollForElement("* marked:'EntryCell Table'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("EntryCell Table"));
- App.WaitForElement(q => q.Marked("Text 2"), "Timeout : Text 2");
-
- App.Screenshot("At EntryCell Table Gallery");
-
- App.ScrollForElement("* marked:'Text 32'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Screenshot("All EntryCells are present");
- }
-
- [Test]
- [Category("EntryCell")]
- [Description("EntryCell fires .Completed event")]
- [UiTest(typeof(EntryCell), "Completed")]
- public void CellsGalleryEntryCellCompleted()
- {
- App.ScrollForElement("* marked:'EntryCell Table'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Tap(q => q.Marked("EntryCell Table"));
- App.WaitForElement(q => q.Marked("Text 2"), "Timeout : Text 2");
-
- App.Screenshot("At EntryCell Table Gallery");
- App.ScrollForElement("* marked:'Enter text'", new Drag(ScreenBounds, Drag.Direction.BottomToTop, Drag.DragLength.Medium));
-
- App.Screenshot("Before clicking Entry");
-
-#if !__IOS__
- App.Tap(PlatformQueries.EntryCellWithPlaceholder("I am a placeholder"));
- App.EnterText(PlatformQueries.EntryCellWithPlaceholder("I am a placeholder"), "Hi");
- App.Screenshot("Entered Text");
- App.PressEnter();
-
- App.WaitForElement(q => q.Marked("Entered: 1"));
- App.Screenshot("Completed should have changed label's text");
-
-#endif
- }
-
- protected override void TestTearDown()
- {
- App.NavigateBack();
- base.TestTearDown();
- }
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-UnevenListTests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-UnevenListTests.cs
deleted file mode 100644
index 7e0cebf1..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/Legacy-UnevenListTests.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category ("Cells")]
- internal class UnevenListTests : BaseTestFixture
- {
- public UnevenListTests ()
- {
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.UnevenListGalleryLegacy);
- }
-
- [Test]
- public void UnevenListCellTest ()
- {
- if (UnevenListTests.ShouldRunTest(App))
- {
- var element = App.Query(q => q.Marked("unevenCellListGalleryDynamic").Descendant(("UITableViewCellContentView")))[0];
-
- Assert.GreaterOrEqual(element.Rect.Height, 100);
- }
- }
-
- public static bool ShouldRunTest (IApp app)
- {
- var appAs = app as iOSApp;
- return (appAs != null && appAs.Device.IsPhone);
- }
-
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/PickerUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/PickerUITests.cs
deleted file mode 100644
index f0bd20a1..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/PickerUITests.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Picker)]
- internal class PickerUITests : _ViewUITests
- {
- public PickerUITests ()
- {
- PlatformViewType = Views.Picker;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.PickerGallery);
- }
-
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ProgressBarUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ProgressBarUITests.cs
deleted file mode 100644
index aa0b7136..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ProgressBarUITests.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.ProgressBar)]
- internal class ProgressBarUITests : _ViewUITests
- {
- public ProgressBarUITests ()
- {
- PlatformViewType = Views.ProgressBar;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ProgressBarGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsEnabled () {}
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/RootGalleryUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/RootGalleryUITests.cs
deleted file mode 100644
index 1089b337..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/RootGalleryUITests.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-
-using System;
-using System.Threading;
-using System.Collections.Generic;
-using System.Linq;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal sealed class RootPageModel
- {
- public string ButtonId { get; private set; }
- public string PageId { get; private set; }
- public bool IsModal { get; private set; }
-
- public RootPageModel (string buttonId, string pageID, bool isModal = false)
- {
- ButtonId = buttonId;
- PageId = pageID;
- IsModal = isModal;
- }
- }
-
- [TestFixture]
- [Category(UITestCategories.RootGallery)]
- internal class RootGalleryUITests : BaseTestFixture
- {
- IEnumerable<RootPageModel> rootPages;
-
- public RootGalleryUITests ()
- {
- string[] ids = {
- "Content",
- "Nav->Content",
- "MDP->Nav->Content",
- "Tab->Content",
- "Tab->MDP->Nav->Content",
- "Tab->Nav->Content",
- "Tab(Many)->Nav->Content",
- "Nav->Tab->Content(BAD IDEA)",
- "Nav->Tab(Many)->Content(BAD IDEA)",
- "MDP->Nav->Tab->Content(BAD IDEA)"
- };
- string[] modalIds = {
- "(Modal)Content",
- "(Modal)Nav->Content",
- "(Modal)MDP->Nav->Content",
- "(Modal)Tab->Content",
- "(Modal)Tab->MDP->Nav->Content",
- "(Modal)Tab->Nav->Content",
- "(Modal)Tab(Many)->Nav->Content",
- "(Modal)Nav->Tab->Content(BAD IDEA)",
- "(Modal)Nav->Tab(Many)->Content(BAD IDEA)",
- "(Modal)MDP->Nav->Tab->Content(BAD IDEA)",
- };
-
- rootPages =
- (from id in ids
- select new RootPageModel (id + "ButtonId", id + "PageId")).Union (
- from id in modalIds
- select new RootPageModel (id + "ButtonId", id + "PageId",true));
-
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.RootPagesGallery);
- }
-
- [Test]
- [Ignore("Ignore while we dont't have a response from XTC team why this fails some times")]
- public void VisitEachPage ()
- {
- foreach (var page in rootPages) {
- var scrollViewArea = App.Query (q => q.Marked ("ChoosePageScrollView")).First ().Rect;
- App.ScrollForElement (string.Format("* marked:'{0}'", page.ButtonId), new Drag (scrollViewArea, Drag.Direction.BottomToTop, Drag.DragLength.Long));
- App.Tap (q => q.Marked (page.ButtonId));
-
- var ios = false;
-#if __IOS__
- ios = true;
-#endif
-
- if (!page.IsModal || ios)
- App.WaitForElement (q => q.Marked (page.PageId));
-
- App.Screenshot ("Page: " + page.PageId);
- }
- }
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ScrollViewUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ScrollViewUITests.cs
deleted file mode 100644
index 3319834a..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ScrollViewUITests.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using NUnit.Framework;
-using Xamarin.UITest;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.ScrollView)]
- internal class ScrollViewGalleryTests : BaseTestFixture
- {
- public ScrollViewGalleryTests ()
- {
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.ScrollViewGallery);
- }
-
- [Test]
- [Description ("Scroll element to the start")]
- public void ScrollToElement1Start ()
- {
- //var scroller = App.Query (c => c.Marked ("thescroller"))[0];
- //need to extract the contentOffset on iOS
- App.Tap(c=> c.Marked("Start"));
- App.WaitForElement (c => c.Marked ("the scrollto button"));
- //Assert.Equals (App.Query (c => c.Marked ("the before")).Length, 0);
- App.Screenshot ("Element is on the top");
- }
-
- [Test]
- [Description ("Scroll element to the center")]
- public void ScrollToElement2Center ()
- {
- App.Tap(c=> c.Marked("Center"));
- App.WaitForElement (c => c.Marked ("the scrollto button"));
- App.WaitForElement (c => c.Marked ("the before"));
- App.WaitForElement (c => c.Marked ("the after"));
- App.Screenshot ("Element is in the center");
- }
-
- [Test]
- [Description ("Scroll element to the end")]
- public void ScrollToElement3End ()
- {
- App.Tap(c=> c.Marked("End"));
- App.WaitForElement (c => c.Marked ("the scrollto button"));
- //Assert.Equals (App.Query (c => c.Marked ("the after")).Length, 0);
- App.Screenshot ("Element is in the end");
- }
-
- [Test]
- [Description ("ScrollTo Y = 100")]
- public void ScrollToY ()
- {
- App.Tap(c=> c.Marked("Scroll to 100"));
- }
-
- [Test]
- [Description ("ScrollTo Y = 100 no animation")]
- public void ScrollToYNoAnim ()
- {
- App.ScrollDown ();
- App.ScrollDown ();
- App.Tap (c => c.Marked ("Scroll to 100 no anim"));
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/SearchBarUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/SearchBarUITests.cs
deleted file mode 100644
index 9f9f3e97..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/SearchBarUITests.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.SearchBar)]
- internal class SearchBarUITests : _ViewUITests
- {
- public SearchBarUITests ()
- {
- PlatformViewType = Views.SearchBar;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.SearchBarGallery);
- }
-
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/SliderUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/SliderUITests.cs
deleted file mode 100644
index c726903b..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/SliderUITests.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Slider)]
- internal class SliderUITests : _ViewUITests
- {
- public SliderUITests ()
- {
- PlatformViewType = Views.Slider;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.SliderGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/StepperUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/StepperUITests.cs
deleted file mode 100644
index 3afd1e6e..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/StepperUITests.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
-
- [Category(UITestCategories.Stepper)]
- internal class StepperUITests : _ViewUITests
- {
- public StepperUITests ()
- {
- PlatformViewType = Views.Stepper;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.StepperGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/SwitchUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/SwitchUITests.cs
deleted file mode 100644
index d7896d4a..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/SwitchUITests.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.Switch)]
- internal class SwitchUITests : _ViewUITests
- {
- public SwitchUITests ()
- {
- PlatformViewType = Views.Switch;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.SwitchGallery);
- }
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _IsFocused () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/TimePickerUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/TimePickerUITests.cs
deleted file mode 100644
index 954e8247..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/TimePickerUITests.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.TimePicker)]
- internal class TimePickerUITests : _ViewUITests
- {
- public TimePickerUITests ()
- {
- PlatformViewType = Views.TimePicker;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.TimePickerGallery);
-
- Thread.Sleep (4000);
- }
-
- // TODO
- public override void _Focus () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction")]
- public override void _GestureRecognizers () {}
-
- // TODO
- public override void _IsFocused () {}
-
- // TODO
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ToolbarItemTests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ToolbarItemTests.cs
deleted file mode 100644
index 0231ca57..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ToolbarItemTests.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using NUnit.Framework;
-using Xamarin.Forms.CustomAttributes;
-
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.ToolbarItem)]
- internal class ToolbarItemTests : BaseTestFixture
- {
- string btn1Id = "tb1";
- string btn4Id = "tb4";
-#if __ANDROID__
- static bool isSecondaryMenuOpen = false;
-#endif
- static void ShouldShowMenu()
- {
-#if __ANDROID__
- isSecondaryMenuOpen = true;
- //show secondary menu
- App.Tap(c => c.Class("android.support.v7.widget.ActionMenuPresenter$OverflowMenuButton"));
-#endif
- }
-
- static void ShouldHideMenu()
- {
-#if __ANDROID__
- if (isSecondaryMenuOpen)
- {
- isSecondaryMenuOpen = false;
- App.Back();
- }
-#endif
- }
-
- protected override void NavigateToGallery()
- {
- App.NavigateToGallery(GalleryQueries.ToolbarItemGallery);
-#if __IOS__
- btn1Id = "menuIcon";
- btn4Id = "tb4";
-#endif
- }
-
- [Test]
- public void ToolbarButtonsClick()
- {
- ShouldHideMenu();
-#if __MACOS__
- App.Tap(c => c.Button().Index(4));
-#else
- App.Tap(c => c.Marked(btn1Id));
-#endif
- var textLabel = App.Query((arg) => arg.Marked("label_id"))[0];
- Assert.False(textLabel.Text == "tb1");
- Assert.True(textLabel.Text == "Hello ContentPage");
- }
-
- [Test]
- public void ToolbarButtonsCommand()
- {
- ShouldShowMenu();
-#if __ANDROID__
- //App.Query (c => c.Marked (btn4Id))[0];
-#else
- App.Tap(c => c.Marked(btn4Id));
- var textLabel = App.Query((arg) => arg.Marked("label_id"))[0];
- Assert.False(textLabel.Text == "tb4");
-#if __MACOS__
- App.Tap(c => c.Button().Index(6));
-#else
- App.Tap(c => c.Marked("tb3"));
-#endif
- App.Tap(c => c.Marked(btn4Id));
- textLabel = App.Query((arg) => arg.Marked("label_id"))[0];
- Assert.IsTrue(textLabel.Text == "tb4");
-#if __MACOS__
- App.Tap(c => c.Button().Index(6));
-#else
- App.Tap(c => c.Marked("tb3"));
-#endif
-#endif
- }
-
- [Test]
- public void ToolbarButtonsDisable()
- {
- ShouldHideMenu();
-#if __MACOS__
- var result = App.Query(c => c.Button());
- var btn1 = result[4];
- var btn2 = App.Query(c => c.Marked(btn4Id))[0];
- Assert.False(btn2.Enabled, "Toolbar Item should be disable");
-#else
- var btn1 = App.Query(c => c.Marked(btn1Id))[0];
- ShouldShowMenu();
- //var btn2 = App.Query (c => c.Marked (btn4Id)) [0];
- //TODO: how to check Enable for the textview
- //Assert.False (btn2.Enabled, "Toolbar Item should be disable");
-#endif
- Assert.False(btn1.Enabled, "Toolbar Item should be disable");
- }
-
- [Test]
- public void ToolbarButtonsExist()
- {
- ShouldHideMenu();
-#if __MACOS__
- var existsPrimary = App.Query(c => c.Button())[4];
- Assert.True(existsPrimary != null, "Toolbar Item 1 no name, not found");
-#else
- var existsPrimary = App.Query(c => c.Marked(btn1Id)).Length;
- Assert.True(existsPrimary > 0, "Toolbar Item 1 no name, not found");
-#endif
- var existsPrimary2 = App.Query(c => c.Marked("tb2")).Length;
- Assert.True(existsPrimary2 > 0, "Toolbar Item 2, not found");
- ShouldShowMenu();
-
-#if __MACOS__
- var existsSecondary = App.Query(c => c.Button())[7];
- Assert.True(existsSecondary != null, "Toolbar Item 3 no name, not found");
-#else
- var existsSecondary = App.Query(c => c.Marked("tb3")).Length;
- Assert.True(existsSecondary > 0, "Toolbar Item 1 no name, not found");
-#endif
- var existsSecondary2 = App.Query(c => c.Marked(btn4Id)).Length;
- Assert.True(existsSecondary2 > 0, "Toolbar Item 4, not found");
- }
-
- [Test]
- public void ToolbarButtonsOrder()
- {
- ShouldHideMenu();
-#if __MACOS__
- var btn1 = App.Query(c => c.Button())[4];
-#else
- var btn1 = App.Query(c => c.Marked(btn1Id))[0];
-#endif
- ShouldShowMenu();
- var btn2 = App.Query(c => c.Marked("tb4"))[0];
-#if __IOS__
- Assert.True(btn1.Rect.CenterY < btn2.Rect.CenterY);
-#elif __MACOS__
- Assert.True(btn1.Rect.CenterX < btn2.Rect.CenterX);
-#endif
- }
-
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/ViewUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/ViewUITests.cs
deleted file mode 100644
index 9029f2aa..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/ViewUITests.cs
+++ /dev/null
@@ -1,247 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Linq;
-using System.Net.Configuration;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [Category("ViewBaseTests")]
- internal abstract class _ViewUITests : BaseTestFixture
- {
- /* Under score prefixes ensure inherited properties run first in test suite */
- //[Test]
- //[Category ("View")]
- //[UiTestBroken (BrokenReason.UITestBug, "Issue #115 - when trying to get anchorPoint, iOS")]
- //[UiTest (Test.VisualElement.AnchorX)]
- public virtual void _AnchorX ()
- {
-
- }
-
- // [Test]
- // [UiTest (Test.VisualElement.AnchorY)]
- // TODO: working on some views, others not
- public virtual void _AnchorY ()
- {
-
- }
-
- // [Test]
- // [UiTest (Test.VisualElement.BackgroundColor)]
- // [UiTestBroken (BrokenReason.UITestBug, "UITest Issue #107")]
- public virtual void _BackgroundColor ()
- {
- //TODO: this was failing and is changing in next version of calabash (UI-Test-pre nuget) to a json rgb
-// var remote = RemoteFactory.CreateRemote<ViewContainerRemote> (App, "BackgroundColor", PlatformViewType);
-// remote.GoTo ();
-// if (App is iOSApp) {
-// var backgroundColor = remote.GetProperty<Color> (View.BackgroundColorProperty);
-// Assert.AreEqual (Color.Blue, backgroundColor);
-// }
-
- }
-
- [Test]
- [UiTest (typeof(VisualElement), "Focus")]
- public abstract void _Focus ();
-
- [Test]
- [UiTest (typeof (VisualElement), "GestureRecognizers")]
- public abstract void _GestureRecognizers ();
-
- //[Test]
- [UiTest (typeof (VisualElement), "InputTransparent")]
- public virtual void _InputTransparent ()
- {
- //var remote = new LayeredViewContainerRemote (App, Test.VisualElement.InputTransparent, PlatformViewType);
- //remote.GoTo ();
-
- //var hiddenButtonClickedLabelTextPre = remote.GetLayeredLabel ().Text;
- //Assert.AreEqual ("Hidden Button (Not Clicked)", hiddenButtonClickedLabelTextPre);
-
- //remote.TapHiddenButton ();
-
- //var hiddenButtonClickedLabelTextPost = remote.GetLayeredLabel ().Text;
- //var hiddenButtonClicked = hiddenButtonClickedLabelTextPost == "Hidden Button (Clicked)";
-
- //// Allow tests to continue by dismissing DatePicker that should not show
- //// Remove when InputTransparency works
- //if (!hiddenButtonClicked && PlatformViewType == PlatformViews.DatePicker)
- // remote.DismissPopOver ();
-
- //Assert.True (hiddenButtonClicked);
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "IsEnabled")]
- public virtual void _IsEnabled ()
- {
- //var propName = Test.VisualElement.IsEnabled.ToString ();
- var remote = new StateViewContainerRemote (App, Test.VisualElement.IsEnabled, PlatformViewType);
- remote.GoTo ();
-
- var enabled = remote.GetProperty<bool> (View.IsEnabledProperty);
- Assert.IsTrue (enabled);
-
- remote.TapStateButton ();
-
- enabled = remote.GetProperty<bool> (View.IsEnabledProperty);
- Assert.IsFalse (enabled);
-
- remote.TapStateButton ();
-
- var isEnabled = remote.GetStateLabel ().Text;
- Assert.AreEqual ("True", isEnabled);
-
- remote.TapStateButton ();
-
- var isDisabled = remote.GetStateLabel ().Text;
- Assert.AreEqual ("False", isDisabled);
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "IsFocused")]
- public abstract void _IsFocused ();
-
- [Test]
- [UiTest (typeof (VisualElement), "IsVisible")]
- public virtual void _IsVisible ()
- {
- var remote = new StateViewContainerRemote (App, Test.VisualElement.IsVisible, PlatformViewType);
- remote.GoTo ();
-
- var viewPre = remote.GetViews ();
-
-#if __MACOS__
- Assert.GreaterOrEqual(viewPre.Length, 1);
-#else
- Assert.AreEqual (1, viewPre.Length);
-#endif
-
- remote.TapStateButton ();
-
- var viewPost = remote.GetViews ();
-
- Assert.AreEqual (0, viewPost.Length);
- }
-
- [UiTestExemptAttribute (ExemptReason.None, "Not sure how to test at the moment")]
- public virtual void _Layout (){}
-
- [UiTestExemptAttribute (ExemptReason.None, "Not sure how to test at the moment")]
- public virtual void _Navigation () {}
-
- [Test]
- [UiTest (typeof (VisualElement), "Opacity")]
- public virtual void _Opacity ()
- {
- var remote = new ViewContainerRemote(App, Test.VisualElement.Opacity, PlatformViewType);
- remote.GoTo();
-#if __MACOS__
- Assert.Inconclusive("needs testing");
-#else
- float opacity = -1f;
- opacity = remote.GetProperty<float> (View.OpacityProperty);
- Assert.AreEqual (0.5f, opacity);
-#endif
- }
-
- [Test]
- [UiTest (typeof(VisualElement), "Rotation")]
- [UiTestBroken (BrokenReason.CalabashBug, "Calabash bug")]
- public virtual void _Rotation ()
- {
- var remote = new ViewContainerRemote (App, Test.VisualElement.Rotation, PlatformViewType);
- remote.GoTo ();
-
-#if __ANDROID__
- var rotation = remote.GetProperty<float> (View.RotationProperty);
- Assert.AreEqual (10.0f, rotation);
-#endif
-#if __IOS__
- var rotationMatrix = remote.GetProperty<Matrix> (View.RotationProperty);
- Matrix generatedMatrix = NumericExtensions.CalculateRotationMatrixForDegrees (10, Axis.Z);
- Assert.AreEqual (generatedMatrix, rotationMatrix);
-#endif
-}
-
- [Test]
- [UiTest (typeof (VisualElement), "RotationX")]
- public virtual void _RotationX ()
- {
- var remote = new ViewContainerRemote (App, Test.VisualElement.RotationX, PlatformViewType);
- remote.GoTo ();
-
-#if __ANDROID__
- var rotationX = remote.GetProperty<float> (View.RotationXProperty);
- Assert.AreEqual (33.0f, rotationX);
-#endif
-#if __IOS__
- var rotationXMatrix = remote.GetProperty<Matrix> (View.RotationXProperty);
- Matrix matrix = NumericExtensions.CalculateRotationMatrixForDegrees (33.0f, Axis.X);
- Assert.AreEqual (matrix, rotationXMatrix);
-#endif
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "RotationY")]
- public virtual void _RotationY ()
- {
- var remote = new ViewContainerRemote (App, Test.VisualElement.RotationY, PlatformViewType);
- remote.GoTo ();
-
-#if __ANDROID__
- var rotationY = remote.GetProperty<float> (View.RotationYProperty);
- Assert.AreEqual (10.0f, rotationY);
-#endif
-#if __IOS__
- var rotationYMatrix = remote.GetProperty<Matrix> (View.RotationYProperty);
- Matrix matrix = NumericExtensions.CalculateRotationMatrixForDegrees (10.0f, Axis.Y);
- Assert.AreEqual (matrix, rotationYMatrix);
-#endif
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "Scale")]
- public virtual void _Scale ()
- {
- var remote = new ViewContainerRemote(App, Test.VisualElement.Scale, PlatformViewType);
- remote.GoTo();
-#if __MACOS__
- Assert.Inconclusive("needs testing");
-#else
- var scaleMatrix = remote.GetProperty<Matrix>(View.ScaleProperty);
- Matrix generatedMatrix = NumericExtensions.BuildScaleMatrix(0.5f);
- Assert.AreEqual(generatedMatrix, scaleMatrix);
-#endif
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "TranslationX")]
- [Category(UITestCategories.ManualReview)]
- public virtual void _TranslationX ()
- {
- var remote = new ViewContainerRemote (App, Test.VisualElement.TranslationX, PlatformViewType);
- remote.GoTo ();
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "TranslationY")]
- [Category(UITestCategories.ManualReview)]
- public virtual void _TranslationY ()
- {
- var remote = new ViewContainerRemote (App, Test.VisualElement.TranslationY, PlatformViewType);
- remote.GoTo ();
- }
-
- [Test]
- [UiTest (typeof (VisualElement), "Unfocus")]
- public abstract void _UnFocus ();
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Tests/WebViewUITests.cs b/Xamarin.Forms.Core.iOS.UITests/Tests/WebViewUITests.cs
deleted file mode 100644
index e056b325..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Tests/WebViewUITests.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Threading;
-using System.Reflection;
-
-using NUnit.Framework;
-
-using Xamarin.Forms.CustomAttributes;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.iOS;
-
-namespace Xamarin.Forms.Core.UITests
-{
- [TestFixture]
- [Category(UITestCategories.WebView)]
- internal class WebViewUITests : _ViewUITests
- {
- public WebViewUITests ()
- {
- PlatformViewType = Views.WebView;
- }
-
- protected override void NavigateToGallery ()
- {
- App.NavigateToGallery (GalleryQueries.WebViewGallery);
- }
-
- [Category(UITestCategories.ManualReview)]
- public override void _IsEnabled ()
- {
- Assert.Inconclusive ("Does not make sense for WebView");
- }
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _IsVisible () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction with Label")]
- public override void _Focus () {}
-
- // TODO
- public override void _GestureRecognizers () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction with Label")]
- public override void _IsFocused () {}
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _Opacity () {}
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _Rotation () {}
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _RotationX () {}
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _RotationY () {}
-
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _TranslationX () {}
-
- [Test]
- [Category(UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _TranslationY () {}
-
- [Test]
- [Category (UITestCategories.ManualReview)]
- [Ignore("Keep empty test from failing in Test Cloud")]
- public override void _Scale () {}
-
- [UiTestExempt (ExemptReason.CannotTest, "Invalid interaction with Label")]
- public override void _UnFocus () {}
-
- // TODO
- // Implement control specific ui tests
-
- protected override void FixtureTeardown ()
- {
- App.NavigateBack ();
- base.FixtureTeardown ();
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/UITestCategories.cs b/Xamarin.Forms.Core.iOS.UITests/UITestCategories.cs
deleted file mode 100644
index 28a6fff4..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/UITestCategories.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class UITestCategories
- {
- public const string ActionSheet = "ActionSheet";
- public const string ActivityIndicator = "ActivityIndicator";
- public const string AutomationId = "AutomationID";
- public const string BoxView = "BoxView";
- public const string Button = "Button";
- public const string Cells = "Cells";
- public const string DatePicker = "DatePicker";
- public const string DisplayAlert = "DisplayAlert";
- public const string Editor = "Editor";
- public const string Entry = "Entry";
- public const string Frame = "Frame";
- public const string Image = "Image";
- public const string Label = "Label";
- public const string ListView = "ListView";
- public const string LifeCycle = "Lifecycle";
- public const string MasterDetailPage = "MasterDetailPage";
- public const string Picker = "Picker";
- public const string ProgressBar = "ProgressBar";
- public const string RootGallery = "RootGallery";
- public const string ScrollView = "ScrollView";
- public const string SearchBar = "SearchBar";
- public const string Slider = "Slider";
- public const string Stepper = "Stepper";
- public const string Switch = "Switch";
- public const string TimePicker = "TimePicker";
- public const string ToolbarItem = "ToolbarItem";
- public const string WebView = "WebView";
- public const string Maps = "Maps";
-
- public const string ManualReview = "ManualReview";
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/AppExtensions.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/AppExtensions.cs
deleted file mode 100644
index b5f52b9c..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/AppExtensions.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Linq;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-using System.Text.RegularExpressions;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class AppExtensions
- {
- public static AppRect ScreenBounds (this IApp app)
- {
- return app.Query (Queries.Root ()).First().Rect;
- }
-
- public static void NavigateBack (this IApp app)
- {
- app.Tap (Queries.NavigationBarBackButton ());
- }
-
- public static void NavigateToGallery (this IApp app, string page)
- {
- const string goToTestButtonQuery = "* marked:'GoToTestButton'";
-
- var text = Regex.Match (page, "'(?<text>[^']*)'").Groups["text"].Value;
- app.EnterText (q => q.Raw ("* marked:'SearchBar'"), text);
-
- app.WaitForElement(q => q.Raw(goToTestButtonQuery), "Timed out waiting for Go To Test button to disappear", TimeSpan.FromSeconds(10));
-
- app.Tap (q => q.Raw (goToTestButtonQuery));
- app.WaitForNoElement (o => o.Raw (goToTestButtonQuery), "Timed out waiting for Go To Test button to disappear", TimeSpan.FromMinutes(2));
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/Drag.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/Drag.cs
deleted file mode 100644
index 71b1fa03..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/Drag.cs
+++ /dev/null
@@ -1,173 +0,0 @@
-using System.Reflection.Emit;
-
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal class Drag
- {
- internal enum DragLength
- {
- Long,
- Medium,
- Short
- }
-
- internal enum Direction
- {
- TopToBottom,
- BottomToTop,
- RightToLeft,
- LeftToRight
- }
-
- AppRect dragBounds;
- float xStart;
- float yStart;
- float xEnd;
- float yEnd;
- Direction dragDirection;
- Direction oppositeDirection;
- DragLength dragLength;
-
- public Drag (AppRect dragbounds, float xStart, float yStart, float xEnd, float yEnd, Direction direction)
- {
- dragBounds = dragbounds;
- this.xStart = xStart;
- this.yStart = yStart;
- this.xEnd = xEnd;
- this.yEnd = yEnd;
- dragDirection = direction;
- oppositeDirection = GetOppositeDirection (direction);
- }
-
- public Drag (AppRect dragBounds, Direction direction, DragLength dragLength)
- {
- this.dragBounds = dragBounds;
- dragDirection = direction;
- this.dragLength = dragLength;
- SetDragForBounds (dragDirection, dragLength);
- }
-
- void SetDragForBounds (Direction direction, DragLength dragLength)
- {
- // percentage of bounds to scroll centered in element
- float scrollPercentage;
-
- switch (dragLength) {
- case DragLength.Long:
- scrollPercentage = 0.8f;
- break;
- case DragLength.Medium:
- scrollPercentage = 0.5f;
- break;
- default:
- scrollPercentage = 0.2f;
- break;
- }
-
- if (direction == Direction.LeftToRight) {
- yStart = dragBounds.CenterY;
- yEnd = dragBounds.CenterY;
- float xDisplacement = (dragBounds.CenterX + (dragBounds.Width / 2)) - dragBounds.X;
- float insetForScroll = (xDisplacement - (xDisplacement * scrollPercentage)) / 2;
- xStart = dragBounds.X + insetForScroll;
- xEnd = (dragBounds.CenterX + (dragBounds.Width / 2)) - insetForScroll;
- } else if (direction == Direction.RightToLeft) {
- yStart = dragBounds.CenterY;
- yEnd = dragBounds.CenterY;
- float xDisplacement = (dragBounds.CenterX + (dragBounds.Width / 2)) - dragBounds.X;
- float insetForScroll = (xDisplacement - (xDisplacement * scrollPercentage)) / 2;
- xStart = (dragBounds.CenterX + (dragBounds.Width / 2)) - insetForScroll;
- xEnd = dragBounds.X + insetForScroll;
- } else if (direction == Direction.TopToBottom) {
- xStart = dragBounds.CenterX;
- xEnd = dragBounds.CenterX;
- float yDisplacement = (dragBounds.CenterY + (dragBounds.Height / 2)) - dragBounds.Y;
- float insetForScroll = (yDisplacement - (yDisplacement * scrollPercentage)) / 2;
- yStart = dragBounds.Y + insetForScroll;
- yEnd = (dragBounds.CenterY + (dragBounds.Height / 2)) - insetForScroll;
- } else if (direction == Direction.BottomToTop) {
- xStart = dragBounds.CenterX;
- xEnd = dragBounds.CenterX;
- float yDisplacement = (dragBounds.CenterY + (dragBounds.Height / 2)) - dragBounds.Y;
- float insetForScroll = (yDisplacement - (yDisplacement * scrollPercentage)) / 2;
- yStart = (dragBounds.CenterY + (dragBounds.Height / 2)) - insetForScroll;
- yEnd = dragBounds.Y + insetForScroll;
-
- }
- }
-
- Direction GetOppositeDirection (Direction direction)
- {
- switch (direction) {
- case Direction.TopToBottom:
- return Direction.BottomToTop;
- case Direction.BottomToTop:
- return Direction.TopToBottom;
- case Direction.RightToLeft:
- return Direction.LeftToRight;
- case Direction.LeftToRight:
- return Direction.RightToLeft;
- default:
- return Direction.TopToBottom;
- }
- }
-
- public AppRect DragBounds
- {
- get { return dragBounds; }
- }
-
- public float XStart
- {
- get { return xStart; }
- }
-
- public float YStart
- {
- get { return yStart; }
- }
-
- public float XEnd
- {
- get { return xEnd; }
- }
-
- public float YEnd
- {
- get { return yEnd; }
- }
-
- public Direction DragDirection
- {
- get { return dragDirection; }
- set
- {
- if (dragDirection == value)
- return;
-
- dragDirection = value;
- oppositeDirection = GetOppositeDirection (dragDirection);
- OnDragDirectionChanged ();
- }
- }
-
- void OnDragDirectionChanged ()
- {
- SetDragForBounds (dragDirection, dragLength);
- }
-
- public Direction OppositeDirection
- {
- get { return oppositeDirection; }
- private set
- {
- if (oppositeDirection == value)
- return;
-
- oppositeDirection = value;
- }
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs
deleted file mode 100644
index 548ff06d..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using System;
-using System.Dynamic;
-using System.Linq;
-using System.Security.Cryptography;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class Gestures
- {
- public static bool ScrollForElement (this IApp app, string query, Drag drag, int maxSteps = 25)
- {
- int count = 0;
-
- int centerTolerance = 50;
-
- Func<AppQuery, AppQuery> elementQuery = q => q.Raw (query);
-
- // Visible elements
- if (app.Query (elementQuery).Length > 1) {
- throw new UITestQueryMultipleResultsException (query);
- }
-
- // check to see if the element is visible already
- if (app.Query (elementQuery).Length == 1) {
- // centering an element whos CenterX is close to the bounding rectangle's center X can sometime register the swipe as a tap
- float elementDistanceToDragCenter = Math.Abs (app.Query (elementQuery).First ().Rect.CenterY - drag.DragBounds.CenterY);
- if (elementDistanceToDragCenter > centerTolerance)
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- // loop until element is seen
- while (app.Query (elementQuery).Length == 0 && count < maxSteps) {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- count++;
- }
-
- if (count != maxSteps) {
- // centering an element whos CenterX is close to the bounding rectangle's center X can sometime register the swipe as a tap
- float elementDistanceToDragCenter = Math.Abs (app.Query (elementQuery).First ().Rect.CenterY - drag.DragBounds.CenterY);
- if (elementDistanceToDragCenter > centerTolerance)
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- count = 0;
- drag.DragDirection = drag.OppositeDirection;
-
- while (app.Query (elementQuery).Length == 0 && count < maxSteps) {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- count++;
- }
-
- if (count != maxSteps) {
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- return false;
- }
-
- static void CenterElementInView (this IApp app, Func<AppQuery, AppQuery> element, AppRect containingView, Drag.Direction direction)
- {
- // TODO Implement horizontal centering
-
- if (direction == Drag.Direction.BottomToTop || direction == Drag.Direction.TopToBottom) {
-
- var elementBounds = app.Query (element).First ().Rect;
-
- bool elementCenterBelowContainerCenter = elementBounds.CenterY > containingView.CenterY;
- bool elementCenterAboveContainerCenter = elementBounds.CenterY < containingView.CenterY;
-
- var displacementToCenter = Math.Abs (elementBounds.CenterY - containingView.CenterY) / 2;
-
- // avoid drag as touch
- if (displacementToCenter < 50)
- return;
-
- if (elementCenterBelowContainerCenter) {
-
- var drag = new Drag (
- containingView,
- containingView.CenterX, containingView.CenterY + displacementToCenter,
- containingView.CenterX, containingView.CenterY - displacementToCenter,
- Drag.Direction.BottomToTop
- );
-
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
-
- } else if (elementCenterAboveContainerCenter) {
-
- var drag = new Drag (
- containingView,
- containingView.CenterX, containingView.CenterY - displacementToCenter,
- containingView.CenterX, containingView.CenterY + displacementToCenter,
- Drag.Direction.TopToBottom
- );
-
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- }
- }
- }
-
- public static void Pan (this IApp app, Drag drag)
- {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- }
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/Logger.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/Logger.cs
deleted file mode 100644
index ed0041ae..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/Logger.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.IO;
-using System.Reflection;
-
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class Logger
- {
- static StreamWriter queryWriter;
-
- public static void Init ()
- {
- queryWriter = new StreamWriter ("../../Xamarin.Forms.Core-UITest-queries.log", false);
- }
-
- public static void Log (string text)
- {
- queryWriter.Write (text);
- }
-
- public static void LogLine (string text = "")
- {
- queryWriter.WriteLine (text);
- }
-
- public static void Close ()
- {
- queryWriter.Flush ();
- queryWriter.Close ();
- }
-
- public static void LogQueryResult (AppResult[] resultsForQuery)
- {
- foreach (AppResult result in resultsForQuery)
- WriteAppResult (result);
- }
-
- static void WriteAppResult (AppResult appResult)
- {
- var classText = string.Format (" {0, -10} : {1}", "Class", appResult.Class);
- var descriptionText = string.Format (" {0, -10} : {1}", "Description", appResult.Description);
- var enabledText = string.Format (" {0, -10} : {1}", "Enabled", appResult.Enabled);
- var idText = string.Format (" {0, -10} : {1}", "Id", appResult.Id);
- var labelText = string.Format (" {0, -10} : {1}", "Label", appResult.Id);
- var textText = string.Format (" {0, -10} : {1}", "Text", appResult.Text);
-
- var rectText = string.Format (" {0, -10}", "Rect");
- var rectContentsText = string.Format (" [X:{0} Y:{1} W:{2} H:{3}] [CX:{4} CY:{5}]",
- appResult.Rect.X,
- appResult.Rect.Y,
- appResult.Rect.Width,
- appResult.Rect.Height,
- appResult.Rect.CenterX,
- appResult.Rect.CenterY
- );
-
- queryWriter.WriteLine (classText);
- queryWriter.WriteLine (descriptionText);
- queryWriter.WriteLine (enabledText);
- queryWriter.WriteLine (idText);
- queryWriter.WriteLine (labelText);
- queryWriter.WriteLine (textText);
- queryWriter.WriteLine (rectText);
- queryWriter.WriteLine (rectContentsText);
- queryWriter.WriteLine();
- }
-
- }
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/NumericExtensions.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/NumericExtensions.cs
deleted file mode 100644
index 13a4b2bf..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/NumericExtensions.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Runtime.Remoting.Messaging;
-
-using NUnit.Framework;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using System.Globalization;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal class Matrix : Object
- {
- public double M00, M01, M02, M03;
- public double M10, M11, M12, M13;
- public double M20, M21, M22, M23;
- public double M30, M31, M32, M33;
-
- public void Log () {
-
- //Logger.LogLine ();
-
- //Logger.LogLine (string.Format ("{0,-3}, {1,-3}, {2,-3}, {3,-3}", M00, M01, M02, M03));
- //Logger.LogLine (string.Format ("{0,-3}, {1,-3}, {2,-3}, {3,-3}", M10, M11, M12, M13));
- //Logger.LogLine (string.Format ("{0,-3}, {1,-3}, {2,-3}, {3,-3}", M20, M21, M22, M23));
- //Logger.LogLine (string.Format ("{0,-3}, {1,-3}, {2,-3}, {3,-3}", M30, M31, M32, M33));
-
- //Logger.LogLine ();
- }
-
- public override bool Equals (object obj)
- {
- if (obj == null)
- return false;
-
- var transform = obj as Matrix;
- if ((Object)transform == null)
- return false;
-
- const double tolerance = 0.01;
- bool result =
- Math.Abs (M00 - transform.M00) < tolerance &&
- Math.Abs (M01 - transform.M01) < tolerance &&
- Math.Abs (M02 - transform.M02) < tolerance &&
- Math.Abs (M03 - transform.M03) < tolerance &&
- Math.Abs (M10 - transform.M10) < tolerance &&
- Math.Abs (M11 - transform.M11) < tolerance &&
- Math.Abs (M12 - transform.M12) < tolerance &&
- Math.Abs (M13 - transform.M13) < tolerance &&
- Math.Abs (M20 - transform.M20) < tolerance &&
- Math.Abs (M21 - transform.M21) < tolerance &&
- Math.Abs (M22 - transform.M22) < tolerance &&
- Math.Abs (M23 - transform.M23) < tolerance &&
- Math.Abs (M30 - transform.M30) < tolerance &&
- Math.Abs (M31 - transform.M31) < tolerance &&
- Math.Abs (M32 - transform.M32) < tolerance &&
- Math.Abs (M33 - transform.M33) < tolerance;
-
- return result;
- }
-
- public override int GetHashCode ()
- {
- return 0;
- }
- }
-
- internal enum Axis
- {
- X,
- Y,
- Z
- }
-
- internal static class NumericExtensions
- {
- public static double ToRadians(this float val)
- {
- return (Math.PI / 180.0) * val;
- }
-
- public static Matrix CalculateRotationMatrixForDegrees (float degrees, Axis rotationAxis)
- {
- var angle = degrees.ToRadians ();
-
- var transform = new Matrix ();
- if (rotationAxis == Axis.X) {
- transform.M00 = 1; transform.M01 = 0; transform.M02 = 0; transform.M03 = 0;
- transform.M10 = 0; transform.M11 = (float) Math.Cos (angle); transform.M12 = (float) Math.Sin (angle); transform.M13 = 0;
- transform.M20 = 0; transform.M21 = -(float) Math.Sin (angle); transform.M22 = (float) Math.Cos (angle); transform.M23 = 0;
- transform.M30 = 0; transform.M31 = 0; transform.M32 = 0; transform.M33 = 1;
- } else if (rotationAxis == Axis.Y) {
- transform.M00 = (float) Math.Cos (angle); transform.M01 = 0; transform.M02 = -(float) Math.Sin (angle); transform.M03 = 0;
- transform.M10 = 0; transform.M11 = 1; transform.M12 = 0; transform.M13 = 0;
- transform.M20 = (float) Math.Sin (angle); transform.M21 = 0; transform.M22 = (float) Math.Cos (angle); transform.M23 = 0;
- transform.M30 = 0; transform.M31 = 0; transform.M32 = 0; transform.M33 = 1;
- } else {
- transform.M00 = (float) Math.Cos (angle); transform.M01 = (float) Math.Sin (angle); transform.M02 = 0; transform.M03 = 0;
- transform.M10 = -(float) Math.Sin (angle); transform.M11 = (float) Math.Cos (angle); transform.M12 = 0; transform.M13 = 0;
- transform.M20 = 0; transform.M21 = 0; transform.M22 = 1; transform.M23 = 0;
- transform.M30 = 0; transform.M31 = 0; transform.M32 = 0; transform.M33 = 1;
- }
-
- return transform;
- }
-
- public static Matrix BuildScaleMatrix (float scale)
- {
- var transform = new Matrix ();
-
- transform.M00 = scale; transform.M01 = 0; transform.M02 = 0; transform.M03 = 0;
- transform.M10 = 0; transform.M11 = scale; transform.M12 = 0; transform.M13 = 0;
- transform.M20 = 0; transform.M21 = 0; transform.M22 = scale; transform.M23 = 0;
- transform.M30 = 0; transform.M31 = 0; transform.M32 = 0; transform.M33 = 1;
-
- return transform;
- }
-
- }
-
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/ParsingUtils.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/ParsingUtils.cs
deleted file mode 100644
index 6598e0f5..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/ParsingUtils.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Runtime.Remoting.Messaging;
-
-using NUnit.Framework;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Queries;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using System.Globalization;
-using System.Text.RegularExpressions;
-using System.IO;
-
-namespace Xamarin.Forms.Core.UITests
-{
-
- internal static class ParsingUtils
- {
- public static Font ParseUIFont (string font)
- {
- FontAttributes fontAttrs = FontAttributes.None;
-
- // Logger.LogLine ("TEST PARSING");
-
- if (font.Contains ("font-weight: bold;")) {
- // Logger.LogLine ("Found Bold");
- fontAttrs = FontAttributes.Bold;
- }
-
- return new Font ().WithAttributes (fontAttrs);
- }
-
- public static Color ParseUIColor (string backgroundColor)
- {
- var delimiters = new char[] { ' ' };
- string[] words = backgroundColor.Split (delimiters, StringSplitOptions.RemoveEmptyEntries);
- return new Color (double.Parse (words[1]), double.Parse (words[2]), double.Parse (words[3]), double.Parse (words[4]));
- }
-
- public static Point ParseCGPoint (object CGPoint) {
- var point = new Point { X = 0, Y = 0 };
- return point;
- }
-
- public static Matrix ParseCATransform3D (string CATransform3D)
- {
- // Logger.Log (CATransform3D);
- char[] delimiters = { '<', ' ', '>' };
- string[] words = CATransform3D.Split (delimiters, StringSplitOptions.RemoveEmptyEntries);
-
- List<double> numbers = new List<double> ();
-
- // Each number is represented by 2 blocks returned by server
- for (int i = 0; i < (words.Length - 1); i += 2) {
- string word = words[i] + words[i + 1];
- var number = Int64.Parse (word, NumberStyles.HexNumber);
- byte[] bytes = BitConverter.GetBytes (number);
- byte[] reversedBytes = bytes.Reverse ().ToArray ();
- double value = BitConverter.ToDouble (reversedBytes, 0);
- numbers.Add (value);
- }
-
- var transformationMatrix = new Matrix ();
- transformationMatrix.M00 = numbers[0];
- transformationMatrix.M01 = numbers[1];
- transformationMatrix.M02 = numbers[2];
- transformationMatrix.M03 = numbers[3];
- transformationMatrix.M10 = numbers[4];
- transformationMatrix.M11 = numbers[5];
- transformationMatrix.M12 = numbers[6];
- transformationMatrix.M13 = numbers[7];
- transformationMatrix.M20 = numbers[8];
- transformationMatrix.M21 = numbers[9];
- transformationMatrix.M22 = numbers[10];
- transformationMatrix.M23 = numbers[11];
- transformationMatrix.M30 = numbers[12];
- transformationMatrix.M31 = numbers[13];
- transformationMatrix.M32 = numbers[14];
- transformationMatrix.M33 = numbers[15];
-
- return transformationMatrix;
- }
-
- }
-
-} \ No newline at end of file
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/UITestCustomExceptions.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/UITestCustomExceptions.cs
deleted file mode 100644
index 6969ac52..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/UITestCustomExceptions.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Xamarin.UITest.Queries;
-using System.Runtime.CompilerServices;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal class UITestQueryNoResultException : Exception
- {
- readonly string message;
-
- public UITestQueryNoResultException (string query)
- {
- message = string.Format ("Found no elements for query with target: {0}", query);
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-
- internal class UITestQuerySingleResultException : Exception
- {
- readonly string message;
-
- public UITestQuerySingleResultException (string query)
- {
- message = string.Format ("Found single element for query with target: {0}", query);
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-
- internal class UITestQueryMultipleResultsException : Exception
- {
- readonly string message;
-
- public UITestQueryMultipleResultsException (string query)
- {
- message = string.Format ("Found muliple elements for query with target: {0}", query);
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-
- internal class UITestRemoteException : Exception
- {
- readonly string message;
-
- public UITestRemoteException (string message)
- {
- this.message = message;
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-
- internal class UITestRemoteQueryException : Exception
- {
- readonly string message;
-
- public UITestRemoteQueryException (string query)
- {
- message = string.Format ("Error for query with target: {0}", query);
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-
- internal class UITestErrorException : Exception
- {
- readonly string message;
-
- public UITestErrorException (string message, [CallerMemberName] string caller = null)
- {
- message = string.Format ("Test error: {0}, {1}", caller, message);
- }
-
- public override string Message
- {
- get { return message; }
- }
- }
-}
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/ViewInspector.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/ViewInspector.cs
deleted file mode 100644
index 9bc5347b..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/ViewInspector.cs
+++ /dev/null
@@ -1,349 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using System.Linq;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class ViewInspector
- {
- public static void LogPropertiesForView (this IApp app, string query, bool isOnParent = false)
- {
-#if __ANDROID__
- LogPropertiesForAndroidView (app, query, isOnParent);
-#endif
-#if __IOS__
-
- LogPropertiesForUIView(app, query, isOnParent);
- LogPropertiesForCALayer (app, query, isOnParent);
-#endif
- }
-
- static void LogPropertiesForUIView (this IApp app, string query, bool isOnParent = false) {
-
- //Logger.LogLine ("--- UIView Properties ---");
-
- var properties = new [] {
- // just getters with no params, bools
- "alpha",
- "autoresizesSubviews",
- "autoresizingMask",
- "backgroundColor",
- "bounds",
- "center",
- "clearsContextBeforeDrawing",
- "clipsToBounds",
- "contentMode",
- "contentScaleFactor",
- "exclusiveTouch",
- "frame",
- "gestureRecognizers",
- "hidden",
- "layer",
- "motionEffects",
- "multipleTouchEnabled",
- "opaque",
- "restorationIdentifier",
- "subviews",
- "superview",
- "tag",
- "tintAdjustmentMode",
- "tintColor",
- "transform",
- "userInteractionEnabled",
- "window"
- };
-
- if (isOnParent)
- query = query + " parent * index:0";
-
- foreach (var property in properties) {
- object prop;
- bool found =
- MaybeGetProperty<string> (app, query, property, out prop) ||
- MaybeGetProperty<int> (app, query, property, out prop) ||
- MaybeGetProperty<float> (app, query, property, out prop) ||
- MaybeGetProperty<bool> (app, query, property, out prop);
-
- if (found)
- continue;
- // Logger.LogLine (string.Format ("{0,-30}: {1}", property, prop));
- }
-
- //Logger.LogLine();
-
- }
-
- static void LogPropertiesForCALayer(this IApp app, string query, bool isOnParent = false)
- {
- // Logger.LogLine ("--- UIView.Layer Properties ---");
-
- var properties = new[] {
- "actions",
- "anchorPoint",
- "anchorPointZ",
- "backgroundColor",
- "backgroundFilters",
- "borderColor",
- "borderWidth",
- "bounds",
- "compositingFilter",
- "contents",
- "contentsCenter",
- "contentsGravity",
- "contentsRect",
- "contentsScale",
- "cornerRadius",
- "delegate",
- "doubleSided",
- "drawsAsynchronously",
- "edgeAntialiasingMask",
- "filters",
- "frame",
- "geometryFlipped",
- "hidden",
- "magnificationFilter",
- "mask",
- "masksToBounds",
- "minificationFilter",
- "minificationFilterBias",
- "name",
- "needsDisplayOnBoundsChange",
- "opacity",
- "opaque",
- "position",
- "rasterizationScale",
- "shadowColor",
- "shadowOffset",
- "shadowOpacity",
- "shadowPath",
- "shadowRadius",
- "shouldRasterize",
- "style",
- "sublayers",
- "sublayerTransform",
- "superlayer",
- "transform",
- "visibleRect",
- "zPosition"
- };
-
- if (isOnParent)
- query = query + " parent * index:0";
-
- foreach (var property in properties)
- {
- object prop;
- bool found =
- MaybeGetLayerProperty<string>(app, query, property, out prop) ||
- MaybeGetLayerProperty<int>(app, query, property, out prop) ||
- MaybeGetLayerProperty<bool>(app, query, property, out prop);
-
- if (found)
- continue;
- //if (found)
- // Logger.LogLine(string.Format("{0,-30}: {1}", property, prop));
- }
-
- //Logger.LogLine();
-
- }
-
- static void LogPropertiesForAndroidView (this IApp app, string query, bool isOnParent = false)
- {
- // Logger.LogLine( "--- Android View Properties ---");
-
- var properties = new [] {
- // just getters with no params, bools
- //"getAccessibilityLiveRegion",
- //"getAccessibilbityNodeProvider",
- //"getAlpha",
- //"getAnimation",
- //"getApplicationWindowToken",
- //"getBackground",
- //"getBaseline",
- //"getBottom",
- //"getCameraDistance",
- //"getClipBounds",
- //"getContentDescription",
- //"getContext",
- //"getDefaultSize",
- //"getDisplay",
- //"getDrawableState",
- //"getDrawingCache",
- //"getDrawingCacheBackgroundColor",
- //"getDrawingRect",
- //"getDrawingTime",
- //"getFilterTouchesWhenObscurred",
- //"getFitsSystemWindows",
- //"getFocusables",
- //"getHandler",
- //"getHeight",
- //"getHitRect",
- //"getHorizontalFadingEdgeLength",
- //"getId",
- //"getImportantForAccessibility",
- //"getKeepScreenOn",
- //"getKeyDispatcherState",
- //"getLabelFor",
- //"getLayerType",
- //"getLayoutDirection",
- //"getLayourParams",
- //"getLeft",
- "getMatrix",
- //"getMeasuredHeight",
- //"getMeasuredHeightAndState",
- //"getMeasuredState",
- //"getMeasuredWidth",
- //"getMeasuredWidthAndState",
- //"getMinimumHeight",
- //"getMinimumWidth",
- //"getNextFocusDownId",
- //"getNextFocusForwardId",
- //"getNextFocusLeftId",
- //"getNextFocusRightId",
- //"getNextFocusUpId",
- //"getOnFocusChangedListener",
- //"getOverScrollMethod",
- //"getOverlay",
- //"getPaddingBottom",
- //"getPaddingEnd",
- //"getPaddingLeft",
- //"getPaddingRight",
- //"getPaddingStart",
- //"getPaddingTop",
- //"getParent",
- //"getParentForAccessibility",
- //"getPivotX",
- //"getPivotY",
- //"getResources",
- //"getRight",
- //"getRootView",
- //"getRotation",
- //"getRotationX",
- //"getRotationY",
- "getScaleX",
- "getScaleY",
- //"getScrollBarDefaultDelayBeforeFade",
- //"getScrollBarFadeDuration",
- //"getScrollBarSize",
- //"getScrollBarStyle",
- //"getScrollX",
- //"getScrollY",
- //"getSolidColor",
- //"getSystemUiVisibility",
- //"getTag",
- //"getTextAlignment",
- //"getTextDirection",
- //"getTop",
- //"getTouchDelegate",
- //"getTouchables",
- //"getTranslationX",
- //"getTranslationY",
- //"getVerticalFadingEdgeLength",
- //"getVerticalScrollbarPosition",
- //"getVerticalScrollbarWidth",
- //"getViewTreeObserver",
- //"getVisibility",
- //"getWidth",
- //"getWindowId",
- //"getWindowSystemUiVisbility",
- //"getWindowToken",
- //"getWindowVisibility",
- //"getX",
- //"getY",
- //"hasFocus",
- //"hasFocusable",
- //"hasOnClickListener",
- //"hasOverlappingRendering",
- //"hasTransientState",
- //"hasWindowFocus",
- //"isActivated",
- //"isAttachedToWindow",
- //"isClickable",
- //"isDirty",
- //"isDrawingCacheEnabled",
- //"isDuplicateParentStateEnabled",
- //"isEnabled",
- //"isFocusable",
- //"isFocusableInTouchWindow",
- //"isFocused",
- //"isHapticFeedbackEnabled",
- //"isHardwareAccelerated",
- //"isHorizontalFadingEdgeEnabled",
- //"isHovered",
- //"idInEditMode",
- //"isInLayout",
- //"isInTouchMode",
- //"isLaidOut",
- //"isLayoutDirectionResolved",
- //"isLayoutRequested",
- //"isLongClickable",
- //"isOpaque",
- //"isPaddingRelative",
- //"isPressed",
- //"isSaveEnabled",
- //"isSaveFromParentEnabled",
- //"isScrollContainer",
- //"isScrollBarFadingEnabled",
- //"isSelected",
- //"isShown",
- //"isSoundEffectsEnabled",
- //"isTextAlignmentResolved",
- //"isTextDirectionResolved",
- //"isVerticalFadingEdgeEnabled",
- //"isVerticalScrollBarEnabled"
- };
-
- if (isOnParent)
- query = query + " parent * index:0";
-
- foreach (var property in properties) {
- object prop;
- bool found =
- MaybeGetProperty<string> (app, query, property, out prop) ||
- //MaybeGetProperty<int> (app, query, property, out prop) ||
- MaybeGetProperty<float> (app, query, property, out prop) ||
- MaybeGetProperty<bool> (app, query, property, out prop);
-
- if (found)
- continue;
- //if (found)
- // Logger.LogLine (string.Format ("{0,-30}: {1}", property, prop));
- }
-
- //Logger.LogLine();
-
- }
-
- static bool MaybeGetLayerProperty<T> (IApp app, string query, string property, out object result)
- {
-
- try {
- result = app.Query (q => q.Raw (query).Invoke ("layer").Invoke (property).Value<T> ()).First ();
- } catch {
- result = null;
- return false;
- }
-
- return true;
- }
-
- static bool MaybeGetProperty<T> (IApp app, string query, string property, out object result)
- {
-
- try {
- result = app.Query (q => q.Raw (query).Invoke (property).Value<T> ()).First ();
- } catch {
- result = null;
- return false;
- }
-
- return true;
- }
- }
-}
-
diff --git a/Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj b/Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj
index 83a6d756..02b39371 100644
--- a/Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj
+++ b/Xamarin.Forms.Core.iOS.UITests/Xamarin.Forms.Core.iOS.UITests.csproj
@@ -64,53 +64,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
- <Compile Include="BaseTestFixture.cs" />
- <Compile Include="UITestCategories.cs" />
- <Compile Include="PlatformQueries.cs" />
- <Compile Include="Remotes\BaseViewContainerRemote.cs" />
- <Compile Include="Remotes\EventViewContainerRemote.cs" />
- <Compile Include="Remotes\LayeredViewContainerRemote.cs" />
- <Compile Include="Remotes\ViewContainerRemote.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Queries.cs" />
- <Compile Include="Remotes\StateViewContainerRemote.cs" />
- <Compile Include="Remotes\RemoteFactory.cs" />
- <Compile Include="Tests\ContextActionsUITests.cs" />
- <Compile Include="Tests\ActivityIndicatorUITests.cs" />
- <Compile Include="Tests\Legacy-CellsUITests.cs" />
- <Compile Include="Tests\DatePickerUITests.cs" />
- <Compile Include="Tests\BoxViewUITests.cs" />
- <Compile Include="Tests\EditorUITests.cs" />
- <Compile Include="Tests\FrameUITests.cs" />
- <Compile Include="Tests\ImageUITests.cs" />
- <Compile Include="Tests\WebViewUITests.cs" />
- <Compile Include="Tests\TimePickerUITests.cs" />
- <Compile Include="Tests\SwitchUITests.cs" />
- <Compile Include="Tests\StepperUITests.cs" />
- <Compile Include="Tests\SliderUITests.cs" />
- <Compile Include="Tests\SearchBarUITests.cs" />
- <Compile Include="Tests\ProgressBarUITests.cs" />
- <Compile Include="Tests\PickerUITests.cs" />
- <Compile Include="Tests\LabelUITests.cs" />
- <Compile Include="Tests\EntryUITests.cs" />
- <Compile Include="Tests\ButtonUITests.cs" />
- <Compile Include="Tests\ViewUITests.cs" />
- <Compile Include="Utilities\AppExtensions.cs" />
- <Compile Include="Utilities\Drag.cs" />
- <Compile Include="Utilities\Gestures.cs" />
- <Compile Include="Utilities\Logger.cs" />
- <Compile Include="Utilities\NumericExtensions.cs" />
- <Compile Include="Utilities\ParsingUtils.cs" />
- <Compile Include="Utilities\UITestCustomExceptions.cs" />
- <Compile Include="Utilities\ViewInspector.cs" />
- <Compile Include="Tests\DisplayAlertUITests.cs" />
- <Compile Include="Tests\ActionSheetUITests.cs" />
- <Compile Include="Tests\ToolbarItemTests.cs" />
- <Compile Include="Tests\RootGalleryUITests.cs" />
- <Compile Include="Tests\ScrollViewUITests.cs" />
- <Compile Include="Tests\Legacy-UnevenListTests.cs" />
- <Compile Include="Tests\AppearingUITests.cs" />
- <Compile Include="Tests\AutomationIDUITests.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@@ -137,6 +91,7 @@
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
<Import Project="..\Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems" Label="Shared" />
+ <Import Project="..\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems" Label="Shared" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">