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 setUp(self):
     MarionetteTestCase.setUp(self)
     self.linter = Linter(
         ResourceUriFileReader(self.marionette),
         JSHintEngine(self.marionette,
                      self._read_local_file(self.JSHINT_PATH),
                      self._read_local_file(self.JSHINTRC_PATH)),
         self._get_extended_error_message)
Beispiel #3
0
 def __init__(self,
              marionette_weakref,
              browser=None,
              logger=None,
              **kwargs):
     self.browser = browser
     self.logger = logger
     MarionetteTestCase.__init__(self, marionette_weakref, **kwargs)
 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/test2.xul', 'foo', 'chrome,centerscreen');")
     self.marionette.switch_to_window('foo')
     self.assertNotEqual(self.win, self.marionette.current_window_handle)
Beispiel #5
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.linter = Linter(
         ResourceUriFileReader(self.marionette),
         JSHintEngine(self.marionette,
                      self._read_local_file(self.JSHINT_PATH),
                      self._read_local_file(self.JSHINTRC_PATH)),
         self._get_extended_error_message)
 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("id", "keyReporter")
     self.reporter_element.click()
     self.key_action = Actions(self.marionette)
 def tearDown(self):
     self.marionette.protocol = self.op
     TC.tearDown(self)
Beispiel #8
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     for context in self.contexts:
         with self.marionette.using_context(context):
             self.marionette.clear_imported_scripts()
     self.reset_context()
Beispiel #9
0
 def __init__(self, marionette_weakref, browser=None, **kwargs):
     self.browser = browser
     MarionetteTestCase.__init__(self, marionette_weakref, **kwargs)
 def setUp(self):
     TC.setUp(self)
     self.op = self.marionette.protocol
     self.marionette.protocol = 2
 def tearDown(self):
     MarionetteTestCase.tearDown(self)
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.execute_script("window.location.href = 'about:blank'")
     self.assertEqual("about:blank", self.location_href)
     self.test_doc = self.marionette.absolute_url("test.html")
     self.iframe_doc = self.marionette.absolute_url("test_iframe.html")
Beispiel #13
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.original_emulator_cmd = self.marionette._emulator_cmd
     self.original_emulator_shell = self.marionette._emulator_shell
     self.marionette._emulator_cmd = self.mock_emulator_cmd
     self.marionette._emulator_shell = self.mock_emulator_shell
Beispiel #14
0
    def run_js_test(self, filename, marionette):
        '''
        Run a JavaScript test file and collect its set of assertions
        into the current test's results.

        :param filename: The path to the JavaScript test file to execute.
                         May be relative to the current script.
        :param marionette: The Marionette object in which to execute the test.
        '''
        caller_file = sys._getframe(1).f_globals.get('__file__', '')
        caller_file = os.path.abspath(caller_file)
        script = os.path.join(os.path.dirname(caller_file), filename)
        self.assert_(os.path.exists(script), 'Script "%s" must exist' % script)
        if hasattr(MarionetteTestCase, 'run_js_test'):
            return MarionetteTestCase.run_js_test(self, script, marionette)
        #XXX: copy/pasted from marionette_test.py, refactor this!
        f = open(script, 'r')
        js = f.read()
        args = []

        head_js = MarionetteJSTestCase.head_js_re.search(js)
        if head_js:
            head_js = head_js.group(3)
            head = open(os.path.join(os.path.dirname(script), head_js), 'r')
            js = head.read() + js

        context = MarionetteJSTestCase.context_re.search(js)
        if context:
            context = context.group(3)
        else:
            context = 'content'
        marionette.set_context(context)

        if context != "chrome":
            marionette.navigate('data:text/html,<html>test page</html>')

        timeout = MarionetteJSTestCase.timeout_re.search(js)
        if timeout:
            timeout = timeout.group(3)
            marionette.set_script_timeout(timeout)

        inactivity_timeout = MarionetteJSTestCase.inactivity_timeout_re.search(
            js)
        if inactivity_timeout:
            inactivity_timeout = inactivity_timeout.group(3)

        try:
            results = marionette.execute_js_script(
                js,
                args,
                special_powers=True,
                inactivity_timeout=inactivity_timeout,
                filename=os.path.basename(script))

            self.assertTrue(not 'timeout' in script,
                            'expected timeout not triggered')

            if 'fail' in script:
                self.assertTrue(
                    len(results['failures']) > 0,
                    "expected test failures didn't occur")
            else:
                for failure in results['failures']:
                    diag = "" if failure.get(
                        'diag') is None else failure['diag']
                    name = "got false, expected true" if failure.get(
                        'name') is None else failure['name']
                    self.logger.test_status(self.test_name,
                                            name,
                                            'FAIL',
                                            message=diag)
                for failure in results['expectedFailures']:
                    diag = "" if failure.get(
                        'diag') is None else failure['diag']
                    name = "got false, expected false" if failure.get(
                        'name') is None else failure['name']
                    self.logger.test_status(self.test_name,
                                            name,
                                            'FAIL',
                                            expected='FAIL',
                                            message=diag)
                for failure in results['unexpectedSuccesses']:
                    diag = "" if failure.get(
                        'diag') is None else failure['diag']
                    name = "got true, expected false" if failure.get(
                        'name') is None else failure['name']
                    self.logger.test_status(self.test_name,
                                            name,
                                            'PASS',
                                            expected='FAIL',
                                            message=diag)
                self.assertEqual(0, len(results['failures']),
                                 '%d tests failed' % len(results['failures']))
                if len(results['unexpectedSuccesses']) > 0:
                    raise _UnexpectedSuccess('')
                if len(results['expectedFailures']) > 0:
                    raise _ExpectedFailure(
                        (AssertionError, AssertionError(''), None))

            self.assertTrue(
                results['passed'] + len(results['failures']) +
                len(results['expectedFailures']) +
                len(results['unexpectedSuccesses']) > 0, 'no tests run')

        except ScriptTimeoutException:
            if 'timeout' in script:
                # expected exception
                pass
            else:
                self.loglines = marionette.get_logs()
                raise
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.enforce_gecko_prefs({"prompts.tab_modal.enabled": False})
     self.marionette.navigate(self.marionette.absolute_url('modal_dialogs.html'))
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.op = self.marionette.protocol
     self.marionette.protocol = 2
Beispiel #17
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.op = self.marionette.protocol
     self.marionette.protocol = 2
Beispiel #18
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.original_emulator_cmd = self.marionette._emulator_cmd
     self.original_emulator_shell = self.marionette._emulator_shell
     self.marionette._emulator_cmd = self.mock_emulator_cmd
     self.marionette._emulator_shell = self.mock_emulator_shell
Beispiel #19
0
    def run_js_test(self, filename, marionette):
        '''
        Run a JavaScript test file and collect its set of assertions
        into the current test's results.

        :param filename: The path to the JavaScript test file to execute.
                         May be relative to the current script.
        :param marionette: The Marionette object in which to execute the test.
        '''
        caller_file = sys._getframe(1).f_globals.get('__file__', '')
        caller_file = os.path.abspath(caller_file)
        script = os.path.join(os.path.dirname(caller_file), filename)
        self.assert_(os.path.exists(script), 'Script "%s" must exist' % script)
        if hasattr(MarionetteTestCase, 'run_js_test'):
            return MarionetteTestCase.run_js_test(self, script, marionette)
        #XXX: copy/pasted from marionette_test.py, refactor this!
        f = open(script, 'r')
        js = f.read()
        args = []

        head_js = MarionetteJSTestCase.head_js_re.search(js);
        if head_js:
            head_js = head_js.group(3)
            head = open(os.path.join(os.path.dirname(script), head_js), 'r')
            js = head.read() + js;

        context = MarionetteJSTestCase.context_re.search(js)
        if context:
            context = context.group(3)
        else:
            context = 'content'
        marionette.set_context(context)

        if context != "chrome":
            marionette.navigate('data:text/html,<html>test page</html>')

        timeout = MarionetteJSTestCase.timeout_re.search(js)
        if timeout:
            timeout = timeout.group(3)
            marionette.set_script_timeout(timeout)

        inactivity_timeout = MarionetteJSTestCase.inactivity_timeout_re.search(js)
        if inactivity_timeout:
            inactivity_timeout = inactivity_timeout.group(3)

        try:
            results = marionette.execute_js_script(js,
                                                   args,
                                                   special_powers=True,
                                                   inactivity_timeout=inactivity_timeout,
                                                   filename=os.path.basename(script))

            self.assertTrue(not 'timeout' in script,
                            'expected timeout not triggered')

            if 'fail' in script:
                self.assertTrue(len(results['failures']) > 0,
                                "expected test failures didn't occur")
            else:
                for failure in results['failures']:
                    diag = "" if failure.get('diag') is None else failure['diag']
                    name = "got false, expected true" if failure.get('name') is None else failure['name']
                    self.logger.test_status(self.test_name, name, 'FAIL',
                                            message=diag)
                for failure in results['expectedFailures']:
                    diag = "" if failure.get('diag') is None else failure['diag']
                    name = "got false, expected false" if failure.get('name') is None else failure['name']
                    self.logger.test_status(self.test_name, name, 'FAIL',
                                            expected='FAIL', message=diag)
                for failure in results['unexpectedSuccesses']:
                    diag = "" if failure.get('diag') is None else failure['diag']
                    name = "got true, expected false" if failure.get('name') is None else failure['name']
                    self.logger.test_status(self.test_name, name, 'PASS',
                                            expected='FAIL', message=diag)
                self.assertEqual(0, len(results['failures']),
                                 '%d tests failed' % len(results['failures']))
                if len(results['unexpectedSuccesses']) > 0:
                    raise _UnexpectedSuccess('')
                if len(results['expectedFailures']) > 0:
                    raise _ExpectedFailure((AssertionError, AssertionError(''), None))

            self.assertTrue(results['passed']
                            + len(results['failures'])
                            + len(results['expectedFailures'])
                            + len(results['unexpectedSuccesses']) > 0,
                            'no tests run')

        except ScriptTimeoutException:
            if 'timeout' in script:
                # expected exception
                pass
            else:
                self.loglines = marionette.get_logs()
                raise
Beispiel #20
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     for context in self.contexts:
         with self.marionette.using_context(context):
             self.marionette.clear_imported_scripts()
     self.reset_context()
 def tearDown(self):
     self.assertNotEqual(self.win, self.marionette.current_window_handle)
     self.marionette.execute_script("window.close();")
     self.marionette.switch_to_window(self.win)
     MarionetteTestCase.tearDown(self)
Beispiel #22
0
 def tearDown(self):
     self.marionette.protocol = self.op
     MarionetteTestCase.tearDown(self)
Beispiel #23
0
 def setUp(self):
     MarionetteTestCase.setUp(self)
     self.marionette.enforce_gecko_prefs(
         {"prompts.tab_modal.enabled": False})
     self.marionette.navigate(
         self.marionette.absolute_url('modal_dialogs.html'))
 def tearDown(self):
     self.assertNotEqual(self.win, self.marionette.current_window_handle)
     self.marionette.execute_script("window.close();")
     self.marionette.switch_to_window(self.win)
     MarionetteTestCase.tearDown(self)
Beispiel #25
0
 def tearDown(self):
     MarionetteTestCase.tearDown(self)
 def tearDown(self):
     self.marionette.protocol = self.op
     MarionetteTestCase.tearDown(self)
Beispiel #27
0
    def run_js_test(self, filename, marionette):
        """
        Run a JavaScript test file and collect its set of assertions
        into the current test's results.

        :param filename: The path to the JavaScript test file to execute.
                         May be relative to the current script.
        :param marionette: The Marionette object in which to execute the test.
        """
        caller_file = sys._getframe(1).f_globals.get("__file__", "")
        caller_file = os.path.abspath(caller_file)
        script = os.path.join(os.path.dirname(caller_file), filename)
        self.assert_(os.path.exists(script), 'Script "%s" must exist' % script)
        if hasattr(MarionetteTestCase, "run_js_test"):
            return MarionetteTestCase.run_js_test(self, script, marionette)
        # XXX: copy/pasted from marionette_test.py, refactor this!
        f = open(script, "r")
        js = f.read()
        args = []

        head_js = MarionetteJSTestCase.head_js_re.search(js)
        if head_js:
            head_js = head_js.group(3)
            head = open(os.path.join(os.path.dirname(script), head_js), "r")
            js = head.read() + js

        context = MarionetteJSTestCase.context_re.search(js)
        if context:
            context = context.group(3)
        else:
            context = "content"
        marionette.set_context(context)

        if context != "chrome":
            marionette.navigate("data:text/html,<html>test page</html>")

        timeout = MarionetteJSTestCase.timeout_re.search(js)
        if timeout:
            timeout = timeout.group(3)
            marionette.set_script_timeout(timeout)

        inactivity_timeout = MarionetteJSTestCase.inactivity_timeout_re.search(js)
        if inactivity_timeout:
            inactivity_timeout = inactivity_timeout.group(3)

        try:
            results = marionette.execute_js_script(
                js, args, special_powers=True, inactivity_timeout=inactivity_timeout, filename=os.path.basename(script)
            )

            self.assertTrue(not "timeout" in script, "expected timeout not triggered")

            if "fail" in script:
                self.assertTrue(len(results["failures"]) > 0, "expected test failures didn't occur")
            else:
                for failure in results["failures"]:
                    diag = "" if failure.get("diag") is None else failure["diag"]
                    name = "got false, expected true" if failure.get("name") is None else failure["name"]
                    self.logger.test_status(self.test_name, name, "FAIL", message=diag)
                for failure in results["expectedFailures"]:
                    diag = "" if failure.get("diag") is None else failure["diag"]
                    name = "got false, expected false" if failure.get("name") is None else failure["name"]
                    self.logger.test_status(self.test_name, name, "FAIL", expected="FAIL", message=diag)
                for failure in results["unexpectedSuccesses"]:
                    diag = "" if failure.get("diag") is None else failure["diag"]
                    name = "got true, expected false" if failure.get("name") is None else failure["name"]
                    self.logger.test_status(self.test_name, name, "PASS", expected="FAIL", message=diag)
                self.assertEqual(0, len(results["failures"]), "%d tests failed" % len(results["failures"]))
                if len(results["unexpectedSuccesses"]) > 0:
                    raise _UnexpectedSuccess("")
                if len(results["expectedFailures"]) > 0:
                    raise _ExpectedFailure((AssertionError, AssertionError(""), None))

            self.assertTrue(
                results["passed"]
                + len(results["failures"])
                + len(results["expectedFailures"])
                + len(results["unexpectedSuccesses"])
                > 0,
                "no tests run",
            )

        except ScriptTimeoutException:
            if "timeout" in script:
                # expected exception
                pass
            else:
                self.loglines = marionette.get_logs()
                raise