Commit 6b54f2a0 authored by Arnaud Mandy's avatar Arnaud Mandy Committed by Commit Bot

wpt: screen enumeration: test to verify screen id

Test to verify screen id.
adding 3 displays to display vector.
getScreens() should return 3 screens with ids 0,1,2.
removing middle display from display vector.
getScreens() should return 2 screens with ids 0,1.
removing last display from display vector.
getScreens() should return 1 screen with id 0.

Bug: 1075656
Change-Id: Ib671b760353766d21330b95833b983c9b5e4737f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2238112Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Commit-Queue: Arnaud Mandy <arnaud.mandy@intel.com>
Cr-Commit-Position: refs/heads/master@{#779689}
parent ecb18712
...@@ -33,6 +33,13 @@ var ScreenEnumerationTest = (() => { ...@@ -33,6 +33,13 @@ var ScreenEnumerationTest = (() => {
this.displays_.push(display); this.displays_.push(display);
} }
removeDisplay(id) {
for (var i = 0; i < this.displays_.length; i++) {
if (this.displays_[i].id === id)
this.displays_.splice(i,1);
}
}
async getDisplays() { async getDisplays() {
return Promise.resolve({ return Promise.resolve({
displays: this.displays_, displays: this.displays_,
......
...@@ -16,6 +16,7 @@ The `ScreenEnumerationTest` interface is defined as: ...@@ -16,6 +16,7 @@ The `ScreenEnumerationTest` interface is defined as:
setId(internalId, primaryId); // Set primary screen and internal screen IDs. setId(internalId, primaryId); // Set primary screen and internal screen IDs.
setSuccess(success); // Set boolean to validate getDisplays() returned values. setSuccess(success); // Set boolean to validate getDisplays() returned values.
addDisplay(display); // Push display to the display vector. addDisplay(display); // Push display to the display vector.
removeDisplay(id); // Remove display from the display vector.
async getDisplays(); // Interceptor of getDisplays (screen_enumeration.mojom). async getDisplays(); // Interceptor of getDisplays (screen_enumeration.mojom).
}; };
``` ```
......
...@@ -23,7 +23,7 @@ screen_enumeration_test(async (t, mockScreenEnum) => { ...@@ -23,7 +23,7 @@ screen_enumeration_test(async (t, mockScreenEnum) => {
// Grant window-placement permissions for testdriver. // Grant window-placement permissions for testdriver.
await test_driver.set_permission({name: "window-placement"}, "granted"); await test_driver.set_permission({name: "window-placement"}, "granted");
// This call is calling GetDisplays, which should fall in interceptor. // This returns the mocked displays via MockScreenEnumeration implementation.
const screens = await self.getScreens(); const screens = await self.getScreens();
assert_equals(screens.length, 1); assert_equals(screens.length, 1);
...@@ -41,4 +41,52 @@ screen_enumeration_test(async (t, mockScreenEnum) => { ...@@ -41,4 +41,52 @@ screen_enumeration_test(async (t, mockScreenEnum) => {
assert_equals(screens[0].scaleFactor, 1.0); assert_equals(screens[0].scaleFactor, 1.0);
assert_equals(screens[0].id, "0"); assert_equals(screens[0].id, "0");
}, "getScreens() returns a single mocked screen"); }, "getScreens() returns a single mocked screen");
screen_enumeration_test(async (t, mockScreenEnum) => {
let display1 = makeDisplay(10,
{x: 0, y: 10, width: 1200, height: 800},
{x: 20, y: 30, width: 1000, height: 600},
1.0);
let display2 = makeDisplay(11,
{x: 0, y: 10, width: 1200, height: 800},
{x: 20, y: 30, width: 1000, height: 600},
1.0);
let display3 = makeDisplay(12,
{x: 0, y: 10, width: 1200, height: 800},
{x: 20, y: 30, width: 1000, height: 600},
1.0);
mockScreenEnum.addDisplay(display1);
mockScreenEnum.addDisplay(display2);
mockScreenEnum.addDisplay(display3);
mockScreenEnum.setIds(mockScreenEnum.displays_[0].id, mockScreenEnum.displays_[0].id);
mockScreenEnum.setSuccess(true);
// Grant window-placement permissions for testdriver.
await test_driver.set_permission({name: "window-placement"}, "granted");
// This returns the mocked displays via MockScreenEnumeration implementation.
let screens = await self.getScreens();
assert_equals(screens.length, 3);
assert_equals(screens[0].id, "0");
assert_equals(screens[1].id, "1");
assert_equals(screens[2].id, "2");
mockScreenEnum.removeDisplay(display2.id);
screens = await self.getScreens();
assert_equals(screens.length, 2);
assert_equals(screens[0].id, "0");
assert_equals(screens[1].id, "1");
mockScreenEnum.removeDisplay(display1.id);
screens = await self.getScreens();
assert_equals(screens.length, 1);
assert_equals(screens[0].id, "0");
}, "getScreens() supports multiple mocked screens");
</script> </script>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment