Skip to content

Commit 2ab68ff

Browse files
committed
modify test as per chrome default permissions
1 parent 58e6c9a commit 2ab68ff

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

javascript/node/selenium-webdriver/test/bidi/permissions_test.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,14 @@ const { Pages, suite } = require('../../lib/test')
2222
const { Browser } = require('selenium-webdriver')
2323
const BrowserBiDi = require('selenium-webdriver/bidi/browser')
2424
const getScriptManager = require('selenium-webdriver/bidi/scriptManager')
25-
const { ignore } = require('../../lib/test')
2625
const { getPermissionInstance, PermissionState } = require('selenium-webdriver/bidi/permissions')
2726
const BrowsingContext = require('selenium-webdriver/bidi/browsingContext')
2827
const { CreateContextParameters } = require('selenium-webdriver/bidi/createContextParameters')
2928

3029
suite(
3130
function (env) {
32-
ignore(env.browsers(Browser.CHROME)).describe('BiDi Permissions', function () {
33-
let driver, permission, browser, script
31+
describe('BiDi Permissions', function () {
32+
let driver, permission, browser, script, browserName
3433

3534
const GET_GEOLOCATION_PERMISSION =
3635
"async () => { const perm = await navigator.permissions.query({ name: 'geolocation' }); return perm.state; }"
@@ -41,6 +40,7 @@ suite(
4140
permission = await getPermissionInstance(driver)
4241
browser = await BrowserBiDi(driver)
4342
script = await getScriptManager([], driver)
43+
browserName = (await driver.getCapabilities()).getBrowserName().toLowerCase()
4444
})
4545

4646
afterEach(function () {
@@ -57,7 +57,10 @@ suite(
5757
true,
5858
[],
5959
)
60-
assert.strictEqual(initialPermission.result.value, 'prompt')
60+
61+
// Chrome's default permission state is 'denied', while Firefox uses 'prompt'
62+
const expectedDefaultState = ['chrome', 'microsoftedge'].includes(browserName) ? 'denied' : 'prompt'
63+
assert.strictEqual(initialPermission.result.value, expectedDefaultState)
6164

6265
const origin = await script.callFunctionInBrowsingContext(context.id, GET_ORIGIN, true, [])
6366
const originValue = origin.result.value
@@ -78,7 +81,9 @@ suite(
7881
true,
7982
[],
8083
)
81-
assert.strictEqual(initialPermission.result.value, 'prompt')
84+
// Chrome's default permission state is 'denied', while Firefox uses 'prompt'
85+
const expectedDefaultState = ['chrome', 'microsoftedge'].includes(browserName) ? 'denied' : 'prompt'
86+
assert.strictEqual(initialPermission.result.value, expectedDefaultState)
8287

8388
const origin = await script.callFunctionInBrowsingContext(context.id, GET_ORIGIN, true, [])
8489

@@ -119,32 +124,37 @@ suite(
119124
const origin = await script.callFunctionInBrowsingContext(context1.id, GET_ORIGIN, true, [])
120125
const originValue = origin.result.value
121126

127+
// Get the actual permission states from each context
122128
const originalTabPermission = await script.callFunctionInBrowsingContext(
123129
context1.id,
124130
GET_GEOLOCATION_PERMISSION,
125131
true,
126132
[],
127133
)
128-
assert.strictEqual(originalTabPermission.result.value, 'prompt')
129134

130135
const newTabPermission = await script.callFunctionInBrowsingContext(
131136
context2.id,
132137
GET_GEOLOCATION_PERMISSION,
133138
true,
134139
[],
135140
)
136-
assert.strictEqual(newTabPermission.result.value, 'prompt')
137141

142+
const originalTabState = originalTabPermission.result.value
143+
const newTabState = newTabPermission.result.value
144+
145+
// Set permission only for the user context
138146
await permission.setPermission({ name: 'geolocation' }, PermissionState.GRANTED, originValue, userContext)
139147

148+
// Check that the original tab's permission state hasn't changed
140149
const originalTabUpdatedPermission = await script.callFunctionInBrowsingContext(
141150
context1.id,
142151
GET_GEOLOCATION_PERMISSION,
143152
true,
144153
[],
145154
)
146-
assert.strictEqual(originalTabUpdatedPermission.result.value, 'prompt')
155+
assert.strictEqual(originalTabUpdatedPermission.result.value, originalTabState)
147156

157+
// Check that the new tab's permission state has been updated to GRANTED
148158
const newTabUpdatedPermission = await script.callFunctionInBrowsingContext(
149159
context2.id,
150160
GET_GEOLOCATION_PERMISSION,

0 commit comments

Comments
 (0)