|
4 | 4 | import pytest_asyncio |
5 | 5 |
|
6 | 6 | from pydoll import exceptions |
| 7 | +from pydoll.browser.chrome import Chrome |
7 | 8 | from pydoll.browser.base import Browser |
8 | 9 | from pydoll.browser.managers import ( |
9 | 10 | ProxyManager, |
| 11 | + BrowserOptionsManager |
10 | 12 | ) |
11 | 13 | from pydoll.browser.options import Options |
12 | 14 | from pydoll.browser.page import Page |
@@ -357,3 +359,26 @@ async def test__get_valid_page_key_error(mock_browser): |
357 | 359 | mock_browser._connection_handler.execute_command.assert_called_with( |
358 | 360 | TargetCommands.create_target(''), timeout=60 |
359 | 361 | ) |
| 362 | + |
| 363 | +@pytest.mark.parametrize('os_name, expected_browser_path', [ |
| 364 | + ('Windows', r'C:\Program Files\Google\Chrome\Application\chrome.exe'), |
| 365 | + ('Linux', '/usr/bin/google-chrome'), |
| 366 | + ('Darwin', '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome') |
| 367 | +]) |
| 368 | +@patch('platform.system') |
| 369 | +@patch.object(BrowserOptionsManager, 'validate_browser_path') |
| 370 | +def test__get_default_binary_location(mock_validate_browser_path, mock_platform_system, os_name, expected_browser_path): |
| 371 | + mock_platform_system.return_value = os_name |
| 372 | + mock_validate_browser_path.return_value = expected_browser_path |
| 373 | + |
| 374 | + path = Chrome._get_default_binary_location() |
| 375 | + mock_validate_browser_path.assert_called_once_with(expected_browser_path) |
| 376 | + |
| 377 | + assert path == expected_browser_path |
| 378 | + |
| 379 | +@patch('platform.system') |
| 380 | +def test__get_default_binary_location_throws_exception_if_os_not_supported(mock_platform_system): |
| 381 | + mock_platform_system.return_value = 'FreeBSD' |
| 382 | + |
| 383 | + with pytest.raises(ValueError, match="Unsupported OS"): |
| 384 | + Chrome._get_default_binary_location() |
0 commit comments