зеркало из https://github.com/DeGsoft/maui-linux.git
103 строки
2.1 KiB
C#
103 строки
2.1 KiB
C#
using System.Diagnostics;
|
|
using Xamarin.Forms.CustomAttributes;
|
|
using Xamarin.Forms.Internals;
|
|
|
|
#if UITEST
|
|
using NUnit.Framework;
|
|
using Xamarin.UITest;
|
|
#endif
|
|
|
|
namespace Xamarin.Forms.Controls.Issues
|
|
{
|
|
[Preserve(AllMembers = true)]
|
|
public class Person
|
|
{
|
|
public string Name { get; set; }
|
|
|
|
public Person (string name)
|
|
{
|
|
Name = name;
|
|
}
|
|
}
|
|
|
|
|
|
[Preserve(AllMembers = true)]
|
|
public class CustomViewCell : ViewCell
|
|
{
|
|
public CustomViewCell ()
|
|
{
|
|
int tapsFired = 0;
|
|
|
|
Height = 50;
|
|
|
|
var label = new Label {
|
|
Text = "I have been selected:"
|
|
};
|
|
|
|
if (this is CustomViewCellBindingContext)
|
|
label.Text = "If you can read this text the UI Test has failed";
|
|
|
|
Tapped += (s, e) => {
|
|
tapsFired++;
|
|
label.Text = "I have been selected:" + tapsFired;
|
|
|
|
var cell = (CustomViewCell)s;
|
|
};
|
|
|
|
View = label;
|
|
}
|
|
}
|
|
|
|
|
|
[Preserve(AllMembers = true)]
|
|
public class CustomViewCellBindingContext : CustomViewCell
|
|
{
|
|
public CustomViewCellBindingContext()
|
|
{
|
|
}
|
|
}
|
|
|
|
#if UITEST
|
|
[NUnit.Framework.Category(Core.UITests.UITestCategories.UwpIgnore)]
|
|
#endif
|
|
[Preserve (AllMembers=true)]
|
|
[Issue (IssueTracker.Github, 935, "ViewCell.ItemTapped only fires once for ListView.SelectedItem", PlatformAffected.Android)]
|
|
public class Issue935 : TestContentPage
|
|
{
|
|
protected override void Init ()
|
|
{
|
|
Title = "List Page";
|
|
|
|
var items = new [] {
|
|
new CustomViewCellBindingContext()
|
|
};
|
|
|
|
var cellTemplate = new DataTemplate (typeof(CustomViewCell));
|
|
|
|
var list = new ListView () {
|
|
ItemTemplate = cellTemplate,
|
|
ItemsSource = items
|
|
};
|
|
|
|
Content = list;
|
|
}
|
|
|
|
#if UITEST
|
|
[Test]
|
|
[Description ("Verify that OnTapped is fired every time a ViewCell is tapped")]
|
|
[UiTest (typeof(ViewCell))]
|
|
[UiTest (typeof(ListView))]
|
|
[UiTest (typeof(ListView), "SelectedItem")]
|
|
public void Issue935TestsMultipleOnTappedViewCell ()
|
|
{
|
|
RunningApp.Tap (q => q.Marked ("I have been selected:"));
|
|
RunningApp.Screenshot ("Tapped Cell Once");
|
|
RunningApp.Tap (q => q.Marked ("I have been selected:1"));
|
|
RunningApp.WaitForElement (q => q.Marked ("I have been selected:2"));
|
|
RunningApp.Screenshot ("Tapped Cell Twice");
|
|
}
|
|
#endif
|
|
|
|
}
|
|
}
|