Skip to content

Commit f5d052e

Browse files
committed
[py] add tests for Firefox addons
1 parent 2489973 commit f5d052e

3 files changed

Lines changed: 94 additions & 25 deletions

File tree

common/extensions/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ filegroup(
1717
exports_files(
1818
[
1919
"webextensions-selenium-example.xpi",
20+
"webextensions-selenium-example.zip",
21+
"webextensions-selenium-example-unsigned.zip",
2022
],
2123
visibility = [
2224
"//java/test/org/openqa/selenium/firefox:__pkg__",

py/BUILD.bazel

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,21 @@ copy_file(
7676
)
7777

7878
copy_file(
79-
name = "favourite_color",
79+
name = "webextensions-selenium-example-xpi",
8080
src = "//common/extensions:webextensions-selenium-example.xpi",
81-
out = "test/selenium/webdriver/firefox/webextensions-selenium-example.xpi",
81+
out = "test/extensions/webextensions-selenium-example.xpi",
82+
)
83+
84+
copy_file(
85+
name = "webextensions-selenium-example-zip",
86+
src = "//common/extensions:webextensions-selenium-example.zip",
87+
out = "test/extensions/webextensions-selenium-example.zip",
88+
)
89+
90+
copy_file(
91+
name = "webextensions-selenium-example-unsigned-zip",
92+
src = "//common/extensions:webextensions-selenium-example-unsigned.zip",
93+
out = "test/extensions/webextensions-selenium-example-unsigned.zip",
8294
)
8395

8496
py_library(
@@ -207,8 +219,9 @@ py_library(
207219
"setup.cfg",
208220
"test/selenium/webdriver/common/test_file.txt",
209221
"test/selenium/webdriver/common/test_file2.txt",
210-
":favourite_color",
211-
222+
":webextensions-selenium-example-xpi",
223+
":webextensions-selenium-example-zip",
224+
":webextensions-selenium-example-unsigned-zip",
212225
],
213226
imports = ["."],
214227
deps = [
@@ -376,9 +389,6 @@ py_test_suite(
376389
"--instafail",
377390
"--driver=firefox",
378391
],
379-
data = [
380-
"//common/extensions",
381-
],
382392
tags = [
383393
"no-sandbox",
384394
],
@@ -401,7 +411,6 @@ py_test_suite(
401411
"--driver=remote",
402412
],
403413
data = [
404-
"//common/extensions",
405414
"//java/src/org/openqa/selenium/grid:selenium_server_deploy.jar",
406415
],
407416
tags = [

py/test/selenium/webdriver/firefox/ff_installs_addons_tests.py

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,90 @@
1616
# under the License.
1717

1818
import os
19+
import zipfile
1920

20-
from selenium.common.exceptions import WebDriverException
21+
from selenium.webdriver.common.by import By
2122

23+
extensions = os.path.abspath("../../../../../../test/extensions/")
2224

23-
def test_install_addon_temporary(driver):
24-
extension = os.path.join(os.path.dirname(os.path.abspath(__file__)),
25-
'webextensions-selenium-example.xpi')
2625

27-
id = driver.install_addon(extension, True)
26+
def test_install_uninstall_signed_addon_xpi(driver, pages):
27+
extension = os.path.join(extensions, "webextensions-selenium-example.xpi")
28+
29+
id = driver.install_addon(extension)
2830
assert id == '[email protected]'
2931

32+
pages.load("blank.html")
33+
injected = driver.find_element(By.ID, "webextensions-selenium-example")
34+
assert injected.text == "Content injected by webextensions-selenium-example"
35+
36+
driver.uninstall_addon(id)
37+
driver.refresh()
38+
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
3039

31-
def test_install_addon(driver):
32-
extension = os.path.join(os.path.dirname(os.path.abspath(__file__)),
33-
'webextensions-selenium-example.xpi')
3440

35-
id = driver.install_addon(extension, False)
41+
def test_install_uninstall_signed_addon_zip(driver, pages):
42+
extension = os.path.join(extensions, "webextensions-selenium-example.zip")
43+
44+
id = driver.install_addon(extension)
3645
assert id == '[email protected]'
3746

47+
pages.load("blank.html")
48+
injected = driver.find_element(By.ID, "webextensions-selenium-example")
49+
assert injected.text == "Content injected by webextensions-selenium-example"
3850

39-
def test_uninstall_addon(driver):
40-
extension = os.path.join(os.path.dirname(os.path.abspath(__file__)),
41-
'webextensions-selenium-example.xpi')
51+
driver.uninstall_addon(id)
52+
driver.refresh()
53+
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
4254

43-
id = driver.install_addon(extension)
44-
try:
45-
driver.uninstall_addon(id)
46-
except WebDriverException as exc:
47-
assert False, exc
55+
56+
def test_install_uninstall_unsigned_addon_zip(driver, pages):
57+
extension = os.path.join(extensions, 'webextensions-selenium-example-unsigned.zip')
58+
59+
id = driver.install_addon(extension, temporary=True)
60+
assert id == '[email protected]'
61+
62+
pages.load("blank.html")
63+
injected = driver.find_element(By.ID, "webextensions-selenium-example")
64+
assert injected.text == "Content injected by webextensions-selenium-example"
65+
66+
driver.uninstall_addon(id)
67+
driver.refresh()
68+
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
69+
70+
71+
def test_install_uninstall_signed_addon_dir(driver, pages):
72+
zip = os.path.join(extensions, 'webextensions-selenium-example.zip')
73+
74+
target = os.path.join(extensions, 'webextensions-selenium-example')
75+
with zipfile.ZipFile(zip, 'r') as zip_ref:
76+
zip_ref.extractall(target)
77+
78+
id = driver.install_addon(target)
79+
assert id == '[email protected]'
80+
81+
pages.load("blank.html")
82+
injected = driver.find_element(By.ID, "webextensions-selenium-example")
83+
assert injected.text == "Content injected by webextensions-selenium-example"
84+
85+
driver.uninstall_addon(id)
86+
driver.refresh()
87+
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
88+
89+
90+
def test_install_uninstall_unsigned_addon_dir(driver, pages):
91+
zip = os.path.join(extensions, 'webextensions-selenium-example-unsigned.zip')
92+
target = os.path.join(extensions, 'webextensions-selenium-example-unsigned')
93+
with zipfile.ZipFile(zip, 'r') as zip_ref:
94+
zip_ref.extractall(target)
95+
96+
id = driver.install_addon(target, temporary=True)
97+
assert id == '[email protected]'
98+
99+
pages.load("blank.html")
100+
injected = driver.find_element(By.ID, "webextensions-selenium-example")
101+
assert injected.text == "Content injected by webextensions-selenium-example"
102+
103+
driver.uninstall_addon(id)
104+
driver.refresh()
105+
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0

0 commit comments

Comments
 (0)