@@ -27,13 +27,17 @@ const { Context } = require('../firefox')
27
27
const { Pages, suite } = require('../lib/test')
28
28
const { locate } = require('../lib/test/resources')
29
29
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'
32
33
)
33
-
const WEBEXTENSION_EXTENSION_ZIP = locate(
34
+
const EXT_SIGNED_ZIP = locate(
34
35
'common/extensions/webextensions-selenium-example.zip'
35
36
)
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(
37
41
'common/extensions/webextensions-selenium-example'
38
42
)
39
43
63
67
await io.mkdir(extensionsDir)
64
68
await io.write(
65
69
path.join(extensionsDir, WEBEXTENSION_EXTENSION_ID),
66
-
await io.read(WEBEXTENSION_EXTENSION_XPI)
70
+
await io.read(EXT_XPI)
67
71
)
68
72
})
69
73
@@ -155,7 +159,7 @@ suite(
155
159
describe('addExtensions', function () {
156
160
it('can add extension to brand new profile', async function () {
157
161
let options = new firefox.Options()
158
-
options.addExtensions(WEBEXTENSION_EXTENSION_XPI)
162
+
options.addExtensions(EXT_XPI)
159
163
160
164
driver = env.builder().setFirefoxOptions(options).build()
161
165
@@ -165,7 +169,7 @@ suite(
165
169
166
170
it('can add extension to custom profile', async function () {
167
171
let options = new firefox.Options()
168
-
.addExtensions(WEBEXTENSION_EXTENSION_XPI)
172
+
.addExtensions(EXT_XPI)
169
173
.setProfile(profileWithUserPrefs)
170
174
171
175
driver = env.builder().setFirefoxOptions(options).build()
@@ -177,7 +181,7 @@ suite(
177
181
178
182
it('can addExtensions and setPreference', async function () {
179
183
let options = new firefox.Options()
180
-
.addExtensions(WEBEXTENSION_EXTENSION_XPI)
184
+
.addExtensions(EXT_XPI)
181
185
.setPreference('general.useragent.override', 'foo;bar')
182
186
183
187
driver = env.builder().setFirefoxOptions(options).build()
@@ -189,7 +193,7 @@ suite(
189
193
190
194
it('can load .zip webextensions', async function () {
191
195
let options = new firefox.Options()
192
-
options.addExtensions(WEBEXTENSION_EXTENSION_ZIP)
196
+
options.addExtensions(EXT_XPI)
193
197
194
198
driver = env.builder().setFirefoxOptions(options).build()
195
199
@@ -230,32 +234,73 @@ suite(
230
234
driver = env.builder().build()
231
235
})
232
236
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)
235
281
await verifyWebExtensionNotInstalled()
236
282
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)
239
284
240
-
await driver.get(Pages.echoPage)
285
+
await driver.navigate().refresh()
241
286
await verifyWebExtensionWasInstalled()
242
287
243
288
await driver.uninstallAddon(id)
244
-
await driver.get(Pages.echoPage)
289
+
await driver.navigate().refresh()
245
290
await verifyWebExtensionNotInstalled()
246
291
})
247
292
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)
250
295
await verifyWebExtensionNotInstalled()
251
296
252
-
let id = await driver.installAddon(WEBEXTENSION_EXTENSION_DIR, true)
297
+
let id = await driver.installAddon(EXT_SIGNED_DIR, true)
253
298
254
-
await driver.get(Pages.echoPage)
299
+
await driver.navigate().refresh()
255
300
await verifyWebExtensionWasInstalled()
256
301
257
302
await driver.uninstallAddon(id)
258
-
await driver.get(Pages.echoPage)
303
+
await driver.navigate().refresh()
259
304
await verifyWebExtensionNotInstalled()
260
305
})
261
306
})
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4