summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared
diff options
context:
space:
mode:
authorJason Smith <jason.smith@xamarin.com>2016-10-12 12:45:06 -0700
committerGitHub <noreply@github.com>2016-10-12 12:45:06 -0700
commit739802143552ea1d28544bd05718bf4feeeb5bed (patch)
tree083edbf67b161f0f3351e51507f70708ad1fb8f8 /Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared
parenta64333e29ea6138bc9adf0346e724f155eae3bc9 (diff)
downloadxamarin-forms-739802143552ea1d28544bd05718bf4feeeb5bed.tar.gz
xamarin-forms-739802143552ea1d28544bd05718bf4feeeb5bed.tar.bz2
xamarin-forms-739802143552ea1d28544bd05718bf4feeeb5bed.zip
[A]Don't crash when emptying/populating TabbedPage.ItemsSource (#427)
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44129.cs55
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems1
2 files changed, 56 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
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 a23c7cd0..5e9e9034 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
@@ -190,6 +190,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla39768.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla41271.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla41153.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla44129.cs" />
<Compile Include="$(MSBuildThisFileDirectory)_Template.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue1028.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue1075.cs" />