def test_checkdriver(self):
     driver = self.make_driver()
     with patch('os.environ', {}):
         self.assertFalse(driver.check_driver(driver._port))
     with patch('os.environ', {'XAUTHORITY': '/home/igalia/.Xauthority'}):
         self.assertFalse(driver.check_driver(driver._port))
     with patch('os.environ', {'DISPLAY': ':0.0'}):
         self.assertTrue(driver.check_driver(driver._port))
     with patch('os.environ', self.make_environment()):
         self.assertTrue(driver.check_driver(driver._port))
Beispiel #2
0
 def test_checkdriver(self):
     driver = self.make_driver()
     with patch('os.environ', {}):
         self.assertFalse(driver.check_driver(driver._port))
     with patch('os.environ', {'WAYLAND_DISPLAY': ':0.0'}):
         self.assertTrue(driver.check_driver(driver._port))
     with patch('os.environ', {'WAYLAND_SOCKET': ':0.0'}):
         self.assertTrue(driver.check_driver(driver._port))
     with patch('os.environ', self.make_environment()):
         self.assertTrue(driver.check_driver(driver._port))
Beispiel #3
0
 def test_create_temporal_home_dir(self):
     environ_user = {'HOME': '/home/igalia'}
     with patch('os.environ', environ_user), patch('sys.platform', 'linux2'):
         port = self.make_port()
         port._test_runner_process_constructor = MockServerProcess
         driver = Driver(port, None, pixel_tests=False)
         driver.start(True, [])
         environ_driver = driver._setup_environ_for_test()
         self.assertNotEquals(environ_driver['HOME'], environ_user['HOME'])
         self.assertIn(str(driver._driver_tempdir), environ_driver['HOME'])
         self.assertNotIn(str(driver._driver_tempdir), environ_user['HOME'])
         self.assertTrue(port._filesystem.isdir(environ_driver['HOME']))
Beispiel #4
0
    def test_archive_upload(self):
        upload = Upload(
            suite='webkitpy-tests',
            commits=[
                Upload.create_commit(
                    repository_id='webkit',
                    id='5',
                    branch='trunk',
                )
            ],
        )

        with mock.patch('requests.post',
                        new=lambda url, headers={}, data={}, files={}, verify=
                        True: self.MockResponse()):
            self.assertTrue(
                upload.upload_archive('https://results.webkit.org',
                                      archive='content',
                                      log_line_func=lambda _: None))

        with mock.patch('requests.post',
                        new=lambda url, headers={}, data={}, files={}, verify=
                        True: self.raise_requests_ConnectionError()):
            lines = []
            self.assertFalse(
                upload.upload_archive(
                    'https://results.webkit.org',
                    archive='content',
                    log_line_func=lambda line: lines.append(line)))
            self.assertEqual([
                ' ' * 4 +
                'Failed to upload test archive to https://results.webkit.org, results server not online'
            ], lines)

        mock_404 = mock.patch(
            'requests.post',
            new=lambda url, headers={}, data={}, files={
            }, verify=True: self.MockResponse(
                status_code=404,
                text=json.dumps(dict(description='No such address')),
            ))
        with mock_404:
            lines = []
            self.assertFalse(
                upload.upload_archive(
                    'https://results.webkit.org',
                    archive='content',
                    log_line_func=lambda line: lines.append(line)))
            self.assertEqual([
                ' ' * 4 +
                'Error uploading archive to https://results.webkit.org',
                ' ' * 8 + 'No such address',
            ], lines)
Beispiel #5
0
    def test_environment_optional_variables(self):
        driver = self.make_driver()
        environment_user = self.make_environment()
        with patch('os.environ', environment_user):
            driver_environment = driver._setup_environ_for_test()
            self.assertIn('WAYLAND_DISPLAY', driver_environment)
            self.assertIn('WAYLAND_SOCKET', driver_environment)
            self.assertEqual(driver_environment['WAYLAND_DISPLAY'], environment_user['WAYLAND_DISPLAY'])
            self.assertEqual(driver_environment['WAYLAND_SOCKET'], environment_user['WAYLAND_SOCKET'])

        environment_user.pop('WAYLAND_SOCKET')
        with patch('os.environ', environment_user):
            driver_environment = driver._setup_environ_for_test()
            self.assertNotIn('WAYLAND_SOCKET', driver_environment)
            self.assertIn('WAYLAND_DISPLAY', driver_environment)
            self.assertEqual(driver_environment['WAYLAND_DISPLAY'], environment_user['WAYLAND_DISPLAY'])
Beispiel #6
0
 def test_setup_environ_base_vars(self):
     # This are essential environment variables that should be copied
     # as part of base:setup_environ_for_server for all drivers
     environ_keep_yes = {
         'HOME': '/home/igalia',
         'PATH': '/bin:/usr/sbin:/usr/bin',
         'WEBKIT_TESTFONTS': '/opt/webkit/WebKitBuild/WKTestFonts',
         'WEBKIT_OUTPUTDIR': '/opt/webkit/WebKitBuild/Release',
         'LANG': 'en_US.utf8'
     }
     # This are environment variables that should be copied
     # on the driver (wayland, x11). But not in the base driver.
     environ_keep_no = {
         'DISPLAY': ':0.0',
         'XAUTHORITY': '/home/igalia/.Xauthority',
         'WAYLAND_DISPLAY': 'wayland-0',
         'WAYLAND_SOCKET': 'wayland-socket-0',
         'GDK_BACKEND': 'x11'
     }
     environment_user = dict(environ_keep_yes.items() +
                             environ_keep_no.items())
     with patch('os.environ', environment_user):
         port = self.make_port()
         driver = Driver(port, None, pixel_tests=False)
         environment_driver_test = driver._setup_environ_for_test()
         for var in environ_keep_no.keys():
             self.assertNotIn(var, environment_driver_test)
         for var in environ_keep_yes.keys():
             self.assertIn(var, environment_driver_test)
             self.assertEqual(environment_driver_test[var],
                              environ_keep_yes[var])
    def test_update_test_expectations(self):
        host = MockHost()
        host.executive = MockExecutive2(exception=OSError())
        host.filesystem = MockFileSystem(
            files={
                '/mock-checkout/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt':
                'e-wk1',
                '/mock-checkout/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt':
                "g",
                '/mock-checkout/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-001-expected.txt':
                "h",
                '/mock-checkout/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt':
                "i",
                '/mock-checkout/LayoutTests/imported/w3c/web-platform-tests/url/interfaces-expected.txt':
                "j-mac-wk2"
            })

        mock_zip = MockZip()
        with mock.patch(
                'webkitpy.common.net.bugzilla.test_expectation_updater.requests.get',
                MockRequestsGet):
            updater = TestExpectationUpdater(
                host, "123456", True, False, MockBugzilla(),
                lambda content: mock_zip.unzip(content))
            updater.do_update()
            # mac-wk2 expectation
            self.assertTrue(
                self._is_matching(
                    host,
                    "imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt",
                    "a"))
            # no need to add mac-wk1 specific expectation
            self.assertFalse(
                self._exists(
                    host,
                    "platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt"
                ))
            # mac-wk1/ios-simulator-wk2 specific expectation
            self.assertTrue(
                self._is_matching(
                    host,
                    "platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-expected.txt",
                    "f-wk1b"))
            self.assertTrue(
                self._is_matching(
                    host,
                    "platform/ios-wk2/imported/w3c/web-platform-tests/url/interfaces-expected.txt",
                    "j"))
            # removal of mac-wk1 expectation since no longer different
            self.assertFalse(
                self._exists(
                    host,
                    "platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt"
                ))
            # windows specific expectation
            self.assertTrue(
                self._is_matching(
                    host,
                    "platform/win/imported/w3c/web-platform-tests/url/interfaces-expected.txt",
                    "j"))
 def test_environment_forbidden_variables(self):
     driver = self.make_driver()
     environment_user = self.make_environment()
     with patch('os.environ', environment_user):
         driver_environment = driver._setup_environ_for_test()
         self.assertNotIn('WAYLAND_SOCKET', driver_environment)
         self.assertNotIn('WAYLAND_DISPLAY', driver_environment)
 def test_environment_needed_variables(self):
     driver = self.make_driver()
     environment_user = self.make_environment()
     with patch('os.environ', environment_user):
         driver_environment = driver._setup_environ_for_test()
         self.assertIn('WPE_USE_HEADLESS_VIEW_BACKEND', driver_environment)
         self.assertEqual(
             driver_environment['WPE_USE_HEADLESS_VIEW_BACKEND'], '1')
Beispiel #10
0
 def test_browser_name_override_minibrowser_with_cog_built(self):
     with patch('os.environ', {'WPE_BROWSER': 'MiniBrowser'}):
         port = self.make_port()
         port._filesystem = MockFileSystem({
             "/mock-build/Tools/cog-prefix/src/cog-build/cog":
             "",
         })
         self.assertEqual(port.browser_name(), "minibrowser")
Beispiel #11
0
 def test_environment_needed_variables(self):
     driver = self.make_driver()
     environment_user = self.make_environment()
     with patch('os.environ', environment_user):
         driver_environment = driver._setup_environ_for_test()
         self.assertIn('WAYLAND_DISPLAY', driver_environment)
         self.assertIn('WAYLAND_SOCKET', driver_environment)
         self.assertIn('GDK_BACKEND', driver_environment)
         self.assertEqual(driver_environment['WAYLAND_DISPLAY'], environment_user['WAYLAND_DISPLAY'])
         self.assertEqual(driver_environment['WAYLAND_SOCKET'], environment_user['WAYLAND_SOCKET'])
         self.assertEqual(driver_environment['GDK_BACKEND'], 'wayland', )
Beispiel #12
0
 def test_setup_environ_for_test(self):
     environment_user = {}
     environment_user['WEBKIT_OUTPUTDIR'] = '/opt/webkit/WebKitBuild/Release'
     environment_user['FOO'] = 'BAR'
     with patch('os.environ', environment_user):
         port = self.make_port()
         driver = Driver(port, None, pixel_tests=False)
         environment_driver_test = driver._setup_environ_for_test()
         self.assertNotIn('FOO', environment_driver_test)
         self.assertIn('WEBKIT_OUTPUTDIR', environment_driver_test)
         self.assertEqual(environment_user['WEBKIT_OUTPUTDIR'], environment_driver_test['WEBKIT_OUTPUTDIR'])
Beispiel #13
0
 def test_setup_environ_for_test(self):
     environment_user = {}
     environment_user['WEBKIT_OUTPUTDIR'] = '/opt/webkit/WebKitBuild/Release'
     environment_user['FOO'] = 'BAR'
     with patch('os.environ', environment_user):
         port = self.make_port()
         driver = Driver(port, None, pixel_tests=False)
         environment_driver_test = driver._setup_environ_for_test()
         self.assertNotIn('FOO', environment_driver_test)
         self.assertIn('WEBKIT_OUTPUTDIR', environment_driver_test)
         self.assertEqual(environment_user['WEBKIT_OUTPUTDIR'], environment_driver_test['WEBKIT_OUTPUTDIR'])
Beispiel #14
0
 def test_setup_environ_without_starting_driver(self):
     environ_user = {'WEBKIT_OUTPUTDIR': '/opt/webkit/WebKitBuild/Release'}
     with patch('os.environ', environ_user):
         port = self.make_port()
         driver = Driver(port, None, pixel_tests=False)
         self.assertEqual(driver._driver_tempdir, None)
         environ_driver = driver._setup_environ_for_test()
         self.assertNotEqual(driver._driver_tempdir, None)
         self.assertTrue(port._filesystem.isdir(str(driver._driver_tempdir)))
         for var in environ_driver:
             self.assertNotEqual(var, None)
             self.assertNotEqual(environ_driver[var], None)
Beispiel #15
0
    def test_upload(self):
        upload = Upload(
            suite='webkitpy-tests',
            commits=[Upload.create_commit(
                repository_id='webkit',
                id='5',
                branch='trunk',
            )],
        )

        with mock.patch('requests.post', new=lambda url, data: self.MockResponse()):
            self.assertTrue(upload.upload('https://webkit.org/results', log_line_func=lambda _: None))

        with mock.patch('requests.post', new=lambda url, data: self.raise_requests_ConnectionError()):
            self.assertFalse(upload.upload('https://webkit.org/results', log_line_func=lambda _: None))

        mock_404 = mock.patch('requests.post', new=lambda url, data: self.MockResponse(
            status_code=404,
            text=json.dumps(dict(description='No such address')),
        ))
        with mock_404:
            self.assertFalse(upload.upload('https://webkit.org/results', log_line_func=lambda _: None))
 def test_environment_needed_variables(self):
     driver = self.make_driver()
     environment_user = self.make_environment()
     with patch('os.environ', environment_user):
         driver_environment = driver._setup_environ_for_test()
         self.assertIn('DISPLAY', driver_environment)
         self.assertIn('XAUTHORITY', driver_environment)
         self.assertIn('GDK_BACKEND', driver_environment)
         self.assertEqual(driver_environment['DISPLAY'],
                          environment_user['DISPLAY'])
         self.assertEqual(driver_environment['XAUTHORITY'],
                          environment_user['XAUTHORITY'])
         self.assertEqual(driver_environment['GDK_BACKEND'], 'x11')
Beispiel #17
0
 def test_browser_name_override_cog_without_cog_built(self):
     with patch('os.environ', {'WPE_BROWSER': 'Cog'}):
         port = self.make_port()
         self.assertEqual(port.browser_name(), "cog")
Beispiel #18
0
 def test_browser_name_override_unknown(self):
     with patch('os.environ', {'WPE_BROWSER': 'Mosaic'}):
         port = self.make_port()
         self.assertEqual(port.browser_name(), "minibrowser")