Fix failing UI tests for Android FormsApplicationActivity (#1141)
* Fix broken test for 57910 when using FormsApplicationActivity * Fix NRE when removing a page during OnAppearing using FormsApplicationActivity * Update 45926 test to work correctly with FormsApplicationActivity * Update 32830 test so it doesn't crash on FormsApplicationActivity * Longer wait before refreshing appearing messages (to work with FormsApplicationActivity) * Fix input transparency issue with old FrameRenderer * Remove extraneous using directive * Just ignore test 32830 on FormsApplicationActivity * [Controls] Add missing directive
This commit is contained in:
Родитель
0314360850
Коммит
fc6d571e8a
|
@ -533,15 +533,27 @@ namespace Xamarin.Forms.ControlGallery.Android
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public class NoFlashTestNavigationPage : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
|
public class NoFlashTestNavigationPage
|
||||||
|
#if FORMS_APPLICATION_ACTIVITY
|
||||||
|
: Xamarin.Forms.Platform.Android.NavigationRenderer
|
||||||
|
#else
|
||||||
|
: Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !FORMS_APPLICATION_ACTIVITY
|
||||||
protected override void SetupPageTransition(global::Android.Support.V4.App.FragmentTransaction transaction, bool isPush)
|
protected override void SetupPageTransition(global::Android.Support.V4.App.FragmentTransaction transaction, bool isPush)
|
||||||
{
|
{
|
||||||
transaction.SetTransition((int)FragmentTransit.None);
|
transaction.SetTransition((int)FragmentTransit.None);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public class QuickCollectNavigationPage : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
|
public class QuickCollectNavigationPage
|
||||||
|
#if FORMS_APPLICATION_ACTIVITY
|
||||||
|
: Xamarin.Forms.Platform.Android.NavigationRenderer
|
||||||
|
#else
|
||||||
|
: Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
bool _disposed;
|
bool _disposed;
|
||||||
NavigationPage _page;
|
NavigationPage _page;
|
||||||
|
|
|
@ -133,6 +133,8 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
[Test]
|
[Test]
|
||||||
public void Bugzilla32830Test()
|
public void Bugzilla32830Test()
|
||||||
{
|
{
|
||||||
|
IgnoreFormsApplicationActivity();
|
||||||
|
|
||||||
RunningApp.WaitForElement(q => q.Marked(BottomLabel));
|
RunningApp.WaitForElement(q => q.Marked(BottomLabel));
|
||||||
RunningApp.WaitForElement(q => q.Marked(Button1));
|
RunningApp.WaitForElement(q => q.Marked(Button1));
|
||||||
RunningApp.Tap(q => q.Marked(Button1));
|
RunningApp.Tap(q => q.Marked(Button1));
|
||||||
|
@ -140,6 +142,16 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
RunningApp.Tap(q => q.Marked(Button2));
|
RunningApp.Tap(q => q.Marked(Button2));
|
||||||
RunningApp.WaitForElement(q => q.Marked(BottomLabel));
|
RunningApp.WaitForElement(q => q.Marked(BottomLabel));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void IgnoreFormsApplicationActivity()
|
||||||
|
{
|
||||||
|
#if __ANDROID__
|
||||||
|
if (AppSetup.IsFormsApplicationActivity)
|
||||||
|
{
|
||||||
|
Assert.Ignore("This test only applies to FormsAppCompatActivity.");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Xamarin.Forms.CustomAttributes;
|
using Xamarin.Forms.CustomAttributes;
|
||||||
using Xamarin.Forms.Internals;
|
using Xamarin.Forms.Internals;
|
||||||
|
|
||||||
|
@ -66,9 +67,12 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
RunningApp.WaitForElement (q => q.Marked ("New Page"));
|
RunningApp.WaitForElement (q => q.Marked ("New Page"));
|
||||||
|
|
||||||
RunningApp.Tap (q => q.Marked ("New Page"));
|
RunningApp.Tap (q => q.Marked ("New Page"));
|
||||||
|
RunningApp.WaitForElement (q => q.Marked ("Second Page #1"));
|
||||||
RunningApp.Back();
|
RunningApp.Back();
|
||||||
|
RunningApp.WaitForElement (q => q.Marked ("Intermediate Page"));
|
||||||
RunningApp.Back();
|
RunningApp.Back();
|
||||||
RunningApp.Tap(q => q.Marked("Do GC"));
|
RunningApp.Tap(q => q.Marked("Do GC"));
|
||||||
|
RunningApp.Tap(q => q.Marked("Do GC"));
|
||||||
RunningApp.Tap(q => q.Marked("Send Message"));
|
RunningApp.Tap(q => q.Marked("Send Message"));
|
||||||
RunningApp.Tap(q => q.Marked("Do GC"));
|
RunningApp.Tap(q => q.Marked("Do GC"));
|
||||||
|
|
||||||
|
@ -81,6 +85,10 @@ namespace Xamarin.Forms.Controls.Issues
|
||||||
[Preserve(AllMembers = true)]
|
[Preserve(AllMembers = true)]
|
||||||
public class _45926IntermediatePage : ContentPage
|
public class _45926IntermediatePage : ContentPage
|
||||||
{
|
{
|
||||||
|
public _45926IntermediatePage()
|
||||||
|
{
|
||||||
|
Content = new Label { Text = "Intermediate Page" };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Preserve(AllMembers = true)]
|
[Preserve(AllMembers = true)]
|
||||||
|
|
|
@ -109,7 +109,8 @@ namespace Xamarin.Forms.Controls
|
||||||
protected override void OnAppearing ()
|
protected override void OnAppearing ()
|
||||||
{
|
{
|
||||||
base.OnAppearing ();
|
base.OnAppearing ();
|
||||||
Device.StartTimer (new TimeSpan (200), () => {
|
|
||||||
|
Device.StartTimer (TimeSpan.FromMilliseconds(750), () => {
|
||||||
_listMessages.ItemsSource = App.AppearingMessages;
|
_listMessages.ItemsSource = App.AppearingMessages;
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using Android.Graphics;
|
using Android.Graphics;
|
||||||
using Android.Graphics.Drawables;
|
using Android.Graphics.Drawables;
|
||||||
|
using Android.Views;
|
||||||
using AButton = Android.Widget.Button;
|
using AButton = Android.Widget.Button;
|
||||||
using ACanvas = Android.Graphics.Canvas;
|
using ACanvas = Android.Graphics.Canvas;
|
||||||
using GlobalResource = Android.Resource;
|
using GlobalResource = Android.Resource;
|
||||||
|
@ -10,6 +11,7 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
public class FrameRenderer : VisualElementRenderer<Frame>
|
public class FrameRenderer : VisualElementRenderer<Frame>
|
||||||
{
|
{
|
||||||
bool _disposed;
|
bool _disposed;
|
||||||
|
readonly MotionEventHelper _motionEventHelper = new MotionEventHelper();
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
|
@ -22,6 +24,14 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool OnTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
if (base.OnTouchEvent(e))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return _motionEventHelper.HandleMotionEvent(Parent, e);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
|
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
|
||||||
{
|
{
|
||||||
base.OnElementChanged(e);
|
base.OnElementChanged(e);
|
||||||
|
@ -30,6 +40,7 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
{
|
{
|
||||||
UpdateBackground();
|
UpdateBackground();
|
||||||
UpdateCornerRadius();
|
UpdateCornerRadius();
|
||||||
|
_motionEventHelper.UpdateElement(e.NewElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -287,7 +287,10 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
}
|
}
|
||||||
s_currentAnimation = null;
|
s_currentAnimation = null;
|
||||||
tcs.TrySetResult(true);
|
tcs.TrySetResult(true);
|
||||||
((Platform)Element.Platform).NavAnimationInProgress = false;
|
if (Element?.Platform != null)
|
||||||
|
{
|
||||||
|
((Platform)Element.Platform).NavAnimationInProgress = false;
|
||||||
|
}
|
||||||
} });
|
} });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче