Path: blob/trunk/py/test/selenium/webdriver/firefox/ff_installs_addons_tests.py
4111 views
# Licensed to the Software Freedom Conservancy (SFC) under one1# or more contributor license agreements. See the NOTICE file2# distributed with this work for additional information3# regarding copyright ownership. The SFC licenses this file4# to you under the Apache License, Version 2.0 (the5# "License"); you may not use this file except in compliance6# with the License. You may obtain a copy of the License at7#8# http://www.apache.org/licenses/LICENSE-2.09#10# Unless required by applicable law or agreed to in writing,11# software distributed under the License is distributed on an12# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY13# KIND, either express or implied. See the License for the14# specific language governing permissions and limitations15# under the License.1617import os18import zipfile1920import pytest2122from selenium.webdriver.common.by import By23from selenium.webdriver.support.wait import WebDriverWait2425from conftest import get_extensions_location2627EXTENSIONS = get_extensions_location()282930pytestmark = pytest.mark.xfail_remote(reason="Remote WebDriver does not expose Firefox-specific addon APIs")313233@pytest.mark.no_driver_after_test34def test_install_uninstall_signed_addon_xpi(driver, pages):35extension = os.path.join(EXTENSIONS, "webextensions-selenium-example.xpi")3637id = driver.install_addon(extension)38assert id == "[email protected]"3940pages.load("blank.html")41injected = WebDriverWait(driver, timeout=2).until(42lambda dr: dr.find_element(By.ID, "webextensions-selenium-example")43)44assert injected.text == "Content injected by webextensions-selenium-example"4546driver.uninstall_addon(id)47driver.refresh()48assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0495051@pytest.mark.no_driver_after_test52def test_install_uninstall_signed_addon_zip(driver, pages):53extension = os.path.join(EXTENSIONS, "webextensions-selenium-example.zip")5455id = driver.install_addon(extension)56assert id == "[email protected]"5758pages.load("blank.html")59injected = WebDriverWait(driver, timeout=2).until(60lambda dr: dr.find_element(By.ID, "webextensions-selenium-example")61)62assert injected.text == "Content injected by webextensions-selenium-example"6364driver.uninstall_addon(id)65driver.refresh()66assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0676869@pytest.mark.no_driver_after_test70def test_install_uninstall_unsigned_addon_zip(driver, pages):71extension = os.path.join(EXTENSIONS, "webextensions-selenium-example-unsigned.zip")7273id = driver.install_addon(extension, temporary=True)74assert id == "[email protected]"7576pages.load("blank.html")77injected = WebDriverWait(driver, timeout=2).until(78lambda dr: dr.find_element(By.ID, "webextensions-selenium-example")79)80assert injected.text == "Content injected by webextensions-selenium-example"8182driver.uninstall_addon(id)83driver.refresh()84assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0858687@pytest.mark.no_driver_after_test88def test_install_uninstall_signed_addon_dir(driver, pages):89zip = os.path.join(EXTENSIONS, "webextensions-selenium-example.zip")9091target = os.path.join(EXTENSIONS, "webextensions-selenium-example-unzip")92with zipfile.ZipFile(zip, "r") as zip_ref:93zip_ref.extractall(target)9495id = driver.install_addon(target)96assert id == "[email protected]"9798pages.load("blank.html")99injected = WebDriverWait(driver, timeout=2).until(100lambda dr: dr.find_element(By.ID, "webextensions-selenium-example")101)102assert injected.text == "Content injected by webextensions-selenium-example"103104driver.uninstall_addon(id)105driver.refresh()106assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0107108109@pytest.mark.no_driver_after_test110def test_install_uninstall_unsigned_addon_dir(driver, pages):111zip = os.path.join(EXTENSIONS, "webextensions-selenium-example-unsigned.zip")112target = os.path.join(EXTENSIONS, "webextensions-selenium-example-unsigned-unzip")113with zipfile.ZipFile(zip, "r") as zip_ref:114zip_ref.extractall(target)115116id = driver.install_addon(target, temporary=True)117assert id == "[email protected]"118119pages.load("blank.html")120injected = WebDriverWait(driver, timeout=2).until(121lambda dr: dr.find_element(By.ID, "webextensions-selenium-example")122)123assert injected.text == "Content injected by webextensions-selenium-example"124125driver.uninstall_addon(id)126driver.refresh()127assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0128129130