116 строки
3.1 KiB
C#
116 строки
3.1 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
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)]
|
|
[Issue (IssueTracker.None, 0, "Carousel Async Add Page Issue", PlatformAffected.All, NavigationBehavior.PushModalAsync)]
|
|
public class CarouselAsync : TestCarouselPage
|
|
{
|
|
protected override void Init ()
|
|
{
|
|
Children.Add (new ContentPage {
|
|
BackgroundColor = Color.Red,
|
|
Content = new Label {
|
|
Text = "Page One"
|
|
}
|
|
});
|
|
Children.Add (new ContentPage {
|
|
BackgroundColor = Color.Green,
|
|
Content = new Label {
|
|
Text = "Page Two"
|
|
}
|
|
});
|
|
Update (this);
|
|
}
|
|
|
|
static void Update (CarouselPage page)
|
|
{
|
|
Device.StartTimer (TimeSpan.FromSeconds (1), () => {
|
|
page.Children.Remove (page.Children.Skip (1).First () as ContentPage);
|
|
Device.StartTimer (TimeSpan.FromSeconds (1), () => {
|
|
page.Children.Add (new ContentPage {
|
|
BackgroundColor = Color.Blue,
|
|
Content = new Label {
|
|
Text = "Page Two - Added"
|
|
}
|
|
});
|
|
page.Children.Add (new ContentPage {
|
|
BackgroundColor = Color.Gray,
|
|
Content = new Label {
|
|
Text = "Page Three - Added"
|
|
}
|
|
});
|
|
return false;
|
|
});
|
|
return false;
|
|
});
|
|
}
|
|
|
|
#if UITEST
|
|
[Test]
|
|
[Description ("All elements renderered")]
|
|
public void CarouselAsyncTestsAllElementsPresent ()
|
|
{
|
|
RunningApp.WaitForElement (q => q.Marked ("Page One"));
|
|
RunningApp.Screenshot ("All elements present");
|
|
}
|
|
|
|
[Test]
|
|
[Description ("Async Pages inserted into a CarouselPage")]
|
|
public void CarouselAsyncTestsAllPagesExistAfterAsyncAdding ()
|
|
{
|
|
RunningApp.WaitForElement (q => q.Marked ("Page One"));
|
|
|
|
var window = RunningApp.Query (q => q.Raw ("*").Index (0));
|
|
var width = window [0].Rect.Width;
|
|
var height = window [0].Rect.Height;
|
|
|
|
System.Threading.Thread.Sleep (3000);
|
|
|
|
// TODO Implement swipe left and swipe right
|
|
//App.DragFromTo (width - 10.0f, height / 2.0f, 10.0f, height / 2.0f);
|
|
//App.WaitForElement (q => q.Marked ("Page Two - Added"));
|
|
//App.Screenshot ("At Page 2");
|
|
|
|
//Thread.Sleep (3000);
|
|
|
|
//App.DragFromTo (width - 10.0f, height / 2.0f, 10.0f, height / 2.0f);
|
|
//App.WaitForElement (q => q.Marked ("Page Three - Added"));
|
|
//App.Screenshot ("At Page 3");
|
|
}
|
|
|
|
/*******************************************************/
|
|
/**************** Landscape tests **********************/
|
|
/*******************************************************/
|
|
|
|
[Test]
|
|
[Description ("All elements renderered - landscape")]
|
|
public void CarouselAsyncTestsAllElementsPresentLandscape ()
|
|
{
|
|
RunningApp.SetOrientationLandscape ();
|
|
CarouselAsyncTestsAllElementsPresent ();
|
|
RunningApp.SetOrientationPortrait ();
|
|
}
|
|
|
|
[Test]
|
|
[Description ("Async Pages inserted into a CarouselPage - landscape")]
|
|
public void CarouselAsyncTestsAllPagesExistAfterAsyncAddingLandscape ()
|
|
{
|
|
RunningApp.SetOrientationLandscape ();
|
|
CarouselAsyncTestsAllPagesExistAfterAsyncAdding ();
|
|
RunningApp.SetOrientationPortrait ();
|
|
}
|
|
#endif
|
|
}
|
|
}
|