def setUp(self): MarionetteTestCase.setUp(self) self.marionette.set_context("chrome") self.win = self.marionette.current_window_handle self.marionette.execute_script( "window.open('chrome://marionette/content/test.xul', '_blank', 'chrome,centerscreen');" )
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.set_context("chrome") self.win = self.marionette.current_window_handle self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');") self.marionette.switch_to_window('foo') self.assertNotEqual(self.win, self.marionette.current_window_handle)
def __init__(self, *args, **kwargs): self.restart = kwargs.pop('restart', False) self.yocto = kwargs.pop('yocto', False) kwargs.pop('iterations', None) kwargs.pop('checkpoint_interval', None) MarionetteTestCase.__init__(self, *args, **kwargs) B2GTestCaseMixin.__init__(self, *args, **kwargs)
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type('Marionette', (Marionette, MarionetteTouchMixin), {}) self.device = GaiaDevice(self.marionette) if self.restart and (self.device.is_android_build or self.marionette.instance): self.device.stop_b2g() if self.device.is_android_build: # revert device to a clean state self.device.manager.removeDir('/data/local/indexedDB') self.device.manager.removeDir('/data/b2g/mozilla') self.device.start_b2g() self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(self._script_timeout) self.marionette.set_search_timeout(self._search_timeout) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette, self.testvars) from gaiatest.apps.keyboard.app import Keyboard self.keyboard = Keyboard(self.marionette) self.cleanUp()
def setUp(self): # start server self.loop_test_servers = LoopTestServers() MarionetteTestCase.setUp(self) LoopTestDriver.setUp(self, self.marionette) # Although some of these preferences might require restart, we don't # use enforce_gecko_prefs (which would restart), as we need to restart # for the add-on installation anyway. self.marionette.set_prefs(FIREFOX_PREFERENCES) xpi_file = os.environ.get("LOOP_XPI_FILE") if xpi_file: addons = Addons(self.marionette) # XXX We should really use temp=True here, but due to the later # restart to ensure the add-on is installed correctly, this won't work # at the moment. What we need is a fully restartless add-on - bug 1229352 # at which point we should be able to make this install temporarily # and after the restart. addons.install(os.path.abspath(xpi_file)) self.e10s_enabled = os.environ.get("TEST_E10S") == "1" # Restart the browser nicely, so the preferences and add-on installation # take full effect. self.marionette.restart(in_app=True) # this is browser chrome, kids, not the content window just yet self.marionette.set_context("chrome")
def setUp(self): try: MarionetteTestCase.setUp(self) except (InvalidResponseException, IOError): if self.restart: pass self.environment = GaiaTestEnvironment(self.testvars) self.device = GaiaDevice(self.marionette, manager=self.device_manager, testvars=self.testvars) if self.restart and (self.device.is_android_build or self.marionette.instance): # Restart if it's a device, or we have passed a binary instance with --binary command arg self.device.stop_b2g() if self.device.is_android_build: self.cleanup_data() self.device.start_b2g() # Run the fake update checker FakeUpdateChecker(self.marionette).check_updates() # We need to set the default timeouts because we may have a new session if self.marionette.timeout is None: # if no timeout is passed in, we detect the hardware type and set reasonable defaults timeouts = {} if self.device.is_desktop_b2g: self.marionette.timeout = 5000 timeouts[self.marionette.TIMEOUT_SEARCH] = 5000 timeouts[self.marionette.TIMEOUT_SCRIPT] = 10000 timeouts[self.marionette.TIMEOUT_PAGE] = 10000 elif self.device.is_emulator: self.marionette.timeout = 30000 timeouts[self.marionette.TIMEOUT_SEARCH] = 30000 timeouts[self.marionette.TIMEOUT_SCRIPT] = 60000 timeouts[self.marionette.TIMEOUT_PAGE] = 60000 else: # else, it is a device, the type of which is difficult to detect self.marionette.timeout = 10000 timeouts[self.marionette.TIMEOUT_SEARCH] = 10000 timeouts[self.marionette.TIMEOUT_SCRIPT] = 20000 timeouts[self.marionette.TIMEOUT_PAGE] = 20000 for k, v in timeouts.items(): self.marionette.timeouts(k, v) else: # if the user has passed in --timeout then we override everything self.marionette.timeouts(self.marionette.TIMEOUT_SEARCH, self.marionette.timeout) self.marionette.timeouts(self.marionette.TIMEOUT_SCRIPT, self.marionette.timeout) self.marionette.timeouts(self.marionette.TIMEOUT_PAGE, self.marionette.timeout) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette, self.testvars) self.accessibility = Accessibility(self.marionette) self.cleanup_storage() if self.restart: self.cleanup_gaia(full_reset=False) else: self.cleanup_gaia(full_reset=True)
def tearDown(self): self.marionette.switch_to_frame() if self.device.is_desktop_b2g and self.device.storage_path: shutil.rmtree(self.device.storage_path, ignore_errors=True) self.apps = None self.data_layer = None MarionetteTestCase.tearDown(self)
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type("Marionette", (Marionette, MarionetteTouchMixin), {}) self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(60000) self.marionette.set_search_timeout(10000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette) self.keyboard = Keyboard(self.marionette) # wifi is true if testvars includes wifi details and wifi manager is defined self.wifi = ( self.testvars and "wifi" in self.testvars and self.marionette.execute_script("return window.navigator.mozWifiManager !== undefined") ) # device manager dm_type = os.environ.get("DM_TRANS", "adb") if dm_type == "adb": self.device_manager = mozdevice.DeviceManagerADB() elif dm_type == "sut": host = os.environ.get("TEST_DEVICE") if not host: raise Exception("Must specify host with SUT!") self.device_manager = mozdevice.DeviceManagerSUT(host=host) else: raise Exception("Unknown device manager type: %s" % dm_type) self.cleanUp()
def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'DARWIN': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette)
def setUp(self): MarionetteTestCase.setUp(self) # the emulator can be really slow! self.marionette.set_script_timeout(60000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette)
def setUp(self): try: MarionetteTestCase.setUp(self) except InvalidResponseException: if self.restart: pass self.device = GaiaDevice(self.marionette, self.testvars) if self.restart and (self.device.is_android_build or self.marionette.instance): self.device.stop_b2g() if self.device.is_android_build: # revert device to a clean state self.device.manager.removeDir('/data/local/storage/persistent') self.device.manager.removeDir('/data/b2g/mozilla') self.device.start_b2g() # the emulator can be really slow! self.marionette.set_script_timeout(self._script_timeout) self.marionette.set_search_timeout(self._search_timeout) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette, self.testvars) from gaiatest.apps.keyboard.app import Keyboard self.keyboard = Keyboard(self.marionette) self.cleanUp()
def setUp(self, *args, **kwargs): MarionetteTestCase.setUp(self, *args, **kwargs) Puppeteer.set_marionette(self, self.marionette) self._start_handle_count = len(self.marionette.window_handles) self.marionette.set_context('chrome') self.browser = self.windows.current
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.enforce_gecko_prefs({ "marionette.test.bool": True, "marionette.test.string": "testing", "marionette.test.int": 3 })
def __init__(self, *args, **kwargs): self.restart = kwargs.pop("restart", False) self.yocto = kwargs.pop("yocto", False) kwargs.pop("iterations", None) kwargs.pop("checkpoint_interval", None) MarionetteTestCase.__init__(self, *args, **kwargs) B2GTestCaseMixin.__init__(self, *args, **kwargs)
def tearDown(self): # Force yet another restart with a clean profile to disconnect from the # profile and environment changes we've made, to leave a more or less # blank slate for the next person. self.marionette.restart(clean=True, in_app=False) self.setUpScriptData() # Super MarionetteTestCase.tearDown(self) # Some helpers to deal with removing a load of files import errno, stat def handleRemoveReadonly(func, path, exc): excvalue = exc[1] if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES: os.chmod(path, stat.S_IRWXU| stat.S_IRWXG| stat.S_IRWXO) # 0777 func(path) else: raise if self.desktop_backup_path: shutil.rmtree(self.desktop_backup_path, ignore_errors=False, onerror=handleRemoveReadonly) if self.reset_profile_path: # Remove ourselves from profiles.ini profileLeafName = os.path.basename(os.path.normpath(self.reset_profile_path)) self.runCode(""" let [salt, name] = arguments[0].split("."); let profile = global.profSvc.getProfileByName(name); profile.remove(false) global.profSvc.flush(); """, script_args=[profileLeafName]) # And delete all the files. shutil.rmtree(self.reset_profile_path, ignore_errors=False, onerror=handleRemoveReadonly)
def tearDown(self): if any(sys.exc_info()): # test has failed, gather debug test_class, test_name = self.marionette.test_name.split()[-1].split('.') xml_output = self.testvars.get('xml_output', None) debug_path = os.path.join(xml_output and os.path.dirname(xml_output) or 'debug', test_class) if not os.path.exists(debug_path): os.makedirs(debug_path) # screenshot with open(os.path.join(debug_path, '%s_screenshot.png' % test_name), 'w') as f: # TODO: Bug 818287 - Screenshots include data URL prefix screenshot = self.marionette.screenshot()[22:] f.write(base64.decodestring(screenshot)) # page source with open(os.path.join(debug_path, '%s_source.txt' % test_name), 'w') as f: f.write(self.marionette.page_source.encode('utf-8')) # settings with open(os.path.join(debug_path, '%s_settings.json' % test_name), 'w') as f: f.write(json.dumps(self.data_layer.all_settings)) self.lockscreen = None self.apps = None self.data_layer = None MarionetteTestCase.tearDown(self)
def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities["platformName"] == "Darwin": self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.action = Actions(self.marionette)
def setUp(self): MarionetteTestCase.setUp(self) self.setUpScriptData() self.reset_profile_path = None self.desktop_backup_path = None self.createProfileData()
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.enforce_gecko_prefs({"dom.webcomponents.enabled": True}) self.marionette.navigate(self.marionette.absolute_url("test_shadow_dom.html")) self.host = self.marionette.find_element(By.ID, "host") self.marionette.switch_to_shadow_root(self.host) self.button = self.marionette.find_element(By.ID, "button")
def setUp(self): MarionetteTestCase.setUp(self) test_url = self.marionette.absolute_url('test.html') self.marionette.navigate(test_url) self.COOKIE_A = {"name": "foo", "value": "bar", "path": "/", "secure": False}
def tearDown(self): # Ensure to restart a session if none exist for clean-up if not self.marionette.session: self.marionette.start_session() self.marionette.clear_pref("browser.startup.page") MarionetteTestCase.tearDown(self)
def setUp(self): MarionetteTestCase.setUp(self) self.pid = self.marionette.process_id self.session_id = self.marionette.session_id self.assertNotEqual(self.marionette.get_pref("browser.startup.page"), 3) self.marionette.set_pref("browser.startup.page", 3)
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.enforce_gecko_prefs( {"marionette.test.bool": True, "marionette.test.string": "testing", "marionette.test.int": 3 }) self.marionette.set_context("chrome")
def setUp(self): MarionetteTestCase.setUp(self) self.pid = self.marionette.session["processId"] self.session_id = self.marionette.session_id self.assertNotEqual(self.marionette.get_pref("browser.startup.page"), 3) self.marionette.set_pref("browser.startup.page", 3)
def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities['platformName'] == 'darwin': self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL self.remote_uri = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(self.remote_uri)
def setUp(self): # Code to execute before a tests are run. MarionetteTestCase.setUp(self) self.actions = Actions(self.marionette) # The carets to be tested. self.carets_tested_pref = None # The carets to be disabled in this test suite. self.carets_disabled_pref = None
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.enforce_gecko_prefs( {"dom.webcomponents.enabled": True}) self.marionette.navigate( self.marionette.absolute_url("test_shadow_dom.html")) self.host = self.marionette.find_element("id", "host") self.marionette.switch_to_shadow_root(self.host) self.button = self.marionette.find_element("id", "button")
def setUp(self): MarionetteTestCase.setUp(self) test_url = self.marionette.absolute_url('test.html') self.marionette.navigate(test_url) self.COOKIE_A = { "name": "foo", "value": "bar", "path": "/", "secure": False }
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type('Marionette', (Marionette, MarionetteTouchMixin), {}) self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(60000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette)
def setUp(self): MarionetteTestCase.setUp(self) # shortcuts to improve readability of these tests self.chrome = self.marionette.CONTEXT_CHROME self.content = self.marionette.CONTEXT_CONTENT test_url = self.marionette.absolute_url("empty.html") self.marionette.navigate(test_url) self.marionette.set_context(self.content) self.assertEquals(self.get_context(), self.content)
def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities["platformName"] == "Darwin": self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) self.reporter_element = self.marionette.find_element(By.ID, "keyReporter") self.reporter_element.click() self.key_action = Actions(self.marionette)
def setUp(self): try: MarionetteTestCase.setUp(self) except InvalidResponseException: if self.restart: pass if self.yocto: """ with the yocto ammeter we only get amp measurements so we also need to use the linux kernel voltage device to sample the voltage at the start of each test so we can calculate watts.""" try: self.ammeter = YoctoAmmeter() except: self.ammeter = None self.device = GaiaDevice(self.marionette, self.testvars) if self.device.is_android_build: self.device.add_device_manager( self.get_device_manager( deviceSerial=self.marionette.device_serial)) if self.restart and (self.device.is_android_build or self.marionette.instance): self.device.stop_b2g() if self.device.is_android_build: self.cleanup_data() self.device.start_b2g() # we need to set the default timeouts because we may have a new session if self.marionette.timeout is not None: self.marionette.timeouts(self.marionette.TIMEOUT_SEARCH, self.marionette.timeout) self.marionette.timeouts(self.marionette.TIMEOUT_SCRIPT, self.marionette.timeout) self.marionette.timeouts(self.marionette.TIMEOUT_PAGE, self.marionette.timeout) else: self.marionette.timeouts(self.marionette.TIMEOUT_SEARCH, 10000) self.marionette.timeouts(self.marionette.TIMEOUT_PAGE, 30000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette, self.testvars) from gaiatest.apps.keyboard.app import Keyboard self.keyboard = Keyboard(self.marionette) if self.device.is_android_build: self.cleanup_sdcard() if self.restart: self.cleanup_gaia(full_reset=False) else: self.cleanup_gaia(full_reset=True)
def setUp(self): MarionetteTestCase.setUp(self) if self.marionette.session_capabilities["platformName"] == "darwin": self.mod_key = Keys.META else: self.mod_key = Keys.CONTROL test_html = self.marionette.absolute_url("javascriptPage.html") self.marionette.navigate(test_html) self.reporter_element = self.marionette.find_element(By.ID, "keyReporter") self.reporter_element.click() self.key_action = Actions(self.marionette)
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type('Marionette', (Marionette, MarionetteTouchMixin), {}) self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(60000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette) self.apps.kill_all()
def tearDown(self, *args, **kwargs): self.marionette.set_context('chrome') try: self.prefs.restore_all_prefs() # This code should be run after all other tearDown code # so that in case of a failure, further tests will not run # in a state that is more inconsistent than necessary. self._check_and_fix_leaked_handles() finally: MarionetteTestCase.tearDown(self, *args, **kwargs)
def setUp(self, *args, **kwargs): MarionetteTestCase.setUp(self, *args, **kwargs) Puppeteer.set_marionette(self, self.marionette) self._start_handle_count = len(self.marionette.window_handles) self.marionette.set_context('chrome') self.browser = self.windows.current self.browser.focus() with self.marionette.using_context(self.marionette.CONTEXT_CONTENT): # Ensure that we have a default page opened self.marionette.navigate(self.prefs.get_pref('browser.newtab.url'))
def setUp(self): # start server self.loop_test_servers = LoopTestServers() MarionetteTestCase.setUp(self) # Unfortunately, enforcing preferences currently comes with the side # effect of launching and restarting the browser before running the # real functional tests. Bug 1048554 has been filed to track this. self.marionette.enforce_gecko_prefs(FIREFOX_PREFERENCES) # this is browser chrome, kids, not the content window just yet self.marionette.set_context("chrome")
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.set_context('chrome') self.logger = mozlog.structured.structuredlog.get_default_logger() self.urls = self.testvars["urls"] self.pages_to_load = self.testvars.get("entities", len(self.urls)) self.perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE) self.settleWaitTime = self.testvars.get( "settleWaitTime", SETTLE_WAIT_TIME) self.maxTabs = self.testvars.get("maxTabs", MAX_TABS) self.stats = self.testvars.get("stats")
def tearDown(self): if any(sys.exc_info()): # test has failed, gather debug test_class, test_name = self.marionette.test_name.split( )[-1].split('.') xml_output = self.testvars.get('xml_output', None) debug_path = os.path.join( xml_output and os.path.dirname(xml_output) or 'debug', test_class) if not os.path.exists(debug_path): os.makedirs(debug_path) # screenshot try: with open( os.path.join(debug_path, '%s_screenshot.png' % test_name), 'w') as f: # TODO: Bug 818287 - Screenshots include data URL prefix screenshot = self.marionette.screenshot()[22:] f.write(base64.decodestring(screenshot)) except: traceback.print_exc() # page source try: with open( os.path.join(debug_path, '%s_source.txt' % test_name), 'w') as f: f.write(self.marionette.page_source.encode('utf-8')) except: traceback.print_exc() # settings # Switch to top frame in case we are in a 3rd party app # There is no more debug gathering is not specific to the app self.marionette.switch_to_frame() try: with open( os.path.join(debug_path, '%s_settings.json' % test_name), 'w') as f: f.write(json.dumps(self.data_layer.all_settings)) except: traceback.print_exc() self.lockscreen = None self.apps = None self.data_layer = None MarionetteTestCase.tearDown(self)
def tearDown(self): # Force yet another restart with a clean profile to disconnect from the # profile and environment changes we've made, to leave a more or less # blank slate for the next person. self.marionette.restart(clean=True, in_app=False) self.setUpScriptData() # Super MarionetteTestCase.tearDown(self) # Some helpers to deal with removing a load of files import errno, stat def handleRemoveReadonly(func, path, exc): excvalue = exc[1] if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES: os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) # 0777 func(path) else: raise if self.desktop_backup_path: shutil.rmtree(self.desktop_backup_path, ignore_errors=False, onerror=handleRemoveReadonly) if self.reset_profile_path: # Remove ourselves from profiles.ini profileLeafName = os.path.basename( os.path.normpath(self.reset_profile_path)) self.runCode(""" let [salt, name] = arguments[0].split("."); let profile = global.profSvc.getProfileByName(name); profile.remove(false) global.profSvc.flush(); """, script_args=[profileLeafName]) # And delete all the files. shutil.rmtree(self.reset_profile_path, ignore_errors=False, onerror=handleRemoveReadonly)
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type('Marionette', (Marionette, MarionetteTouchMixin), {}) self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(60000) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette) # wifi is true if testvars includes wifi details and wifi manager is defined self.wifi = self.testvars and \ 'wifi' in self.testvars and \ self.marionette.execute_script('return window.navigator.mozWifiManager !== undefined') self.cleanUp()
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.set_context('chrome') self.logger = mozlog.structured.structuredlog.get_default_logger() self._urls = self.testvars.get("urls", TEST_SITES) self._pages_to_load = self.testvars.get("entities", len(self._urls)) self._iterations = self.testvars.get("iterations", ITERATIONS) self._perTabPause = self.testvars.get("perTabPause", PER_TAB_PAUSE) self._settleWaitTime = self.testvars.get("settleWaitTime", SETTLE_WAIT_TIME) self._maxTabs = self.testvars.get("maxTabs", MAX_TABS) # workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1128773 js = os.path.abspath( os.path.join(__file__, os.path.pardir, "checkpoint.js")) with open(js) as f: self._checkpoint_script = f.read() self.reset_state()
def setUp(self): MarionetteTestCase.setUp(self) self.marionette.__class__ = type('Marionette', (Marionette, MarionetteTouchMixin), {}) self.device = GaiaDevice(self.marionette) if self.device.is_android_build: self.device.restart_b2g() self.marionette.setup_touch() # the emulator can be really slow! self.marionette.set_script_timeout(self._script_timeout) self.marionette.set_search_timeout(self._search_timeout) self.lockscreen = LockScreen(self.marionette) self.apps = GaiaApps(self.marionette) self.data_layer = GaiaData(self.marionette, self.testvars) self.keyboard = Keyboard(self.marionette, self) self.cleanUp()