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))
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))
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']))
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)
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'])
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')
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")
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', )
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'])
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)
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')
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")
def test_browser_name_override_unknown(self): with patch('os.environ', {'WPE_BROWSER': 'Mosaic'}): port = self.make_port() self.assertEqual(port.browser_name(), "minibrowser")