summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs')
-rw-r--r--Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs114
1 files changed, 0 insertions, 114 deletions
diff --git a/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs b/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs
deleted file mode 100644
index 548ff06d..00000000
--- a/Xamarin.Forms.Core.iOS.UITests/Utilities/Gestures.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using System;
-using System.Dynamic;
-using System.Linq;
-using System.Security.Cryptography;
-
-using Xamarin.UITest;
-using Xamarin.UITest.Android;
-using Xamarin.UITest.iOS;
-using Xamarin.UITest.Queries;
-
-namespace Xamarin.Forms.Core.UITests
-{
- internal static class Gestures
- {
- public static bool ScrollForElement (this IApp app, string query, Drag drag, int maxSteps = 25)
- {
- int count = 0;
-
- int centerTolerance = 50;
-
- Func<AppQuery, AppQuery> elementQuery = q => q.Raw (query);
-
- // Visible elements
- if (app.Query (elementQuery).Length > 1) {
- throw new UITestQueryMultipleResultsException (query);
- }
-
- // check to see if the element is visible already
- if (app.Query (elementQuery).Length == 1) {
- // centering an element whos CenterX is close to the bounding rectangle's center X can sometime register the swipe as a tap
- float elementDistanceToDragCenter = Math.Abs (app.Query (elementQuery).First ().Rect.CenterY - drag.DragBounds.CenterY);
- if (elementDistanceToDragCenter > centerTolerance)
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- // loop until element is seen
- while (app.Query (elementQuery).Length == 0 && count < maxSteps) {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- count++;
- }
-
- if (count != maxSteps) {
- // centering an element whos CenterX is close to the bounding rectangle's center X can sometime register the swipe as a tap
- float elementDistanceToDragCenter = Math.Abs (app.Query (elementQuery).First ().Rect.CenterY - drag.DragBounds.CenterY);
- if (elementDistanceToDragCenter > centerTolerance)
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- count = 0;
- drag.DragDirection = drag.OppositeDirection;
-
- while (app.Query (elementQuery).Length == 0 && count < maxSteps) {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- count++;
- }
-
- if (count != maxSteps) {
- app.CenterElementInView (elementQuery, drag.DragBounds, drag.DragDirection);
- return true;
- }
-
- return false;
- }
-
- static void CenterElementInView (this IApp app, Func<AppQuery, AppQuery> element, AppRect containingView, Drag.Direction direction)
- {
- // TODO Implement horizontal centering
-
- if (direction == Drag.Direction.BottomToTop || direction == Drag.Direction.TopToBottom) {
-
- var elementBounds = app.Query (element).First ().Rect;
-
- bool elementCenterBelowContainerCenter = elementBounds.CenterY > containingView.CenterY;
- bool elementCenterAboveContainerCenter = elementBounds.CenterY < containingView.CenterY;
-
- var displacementToCenter = Math.Abs (elementBounds.CenterY - containingView.CenterY) / 2;
-
- // avoid drag as touch
- if (displacementToCenter < 50)
- return;
-
- if (elementCenterBelowContainerCenter) {
-
- var drag = new Drag (
- containingView,
- containingView.CenterX, containingView.CenterY + displacementToCenter,
- containingView.CenterX, containingView.CenterY - displacementToCenter,
- Drag.Direction.BottomToTop
- );
-
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
-
- } else if (elementCenterAboveContainerCenter) {
-
- var drag = new Drag (
- containingView,
- containingView.CenterX, containingView.CenterY - displacementToCenter,
- containingView.CenterX, containingView.CenterY + displacementToCenter,
- Drag.Direction.TopToBottom
- );
-
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- }
- }
- }
-
- public static void Pan (this IApp app, Drag drag)
- {
- app.DragCoordinates (drag.XStart, drag.YStart, drag.XEnd, drag.YEnd);
- }
- }
-} \ No newline at end of file