summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs
new file mode 100644
index 00000000..e1755ef0
--- /dev/null
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.ObjectModel;
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+namespace Xamarin.Forms.Controls
+{
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Bugzilla, 44129, "Crash when adding tabbed page after removing all pages using DataTemplates")]
+ public class Bugzilla44129 : TestTabbedPage // or TestMasterDetailPage, etc ...
+ {
+ protected override void Init()
+ {
+ // Initialize ui here instead of ctor
+ var viewModels = new ObservableCollection<string>();
+ viewModels.Add("First");
+ viewModels.Add("Second");
+ var template = new DataTemplate(() =>
+ {
+ ContentPage page = new ContentPage();
+ var crashMe = new Button { Text = "Crash Me" };
+ crashMe.Clicked += (sender, args) =>
+ {
+ viewModels.Clear();
+ viewModels.Add("Third");
+ };
+
+ page.Content = crashMe;
+ page.SetBinding(ContentPage.TitleProperty, ".");
+
+ return page;
+ });
+
+ ItemTemplate = template;
+ ItemsSource = viewModels;
+ }
+
+#if UITEST
+ [Test]
+ public void Issue44129Test ()
+ {
+ RunningApp.Screenshot ("I am at Issue 1");
+ RunningApp.WaitForElement (q => q.Marked ("First"));
+ RunningApp.Screenshot ("I see the Label");
+ RunningApp.Tap(q => q.Marked("Second"));
+ RunningApp.Tap(q => q.Marked("Crash Me"));
+ }
+#endif
+ }
+} \ No newline at end of file