summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2017-06-22 16:33:03 -0600
committerRui Marinho <me@ruimarinho.net>2017-06-22 23:33:03 +0100
commit075a6b370d1dce8f211264422723276411f98b85 (patch)
treeead4eeb9d5a0edf1fb9f9926c88dfd9510073bc7 /Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared
parent330b5156164e7951e01bc2493f9ca54a2587783e (diff)
downloadxamarin-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')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/MapsModalCrash.cs86
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems1
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" />