diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2017-06-22 16:33:03 -0600 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-06-22 23:33:03 +0100 |
commit | 075a6b370d1dce8f211264422723276411f98b85 (patch) | |
tree | ead4eeb9d5a0edf1fb9f9926c88dfd9510073bc7 /Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared | |
parent | 330b5156164e7951e01bc2493f9ca54a2587783e (diff) | |
download | xamarin-forms-075a6b370d1dce8f211264422723276411f98b85.tar.gz xamarin-forms-075a6b370d1dce8f211264422723276411f98b85.tar.bz2 xamarin-forms-075a6b370d1dce8f211264422723276411f98b85.zip |
Set the Id field for Android Views created by Forms (#1004)
* Repro of modal-over-map-crash issue
* Automated test for maps modal crash
* Generate Ids for all Renderer Views on Android
* Add Ids for PageContainer and PageRenderer
* Remove TODO comment
* Verify fast renderers aren't disposed before querying Id
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared')
2 files changed, 87 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/MapsModalCrash.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/MapsModalCrash.cs new file mode 100644 index 00000000..fcae4844 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/MapsModalCrash.cs @@ -0,0 +1,86 @@ +using System; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using Xamarin.Forms.Maps; +#if UITEST +using Xamarin.Forms.Core.UITests; +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + +#if UITEST + [Category(UITestCategories.Maps)] + [Category(UITestCategories.ManualReview)] +#endif + + [Preserve(AllMembers = true)] + [Issue(IssueTracker.None, 1701, "Modal Page over Map crashes application", PlatformAffected.Android)] + public class MapsModalCrash : TestContentPage + { + const string StartTest = "Start Test"; + const string DisplayModal = "Click Me"; + const string Success = "SuccessLabel"; + + protected override void Init() + { + var button = new Button { Text = StartTest }; + button.Clicked += (sender, args) => + { + Application.Current.MainPage = MapPage(); + }; + + Content = new StackLayout + { + Padding = new Thickness(0, 20, 0, 0), + Children = + { + button + } + }; + } + + static ContentPage MapPage() + { + var map = new Map(); + + var button = new Button { Text = DisplayModal }; + button.Clicked += (sender, args) => button.Navigation.PushModalAsync(new NavigationPage(SuccessPage())); + + return new ContentPage + { + Content = new StackLayout + { + Children = + { + map, + button + } + } + }; + } + + static ContentPage SuccessPage() + { + return new ContentPage + { + BackgroundColor = Color.LightBlue, + Content = new Label { Text = "If you're seeing this, then the test was a success.", AutomationId = Success } + }; + } + +#if UITEST + [Test] + public void CanDisplayModalOverMap() + { + RunningApp.WaitForElement(StartTest); + RunningApp.Tap(StartTest); + RunningApp.WaitForElement(DisplayModal); + RunningApp.Tap(DisplayModal); + RunningApp.WaitForElement(Success); + } +#endif + } +}
\ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index d77ed10d..a69dd79d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -251,6 +251,7 @@ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla32462.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla36681.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla36479.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)MapsModalCrash.cs" /> <Compile Include="$(MSBuildThisFileDirectory)ModalActivityIndicatorTest.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla37625.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla38658.cs" /> |