Skip to content

Commit b59eafb

Browse files
committed
Add a test scenario for pen barrel button click operation using W3C Actions API
Create FindAppTitleBar in AlarmsClockBase WebDriverAPI tests to support older apps Update Window WebDriverAPI tests to use Edge private windows
1 parent d3ee24b commit b59eafb

File tree

5 files changed

+54
-12
lines changed

5 files changed

+54
-12
lines changed

Tests/WebDriverAPI/ActionsPen.cs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,36 @@ public static void ClassCleanup()
4646
TearDown();
4747
}
4848

49+
[TestMethod]
50+
public void Pen_Click_BarrelButton()
51+
{
52+
// Create a new test alarm
53+
string alarmName = "PenBarrelButtonTest";
54+
DeletePreviouslyCreatedAlarmEntry(alarmName);
55+
AddAlarmEntry(alarmName);
56+
Thread.Sleep(TimeSpan.FromSeconds(3));
57+
58+
var alarmEntries = session.FindElementsByXPath($"//ListItem[starts-with(@Name, \"{alarmName}\")]");
59+
Assert.IsNotNull(alarmEntries);
60+
Assert.AreEqual(1, alarmEntries.Count);
61+
62+
// Open a the context menu on the alarm entry using long tap (press and hold) action and click delete
63+
PointerInputDevice penDevice = new PointerInputDevice(PointerKind.Pen);
64+
ActionSequence sequence = new ActionSequence(penDevice, 0);
65+
sequence.AddAction(penDevice.CreatePointerMove(alarmEntries[0], 0, 0, TimeSpan.Zero));
66+
sequence.AddAction(penDevice.CreatePointerDown(PointerButton.PenBarrel));
67+
sequence.AddAction(penDevice.CreatePointerUp(PointerButton.PenBarrel));
68+
session.PerformActions(new List<ActionSequence> { sequence });
69+
70+
Thread.Sleep(TimeSpan.FromSeconds(1));
71+
session.FindElementByName("Delete").Click();
72+
Thread.Sleep(TimeSpan.FromSeconds(1));
73+
74+
alarmEntries = session.FindElementsByXPath($"//ListItem[starts-with(@Name, \"{alarmName}\")]");
75+
Assert.IsNotNull(alarmEntries);
76+
Assert.AreEqual(0, alarmEntries.Count);
77+
}
78+
4979
[TestMethod]
5080
public void Pen_Click_OriginElement()
5181
{
@@ -161,7 +191,7 @@ public void Pen_Click_OriginViewport()
161191
[TestMethod]
162192
public void Pen_DoubleClick()
163193
{
164-
WindowsElement appNameTitle = session.FindElementByAccessibilityId("AppName");
194+
WindowsElement appNameTitle = FindAppTitleBar();
165195
WindowsElement maximizeButton = session.FindElementByAccessibilityId("Maximize");
166196

167197
// Set focus on the application by switching window to itself
@@ -203,7 +233,7 @@ public void Pen_DoubleClick()
203233
[TestMethod]
204234
public void Pen_DragAndDrop()
205235
{
206-
WindowsElement appNameTitle = session.FindElementByAccessibilityId("AppName");
236+
WindowsElement appNameTitle = FindAppTitleBar();
207237
const int offset = 100;
208238

209239
// Save application window original position
@@ -287,7 +317,6 @@ public void Pen_LongClick()
287317
Assert.AreEqual(0, alarmEntries.Count);
288318
}
289319

290-
291320
[TestMethod]
292321
public void Pen_Scroll_Horizontal()
293322
{

Tests/WebDriverAPI/ActionsTouch.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public void Touch_Click_OriginViewport()
161161
[TestMethod]
162162
public void Touch_DoubleClick()
163163
{
164-
WindowsElement appNameTitle = session.FindElementByAccessibilityId("AppName");
164+
WindowsElement appNameTitle = FindAppTitleBar();
165165
WindowsElement maximizeButton = session.FindElementByAccessibilityId("Maximize");
166166

167167
// Set focus on the application by switching window to itself
@@ -203,7 +203,7 @@ public void Touch_DoubleClick()
203203
[TestMethod]
204204
public void Touch_DragAndDrop()
205205
{
206-
WindowsElement appNameTitle = session.FindElementByAccessibilityId("AppName");
206+
WindowsElement appNameTitle = FindAppTitleBar();
207207
const int offset = 100;
208208

209209
// Save application window original position
@@ -287,7 +287,6 @@ public void Touch_LongClick()
287287
Assert.AreEqual(0, alarmEntries.Count);
288288
}
289289

290-
291290
[TestMethod]
292291
public void Touch_Scroll_Horizontal()
293292
{

Tests/WebDriverAPI/AppSessionBase/AlarmClockBase.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,5 +152,19 @@ protected static void DismissAddAlarmPage()
152152
session.DismissAlarmDialogIfThere();
153153
}
154154
}
155+
156+
protected static WindowsElement FindAppTitleBar()
157+
{
158+
WindowsElement element;
159+
try
160+
{
161+
element = session.FindElementByAccessibilityId("AppName");
162+
}
163+
catch (InvalidOperationException)
164+
{
165+
element = session.FindElementByAccessibilityId("TitleBar");
166+
}
167+
return element;
168+
}
155169
}
156170
}

Tests/WebDriverAPI/AppSessionBase/WebDriverApiExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ internal static WindowsElement FindCalculatorTitleByAccessibilityId(this Windows
2626
WindowsElement element;
2727
try
2828
{
29-
element = session.FindElementByAccessibilityId("AppNameTitle");
29+
element = session.FindElementByAccessibilityId("AppName");
3030
}
3131
catch (InvalidOperationException)
3232
{
33-
element = session.FindElementByAccessibilityId("AppName");
33+
element = session.FindElementByAccessibilityId("AppNameTitle");
3434
}
3535
return element;
3636
}

Tests/WebDriverAPI/Window.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ public void GetWindowHandles_ModernApp()
133133
// Set focus on itself
134134
session.SwitchTo().Window(session.CurrentWindowHandle);
135135

136-
// Open a new window
137-
session.Keyboard.SendKeys(Keys.Control + "n" + Keys.Control);
136+
// Open a new window in private mode
137+
session.Keyboard.SendKeys(Keys.Control + Keys.Shift + "p" + Keys.Shift + Keys.Control);
138138
Thread.Sleep(TimeSpan.FromSeconds(3));
139139
var windowHandlesAfter = session.WindowHandles;
140140
Assert.IsNotNull(windowHandlesAfter);
@@ -167,8 +167,8 @@ public void SwitchWindows()
167167
// Set focus on itself
168168
session.SwitchTo().Window(session.CurrentWindowHandle);
169169

170-
// Open a new window
171-
session.Keyboard.SendKeys(Keys.Control + "n" + Keys.Control);
170+
// Open a new window in private mode
171+
session.Keyboard.SendKeys(Keys.Control + Keys.Shift + "p" + Keys.Shift + Keys.Control);
172172
Thread.Sleep(TimeSpan.FromSeconds(3));
173173
var multipleWindowHandles = session.WindowHandles;
174174
Assert.IsTrue(multipleWindowHandles.Count > 1);

0 commit comments

Comments
 (0)