Skip to content

Commit f20ebda

Browse files
committed
[JS] move code sample to use mocha
1 parent 83eda2e commit f20ebda

File tree

2 files changed

+157
-162
lines changed

2 files changed

+157
-162
lines changed

examples/javascript/test/bidirectional/w3c/log.js

Lines changed: 0 additions & 162 deletions
This file was deleted.
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
2+
const assert = require("assert");
3+
const firefox = require('selenium-webdriver/firefox');
4+
const {until, Builder} = require("selenium-webdriver");
5+
6+
let driver
7+
8+
beforeEach(async function () {
9+
driver = new Builder()
10+
.setFirefoxOptions(new firefox.Options().enableBidi())
11+
.build()
12+
})
13+
14+
afterEach(async function () {
15+
await driver.quit()
16+
})
17+
18+
function delay(ms) {
19+
return new Promise((resolve) => setTimeout(resolve, ms))
20+
}
21+
22+
describe('BiDi Logging', function () {
23+
it('can listen to console log', async function () {
24+
let log = null
25+
const handler = await driver.script().addConsoleMessageHandler((logEntry) => {
26+
log = logEntry
27+
})
28+
29+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
30+
await driver.findElement({ id: 'consoleLog' }).click()
31+
32+
await delay(3000)
33+
34+
assert.equal(log.text, 'Hello, world!')
35+
await driver.script().removeConsoleMessageHandler(handler)
36+
})
37+
38+
it('can remove console log handler', async function () {
39+
let log = null
40+
const handler = await driver.script().addConsoleMessageHandler((logEntry) => {
41+
log = logEntry
42+
})
43+
44+
await driver.script().removeConsoleMessageHandler(handler)
45+
46+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
47+
await driver.findElement({ id: 'consoleLog' }).click()
48+
49+
await delay(3000)
50+
51+
assert.equal(log, null)
52+
})
53+
54+
it('can listen to javascript error', async function () {
55+
let log = null
56+
const handler = await driver.script().addJavaScriptErrorHandler((logEntry) => {
57+
log = logEntry
58+
})
59+
60+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
61+
await driver.findElement({ id: 'jsException' }).click()
62+
63+
await delay(3000)
64+
65+
assert.equal(log.text, 'Error: Not working')
66+
assert.equal(log.type, 'javascript')
67+
assert.equal(log.level, 'error')
68+
69+
await driver.script().removeJavaScriptErrorHandler(handler)
70+
})
71+
72+
it('can remove to javascript error handler', async function () {
73+
let log = null
74+
const handler = await driver.script().addJavaScriptErrorHandler((logEntry) => {
75+
log = logEntry
76+
})
77+
78+
await driver.script().removeJavaScriptErrorHandler(handler)
79+
80+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
81+
await driver.findElement({ id: 'jsException' }).click()
82+
83+
await delay(3000)
84+
85+
assert.equal(log, null)
86+
})
87+
88+
it('can listen to dom mutations', async function () {
89+
let message = null
90+
await driver.script().addDomMutationHandler((m) => {
91+
message = m
92+
})
93+
94+
await driver.get('https://www.selenium.dev/selenium/web/dynamic')
95+
96+
let element = driver.findElement({ id: 'reveal' })
97+
await element.click()
98+
let revealed = driver.findElement({ id: 'revealed' })
99+
await driver.wait(until.elementIsVisible(revealed), 5000)
100+
101+
assert.strictEqual(message['attribute_name'], 'style')
102+
assert.strictEqual(message['current_value'], '')
103+
assert.strictEqual(message['old_value'], 'display:none;')
104+
})
105+
106+
it('can remove to dom mutation handler', async function () {
107+
let message = null
108+
let id = await driver.script().addDomMutationHandler((m) => {
109+
message = m
110+
})
111+
112+
await driver.script().removeDomMutationHandler(id)
113+
114+
await driver.get('https://www.selenium.dev/selenium/web/dynamic')
115+
116+
let element = driver.findElement({ id: 'reveal' })
117+
await element.click()
118+
let revealed = driver.findElement({ id: 'revealed' })
119+
await driver.wait(until.elementIsVisible(revealed), 5000)
120+
121+
assert.strictEqual(message, null)
122+
})
123+
124+
it('can pin script', async function () {
125+
await driver.script().pin("() => { console.log('Hello!'); }")
126+
let log
127+
128+
await driver.script().addConsoleMessageHandler((logEntry) => {
129+
log = logEntry
130+
})
131+
132+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
133+
134+
await delay(3000)
135+
136+
assert.equal(log.text, 'Hello!')
137+
})
138+
139+
it('can unpin script', async function () {
140+
const id = await driver.script().pin("() => { console.log('Hello!'); }")
141+
142+
let count = 0
143+
await driver.script().addConsoleMessageHandler((logEntry) => {
144+
count++
145+
})
146+
147+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
148+
149+
await driver.script().unpin(id)
150+
151+
await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html')
152+
153+
assert.equal(count, 1)
154+
})
155+
})
156+
157+

0 commit comments

Comments
 (0)