maui-linux/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issu.../Issue935.cs

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
}
}