diff options
author | Rui Marinho <me@ruimarinho.net> | 2017-03-23 11:03:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-23 11:03:48 +0000 |
commit | 2be80a55a514a050ab5ab07a201d13c111f49f63 (patch) | |
tree | a9cc64903a830e4b754ae6eee3fcc2ebb3ba200d /Xamarin.Forms.Core.UITests.Shared/PlatformQueries.cs | |
parent | 16fcac8cf52ab960e7354a52864b0a72aefdfc1f (diff) | |
download | xamarin-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.UITests.Shared/PlatformQueries.cs')
-rw-r--r-- | Xamarin.Forms.Core.UITests.Shared/PlatformQueries.cs | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UITests.Shared/PlatformQueries.cs b/Xamarin.Forms.Core.UITests.Shared/PlatformQueries.cs new file mode 100644 index 00000000..aeaaf556 --- /dev/null +++ b/Xamarin.Forms.Core.UITests.Shared/PlatformQueries.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections.Generic; +using Xamarin.UITest.Queries; + +namespace Xamarin.Forms.Core.UITests +{ + internal static class PlatformMethodQueries + { +#if __IOS__ || __MACOS__ + 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) }, + }; + +#elif __ANDROID__ || __WINDOWS__ + public static readonly Dictionary<BindableProperty, Tuple<string[], bool>> PropertyPlatformMethodDictionary = new Dictionary + <BindableProperty, Tuple<string[], bool>> + { + { ActivityIndicator.ColorProperty, Tuple.Create(new[] { "getProgressDrawable", "getColor" }, false) }, + { ActivityIndicator.IsRunningProperty, Tuple.Create(new[] { "isIndeterminate" }, false) }, + { Button.BorderColorProperty, Tuple.Create(new[] { "getBackground" }, false) }, + { Button.BorderRadiusProperty, Tuple.Create(new[] { "getBackground" }, false) }, + { Button.BorderWidthProperty, Tuple.Create(new[] { "getBackground" }, false) }, + { Button.ImageProperty, Tuple.Create(new[] { "getBackground" }, false) }, + { Button.FontProperty, Tuple.Create(new[] { "getTypeface", "isBold" }, false) }, + { Button.TextProperty, Tuple.Create(new[] { "getText" }, false) }, + { Button.TextColorProperty, Tuple.Create(new[] { "getCurrentTextColor" }, false) }, + { View.AnchorXProperty, Tuple.Create(new[] { "getPivotX" }, true) }, + { View.AnchorYProperty, Tuple.Create(new[] { "getPivotY" }, true) }, + { View.BackgroundColorProperty, Tuple.Create(new[] { "getBackground", "getColor" }, true) }, + { View.IsEnabledProperty, Tuple.Create(new[] { "isEnabled" }, false) }, + { View.OpacityProperty, Tuple.Create(new[] { "getAlpha" }, true) }, + { View.RotationProperty, Tuple.Create(new[] { "getRotation" }, true) }, + { View.RotationXProperty, Tuple.Create(new[] { "getRotationX" }, true) }, + { View.RotationYProperty, Tuple.Create(new[] { "getRotationY" }, true) }, + { View.ScaleProperty, Tuple.Create(new[] { "getScaleX", "getScaleY" }, true) }, + }; +#endif + } + + internal static class PlatformViews + { +#if __IOS__ || __MACOS__ + 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"; +#elif __ANDROID__ || __WINDOWS__ + public static readonly string ActivityIndicator = "android.widget.ProgressBar"; + public static readonly string BoxView = "xamarin.forms.platform.android.BoxRenderer"; + public static readonly string Button = "android.widget.Button"; + public static readonly string DatePicker = "android.widget.EditText"; + public static readonly string Editor = "xamarin.forms.platform.android.EditorEditText"; + public static readonly string Entry = "xamarin.forms.platform.android.EntryEditText"; + public static readonly string Frame = "xamarin.forms.platform.android.appcompat.FrameRenderer"; + public static readonly string Image = "android.widget.ImageView"; + public static readonly string Label = "android.widget.TextView"; + public static readonly string ListView = "android.widget.ListView"; + public static readonly string OpenGLView = "android.widget.GLSurfaceView"; + public static readonly string Picker = "android.widget.EditText"; + public static readonly string ProgressBar = "android.widget.ProgressBar"; + public static readonly string SearchBar = "android.widget.SearchView"; + public static readonly string Slider = "android.widget.SeekBar"; + public static readonly string Stepper = "button marked:'+'"; + public static readonly string Switch = "android.widget.Switch"; + public static readonly string TableView = "android.widget.ListView"; + public static readonly string TimePicker = "android.widget.EditText"; + public static readonly string WebView = "android.widget.WebView"; +#endif + } + + internal static class PlatformQueries + { +#if __IOS__ || __MACOS__ + 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"); + +#elif __ANDROID__ || __WINDOWS__ + public static readonly Func<AppQuery, AppQuery> Root = q => q.Id("content"); + public static readonly Func<AppQuery, AppQuery> RootPageListView = q => q.Raw("ListViewRenderer index:0"); + public static readonly Func<AppQuery, AppQuery> GalleryListView = q => q.Raw("ListViewRenderer index:1"); + public static readonly Func<AppQuery, AppQuery> PageWithoutNavigationBar = q => q.Raw("* id:'content' index:0"); + + public static readonly Func<AppQuery, AppQuery> NavigationBarBackButton = + q => q.Class("android.support.v7.widget.Toolbar").Child("android.widget.ImageButton"); +#endif + + // 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); + +#if __ANDROID__ + public static Func<AppQuery, AppQuery> EntryWithPlaceholder(string text) + { + return q => q.Raw(string.Format("EntryEditText hint:'{0}'", text)); + } + public static Func<AppQuery, AppQuery> EntryCellWithPlaceholder(string text) + { + return q => q.Raw(string.Format("EntryCellEditText hint:'{0}'", text)); + } + + public static Func<AppQuery, AppQuery> EntryWithText(string text) + { + return q => q.Raw(string.Format("EntryEditText text:'{0}'", text)); + } + + public static Func<AppQuery, AppQuery> EntryCellWithText(string text) + { + return q => q.Raw(string.Format("EntryCellEditText text:'{0}'", text)); + } + + public static Func<AppQuery, AppQuery> EditorsWithText(string text) + { + return q => q.Raw(string.Format("EditorEditText text:'{0}'", text)); + } + + public static Func<AppQuery, AppQuery> EntryWithIndex(int index) + { + return q => q.Raw(string.Format("EntryEditText index:{0}", index)); + } + + public static Func<AppQuery, AppQuery> SearchBarWithIndex(int index) + { + return q => q.Raw(string.Format("SearchView index:{0}", index)); + } + + public static Func<AppQuery, AppQuery> LabelWithIndex(int index) + { + return q => q.Raw(string.Format("TextView index:{0}", index)); + } + + public static Func<AppQuery, AppQuery> LabelWithText(string text) + { + return q => q.Raw(string.Format("TextView text:'{0}'", text)); + } + + public static Func<AppQuery, AppQuery> LabelWithId(string id) + { + return q => q.Raw(string.Format("TextView id:'{0}'", id)); + } + + public static Func<AppQuery, AppQuery> PickerEntryWithIndex(int index) + { + return q => q.Raw(string.Format("EditText index:{0}", index)); + } + + public static Func<AppQuery, AppQuery> PickerEntryWithPlaceholder(string placeholder) + { + return q => q.Raw(string.Format("EditText hint:'{0}'", placeholder)); + } + + public static Func<AppQuery, AppQuery> PickerEntryWithText(string text) + { + return q => q.Raw(string.Format("EditText 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("button marked:'+' index:{0}", index)); + } + +#else + 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)); + } +#endif + + } +}
\ No newline at end of file |