Skip to content

Commit 5a21858

Browse files
committed
[JS] add tests for Firefox addons
1 parent f5d052e commit 5a21858

2 files changed

Lines changed: 66 additions & 20 deletions

File tree

javascript/node/selenium-webdriver/lib/test/fileserver.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const Pages = (function () {
4747
addPage('ajaxyPage', 'ajaxy_page.html')
4848
addPage('alertsPage', 'alerts.html')
4949
addPage('basicAuth', 'basicAuth')
50+
addPage('blankPage', 'blank.html')
5051
addPage('bodyTypingPage', 'bodyTypingTest.html')
5152
addPage('booleanAttributes', 'booleanAttributes.html')
5253
addPage('childPage', 'child/childPage.html')

javascript/node/selenium-webdriver/test/firefox_test.js

Lines changed: 65 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,17 @@ const { Context } = require('../firefox')
2727
const { Pages, suite } = require('../lib/test')
2828
const { locate } = require('../lib/test/resources')
2929

30-
const WEBEXTENSION_EXTENSION_XPI = locate(
31-
'common/extensions/webextensions-selenium-example.xpi'
30+
const EXT_XPI = locate('common/extensions/webextensions-selenium-example.xpi')
31+
const EXT_UNSIGNED_ZIP = locate(
32+
'common/extensions/webextensions-selenium-example-unsigned.zip'
3233
)
33-
const WEBEXTENSION_EXTENSION_ZIP = locate(
34+
const EXT_SIGNED_ZIP = locate(
3435
'common/extensions/webextensions-selenium-example.zip'
3536
)
36-
const WEBEXTENSION_EXTENSION_DIR = locate(
37+
const EXT_UNSIGNED_DIR = locate(
38+
'common/extensions/webextensions-selenium-example'
39+
)
40+
const EXT_SIGNED_DIR = locate(
3741
'common/extensions/webextensions-selenium-example'
3842
)
3943

@@ -63,7 +67,7 @@ suite(
6367
await io.mkdir(extensionsDir)
6468
await io.write(
6569
path.join(extensionsDir, WEBEXTENSION_EXTENSION_ID),
66-
await io.read(WEBEXTENSION_EXTENSION_XPI)
70+
await io.read(EXT_XPI)
6771
)
6872
})
6973

@@ -155,7 +159,7 @@ suite(
155159
describe('addExtensions', function () {
156160
it('can add extension to brand new profile', async function () {
157161
let options = new firefox.Options()
158-
options.addExtensions(WEBEXTENSION_EXTENSION_XPI)
162+
options.addExtensions(EXT_XPI)
159163

160164
driver = env.builder().setFirefoxOptions(options).build()
161165

@@ -165,7 +169,7 @@ suite(
165169

166170
it('can add extension to custom profile', async function () {
167171
let options = new firefox.Options()
168-
.addExtensions(WEBEXTENSION_EXTENSION_XPI)
172+
.addExtensions(EXT_XPI)
169173
.setProfile(profileWithUserPrefs)
170174

171175
driver = env.builder().setFirefoxOptions(options).build()
@@ -177,7 +181,7 @@ suite(
177181

178182
it('can addExtensions and setPreference', async function () {
179183
let options = new firefox.Options()
180-
.addExtensions(WEBEXTENSION_EXTENSION_XPI)
184+
.addExtensions(EXT_XPI)
181185
.setPreference('general.useragent.override', 'foo;bar')
182186

183187
driver = env.builder().setFirefoxOptions(options).build()
@@ -189,7 +193,7 @@ suite(
189193

190194
it('can load .zip webextensions', async function () {
191195
let options = new firefox.Options()
192-
options.addExtensions(WEBEXTENSION_EXTENSION_ZIP)
196+
options.addExtensions(EXT_XPI)
193197

194198
driver = env.builder().setFirefoxOptions(options).build()
195199

@@ -230,32 +234,73 @@ suite(
230234
driver = env.builder().build()
231235
})
232236

233-
it('addons can be installed and uninstalled at runtime', async function () {
234-
await driver.get(Pages.echoPage)
237+
it('installs and uninstalls by xpi file', async function () {
238+
await driver.get(Pages.blankPage)
239+
await verifyWebExtensionNotInstalled()
240+
241+
let id = await driver.installAddon(EXT_XPI)
242+
243+
await driver.navigate().refresh()
244+
await verifyWebExtensionWasInstalled()
245+
246+
await driver.uninstallAddon(id)
247+
await driver.navigate().refresh()
248+
await verifyWebExtensionNotInstalled()
249+
})
250+
251+
it('installs and uninstalls by unsigned zip file', async function () {
252+
await driver.get(Pages.blankPage)
253+
await verifyWebExtensionNotInstalled()
254+
255+
let id = await driver.installAddon(EXT_UNSIGNED_ZIP, true)
256+
257+
await driver.navigate().refresh()
258+
await verifyWebExtensionWasInstalled()
259+
260+
await driver.uninstallAddon(id)
261+
await driver.navigate().refresh()
262+
await verifyWebExtensionNotInstalled()
263+
})
264+
265+
it('installs and uninstalls by signed zip file', async function () {
266+
await driver.get(Pages.blankPage)
267+
await verifyWebExtensionNotInstalled()
268+
269+
let id = await driver.installAddon(EXT_SIGNED_ZIP)
270+
271+
await driver.navigate().refresh()
272+
await verifyWebExtensionWasInstalled()
273+
274+
await driver.uninstallAddon(id)
275+
await driver.navigate().refresh()
276+
await verifyWebExtensionNotInstalled()
277+
})
278+
279+
it('installs and uninstalls by unsigned directory', async function () {
280+
await driver.get(Pages.blankPage)
235281
await verifyWebExtensionNotInstalled()
236282

237-
let id = await driver.installAddon(WEBEXTENSION_EXTENSION_XPI)
238-
await driver.sleep(1000) // Give extension time to install (yuck).
283+
let id = await driver.installAddon(EXT_UNSIGNED_DIR, true)
239284

240-
await driver.get(Pages.echoPage)
285+
await driver.navigate().refresh()
241286
await verifyWebExtensionWasInstalled()
242287

243288
await driver.uninstallAddon(id)
244-
await driver.get(Pages.echoPage)
289+
await driver.navigate().refresh()
245290
await verifyWebExtensionNotInstalled()
246291
})
247292

248-
it('unpacked addons can be installed and uninstalled at runtime', async function () {
249-
await driver.get(Pages.echoPage)
293+
it('installs and uninstalls by signed directory', async function () {
294+
await driver.get(Pages.blankPage)
250295
await verifyWebExtensionNotInstalled()
251296

252-
let id = await driver.installAddon(WEBEXTENSION_EXTENSION_DIR, true)
297+
let id = await driver.installAddon(EXT_SIGNED_DIR, true)
253298

254-
await driver.get(Pages.echoPage)
299+
await driver.navigate().refresh()
255300
await verifyWebExtensionWasInstalled()
256301

257302
await driver.uninstallAddon(id)
258-
await driver.get(Pages.echoPage)
303+
await driver.navigate().refresh()
259304
await verifyWebExtensionNotInstalled()
260305
})
261306
})

0 commit comments

Comments
 (0)