blob: e609d9a8977bbcb53b46e9747ffa424c6ac4f776 [file] [log] [blame]
// Licensed to the Software Freedom Conservancy (SFC) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The SFC licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
'use strict'
const assert = require('node:assert')
const { suite } = require('../../lib/test')
const { Browser } = require('selenium-webdriver')
const BrowserBiDi = require('selenium-webdriver/bidi/browser')
const { WindowState } = require('selenium-webdriver/bidi/browser')
suite(
function (env) {
let driver
beforeEach(async function () {
driver = await env.builder().build()
})
afterEach(function () {
return driver.quit()
})
describe('BiDi Browser', function () {
it('can create a user context', async function () {
const browser = await BrowserBiDi(driver)
const userContext = await browser.createUserContext()
assert.notEqual(userContext, null)
await browser.removeUserContext(userContext)
})
it('can get user contexts', async function () {
const browser = await BrowserBiDi(driver)
const userContext1 = await browser.createUserContext()
const userContext2 = await browser.createUserContext()
const userContexts = await browser.getUserContexts()
assert.strictEqual(userContexts.length >= 2, true)
await browser.removeUserContext(userContext1)
await browser.removeUserContext(userContext2)
})
it('can remove user context', async function () {
const browser = await BrowserBiDi(driver)
const userContext1 = await browser.createUserContext()
const userContext2 = await browser.createUserContext()
const userContexts = await browser.getUserContexts()
assert.strictEqual(userContexts.length >= 2, true)
await browser.removeUserContext(userContext2)
const updatedUserContexts = await browser.getUserContexts()
assert.strictEqual(updatedUserContexts.includes(userContext1), true)
assert.strictEqual(updatedUserContexts.includes(userContext2), false)
await browser.removeUserContext(userContext1)
})
})
describe('Client Windows', function () {
it('can get client windows', async function () {
const browser = await BrowserBiDi(driver)
const windows = await browser.getClientWindows()
assert(Array.isArray(windows))
assert(windows.length > 0)
const window = windows[0]
assert(window.clientWindow)
assert(Object.values(WindowState).includes(window.state))
assert(Number.isInteger(window.width) && window.width > 0)
assert(Number.isInteger(window.height) && window.height > 0)
assert(Number.isInteger(window.x))
assert(Number.isInteger(window.y))
assert(typeof window.active === 'boolean')
})
})
},
{ browsers: [Browser.FIREFOX, Browser.CHROME, Browser.EDGE] },
)