This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/MobileApps/MyDriving/MyDriving.UITests/Pages/ProfilePage.cs

67 lines
2.2 KiB
C#
Raw Permalink Normal View History

2022-11-03 20:41:13 +00:00
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.
using System;
using NUnit.Framework;
using Xamarin.UITest;
using Query = System.Func<Xamarin.UITest.Queries.AppQuery, Xamarin.UITest.Queries.AppQuery>;
namespace MyDriving.UITests
{
public class ProfilePage : BasePage
{
readonly Query FuelConsumptionField;
readonly Query DistanceField;
readonly Query SettingsTab;
public ProfilePage ()
: base (x => x.Marked("profile_image"), x => x.Raw("* {text CONTAINS 'Driving Skills: '}"))
{
if (OnAndroid)
{
FuelConsumptionField = x => x.Id("text_fuel_consumption");
DistanceField = x => x.Id("text_distance");
}
if (OniOS)
{
SettingsTab = x => x.Id("tab_Settings.png");
FuelConsumptionField = x => x.Class("ProfileStatCell").Descendant().Marked("Fuel Consumption").Sibling();
DistanceField = x => x.Class("ProfileStatCell").Descendant().Marked("Total Distance").Sibling();
}
}
public ProfilePage CheckFuelMetric(bool metric)
{
App.ScrollDownTo(FuelConsumptionField);
var fuelText = App.Query(FuelConsumptionField)[0].Text;
App.Screenshot("Verifying fuel units correct");
var expectedUnits = metric ? "l" : "gal";
StringAssert.Contains(expectedUnits, fuelText, message:"Couldnt verify fuel units");
return this;
}
public ProfilePage CheckDistanceMetric(bool metric)
{
App.ScrollDownTo(DistanceField);
var distanceText = App.Query(DistanceField)[0].Text;
App.Screenshot("Verifying distance units correct");
var expectedUnits = metric ? "km" : "miles";
StringAssert.Contains(expectedUnits, distanceText, message: "Couldnt verify distance units");
return this;
}
public void NavigateToSettings()
{
if (OnAndroid)
return;
App.Tap(SettingsTab);
App.Screenshot("Tapped Settings Tab");
}
}
}