Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 14 additions & 30 deletions test/integration/Windows/MultiSelectControlTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ namespace Appium.Net.Integration.Tests.Windows
{
public class MultiSelectControlTest
{
private WindowsDriver _driver;
protected static WindowsDriver AlarmClockSession;
protected static WindowsDriver DesktopSession;

Expand All @@ -38,6 +37,7 @@ public void Setup()
appCapabilities.App = "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App";
appCapabilities.PlatformName ="Windows";
appCapabilities.DeviceName = "WindowsPC";
appCapabilities.AddAdditionalAppiumOption("ms:experimental-webdriver", true);

var serverUri = Env.ServerIsRemote() ? AppiumServers.RemoteServerUri : AppiumServers.LocalServiceUri;

Expand All @@ -56,14 +56,11 @@ public void Setup()
new WindowsDriver(serverUri, desktopCapabilities);
Assert.IsNotNull(DesktopSession);

// Ensure app is started in the default main page
ReturnToMainPage();
}

[OneTimeTearDown]
public void OneTimeTearDown()
{
ReturnToMainPage();
SwitchToAlarmTab();

// Delete all created alarms
Expand All @@ -72,7 +69,10 @@ public void OneTimeTearDown()
{
/////// TODO - Implement for Appium
//// AlarmClockSession.Mouse.ContextClick(alarmEntry.Coordinates);
AlarmClockSession.FindElement(MobileBy.Name("Delete")).Click();
/// AlarmClockSession.FindElement(MobileBy.AccessibilityId("ContextMenuDelete")).Click();
/// For now Click and delete
alarmEntry.Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("DeleteButton")).Click();
}

AlarmClockSession.Dispose();
Expand All @@ -90,6 +90,7 @@ public void FullMultiSelectScenario()
// Add an alarm at 1 minute after local time
SwitchToAlarmTab();
AddAlarm(localTimeText);
Thread.Sleep(300);
var alarmEntries = AlarmClockSession.FindElements(MobileBy.Name("Windows Application Driver Test Alarm"));
Assert.IsTrue(alarmEntries.Count > 0);
}
Expand All @@ -111,7 +112,7 @@ public string ReadLocalTime()
AlarmClockSession.FindElement(MobileBy.AccessibilityId("ClockButton"));
if (worldClockPivotItem != null)
{
localTimeText = AlarmClockSession.FindElement(MobileBy.AccessibilityId("WorldClockItemGrid")).Text;
localTimeText = AlarmClockSession.FindElement(MobileBy.AccessibilityId("TimeBlock")).GetDomAttribute("Name");
var timeStrings = localTimeText.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);

foreach (var timeString in timeStrings)
Expand Down Expand Up @@ -141,9 +142,9 @@ public void AddAlarm(string timeText)
var period = alarmTime.ToString("tt", fi);

AlarmClockSession.FindElement(MobileBy.AccessibilityId("AddAlarmButton")).Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("AlarmNameTextBox")).Clear();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("AlarmNameTextBox"))
.SendKeys("Windows Application Driver Test Alarm");
var alarmNameBox = AlarmClockSession.FindElement(MobileBy.Name("Alarm name"));
alarmNameBox.Clear();
alarmNameBox.SendKeys("Windows Application Driver Test Alarm");
AppiumElement periodSelector = null;
try
{
Expand All @@ -154,11 +155,11 @@ public void AddAlarm(string timeText)
hourString = alarmTime.ToString("HH", fi);
}
periodSelector?.FindElement(MobileBy.Name(period)).Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("HourLoopingSelector")).FindElement(MobileBy.Name(hourString)).Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("MinuteLoopingSelector")).FindElement(MobileBy.Name(minuteString))
.Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("HourPicker")).SendKeys(hourString);
AlarmClockSession.FindElement(MobileBy.AccessibilityId("MinutePicker")).Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("MinutePicker")).SendKeys(minuteString);
Thread.Sleep(500);
AlarmClockSession.FindElement(MobileBy.AccessibilityId("AlarmSaveButton")).Click();
AlarmClockSession.FindElement(MobileBy.AccessibilityId("PrimaryButton")).Click();
}
}

Expand All @@ -175,22 +176,5 @@ public void DismissNotification()
{
}
}

private static void ReturnToMainPage()
{
// Try to return to main page in case application is started in nested view
try
{
AppiumElement backButton = null;
do
{
backButton = AlarmClockSession.FindElement(MobileBy.AccessibilityId("Back"));
backButton.Click();
} while (backButton != null);
}
catch
{
}
}
}
}