This repository has been archived by the owner on May 1, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* [Controls] Add repo and uitest for issue 2740 * [Android] Add native ctor to PageContainer
- Loading branch information
Showing
3 changed files
with
85 additions
and
0 deletions.
There are no files selected for viewing
78 changes: 78 additions & 0 deletions
78
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2740.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using Xamarin.Forms.CustomAttributes; | ||
using Xamarin.Forms.Internals; | ||
|
||
#if UITEST | ||
using Xamarin.UITest; | ||
using NUnit.Framework; | ||
#endif | ||
|
||
namespace Xamarin.Forms.Controls.Issues | ||
{ | ||
[Preserve(AllMembers = true)] | ||
[Issue(IssueTracker.Github, 2740, "System.NotSupportedException: Unable to activate instance of type Xamarin.Forms.Platform.Android.PageContainer from native handle", PlatformAffected.Android)] | ||
public class Issue2740 : TestMasterDetailPage // or TestMasterDetailPage, etc ... | ||
{ | ||
protected override void Init() | ||
{ | ||
var page = new AddressListView(); | ||
|
||
// Initialize ui here instead of ctor | ||
Master = new ContentPage | ||
{ | ||
Content = new Label | ||
{ | ||
Text = "Click a item on the left then the toolbar item switch" | ||
}, | ||
Title = "2740" | ||
}; | ||
Detail = new NavigationPage(page); | ||
} | ||
|
||
public partial class AddressListView : ContentPage | ||
{ | ||
|
||
public AddressListView() | ||
{ | ||
var listview = new ListView(); | ||
listview.ItemsSource = new List<string> { "1", "2" }; | ||
listview.ItemTapped += OnItemTapped; | ||
Content = listview; | ||
Title = "Unit List"; | ||
} | ||
|
||
public async void OnItemTapped(object sender, ItemTappedEventArgs e) | ||
{ | ||
var p = new UnitViolationView(); | ||
await Navigation.PushAsync(p); | ||
} | ||
} | ||
|
||
public partial class UnitViolationView : ContentPage | ||
{ | ||
public UnitViolationView() | ||
{ | ||
ToolbarItems.Add(new ToolbarItem("Switch", null, MapAddressSwitch) { AutomationId = "Switch" }); | ||
} | ||
|
||
async void MapAddressSwitch() | ||
{ | ||
await Navigation.PopAsync(false); | ||
(Application.Current.MainPage as MasterDetailPage).Detail = new NavigationPage(new AddressListView()); | ||
} | ||
} | ||
|
||
#if UITEST | ||
[Test] | ||
public void Issue2740Test () | ||
{ | ||
RunningApp.WaitForElement (q => q.Marked ("1")); | ||
RunningApp.Tap (q => q.Marked ("1")); | ||
RunningApp.WaitForElement (q => q.Marked ("Switch")); | ||
RunningApp.Tap (q => q.Marked ("Switch")); | ||
RunningApp.WaitForElement (q => q.Marked ("1")); | ||
} | ||
#endif | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters