Skip to content

Commit 4c808c6

Browse files
committed
fixes
1 parent b4dcbd9 commit 4c808c6

File tree

5 files changed

+43
-53
lines changed

5 files changed

+43
-53
lines changed

tests/async/conftest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ async def browser(
8484
await browser.close()
8585

8686

87+
@pytest.fixture(scope="session")
88+
async def browser_version(browser: Browser) -> str:
89+
return browser.version
90+
91+
8792
@pytest.fixture
8893
async def context_factory(
8994
browser: Browser,

tests/async/test_browsertype_connect.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from playwright.async_api import BrowserType, Error, Playwright, Route
2525
from tests.conftest import RemoteServer
2626
from tests.server import Server, TestServerRequest, WebSocketProtocol
27-
from tests.utils import parse_trace
27+
from tests.utils import chromium_version_less_than, parse_trace
2828

2929

3030
async def test_should_print_custom_ws_close_error(
@@ -412,6 +412,9 @@ async def test_should_upload_a_folder(
412412
launch_server: Callable[[], RemoteServer],
413413
server: Server,
414414
tmp_path: Path,
415+
browser_name: str,
416+
browser_version: str,
417+
headless: bool,
415418
) -> None:
416419
remote = launch_server()
417420

@@ -434,7 +437,14 @@ async def test_should_upload_a_folder(
434437
[
435438
"file-upload-test/file1.txt",
436439
"file-upload-test/file2",
437-
"file-upload-test/sub-dir/really.txt",
440+
# https://issues.chromium.org/issues/345393164
441+
*(
442+
[]
443+
if browser_name == "chromium"
444+
and headless
445+
and chromium_version_less_than(browser_version, "127.0.6533.0")
446+
else []
447+
),
438448
]
439449
)
440450
webkit_relative_paths = await input.evaluate(

tests/async/test_input.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from playwright._impl._path_utils import get_file_dirname
2727
from playwright.async_api import Error, FilePayload, Page
2828
from tests.server import Server
29-
from tests.utils import must
29+
from tests.utils import chromium_version_less_than, must
3030

3131
_dirname = get_file_dirname()
3232
FILE_TO_UPLOAD = _dirname / ".." / "assets/file-to-upload.txt"
@@ -415,7 +415,12 @@ async def test_should_upload_multiple_large_file(
415415

416416

417417
async def test_should_upload_a_folder(
418-
page: Page, server: Server, tmp_path: Path
418+
page: Page,
419+
server: Server,
420+
tmp_path: Path,
421+
browser_name: str,
422+
browser_version: str,
423+
headless: bool,
419424
) -> None:
420425
await page.goto(server.PREFIX + "/input/folderupload.html")
421426
input = await page.query_selector("input")
@@ -433,7 +438,14 @@ async def test_should_upload_a_folder(
433438
[
434439
"file-upload-test/file1.txt",
435440
"file-upload-test/file2",
436-
"file-upload-test/sub-dir/really.txt",
441+
# https://issues.chromium.org/issues/345393164
442+
*(
443+
[]
444+
if browser_name == "chromium"
445+
and headless
446+
and chromium_version_less_than(browser_version, "127.0.6533.0")
447+
else []
448+
),
437449
]
438450
)
439451
webkit_relative_paths = await input.evaluate(

tests/async/test_request_continue.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -147,50 +147,6 @@ async def test_should_amend_binary_post_data(page: Page, server: Server) -> None
147147
assert server_request.post_body == b"\x00\x01\x02\x03\x04"
148148

149149

150-
# it('continue should not change multipart/form-data body', async ({ page, server, browserName }) => {
151-
# it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/19158' });
152-
# await page.goto(server.EMPTY_PAGE);
153-
# server.setRoute('/upload', (request, response) => {
154-
# response.writeHead(200, { 'Content-Type': 'text/plain' });
155-
# response.end('done');
156-
# });
157-
# async function sendFormData() {
158-
# const reqPromise = server.waitForRequest('/upload');
159-
# const status = await page.evaluate(async () => {
160-
# const newFile = new File(['file content'], 'file.txt');
161-
# const formData = new FormData();
162-
# formData.append('file', newFile);
163-
# const response = await fetch('/upload', {
164-
# method: 'POST',
165-
# credentials: 'include',
166-
# body: formData,
167-
# });
168-
# return response.status;
169-
# });
170-
# const req = await reqPromise;
171-
# expect(status).toBe(200);
172-
# return req;
173-
# }
174-
# const reqBefore = await sendFormData();
175-
# await page.route('**/*', async route => {
176-
# await route.continue();
177-
# });
178-
# const reqAfter = await sendFormData();
179-
# const fileContent = [
180-
# 'Content-Disposition: form-data; name=\"file\"; filename=\"file.txt\"',
181-
# 'Content-Type: application/octet-stream',
182-
# '',
183-
# 'file content',
184-
# '------'].join('\r\n');
185-
# expect.soft((await reqBefore.postBody).toString('utf8')).toContain(fileContent);
186-
# expect.soft((await reqAfter.postBody).toString('utf8')).toContain(fileContent);
187-
# // Firefox sends a bit longer boundary.
188-
# const expectedLength = browserName === 'firefox' ? '246' : '208';
189-
# expect.soft(reqBefore.headers['content-length']).toBe(expectedLength);
190-
# expect.soft(reqAfter.headers['content-length']).toBe(expectedLength);
191-
# });
192-
193-
194150
async def test_continue_should_not_change_multipart_form_data_body(
195151
page: Page, server: Server, browser_name: str
196152
) -> None:
@@ -238,7 +194,3 @@ async def send_form_data() -> TestServerRequest:
238194
assert req_after.post_body
239195
assert file_content in req_before.post_body.decode()
240196
assert file_content in req_after.post_body.decode()
241-
# Firefox sends a bit longer boundary.
242-
expected_length = "246" if browser_name == "firefox" else "208"
243-
assert req_before.getHeader("content-length") == expected_length
244-
assert req_after.getHeader("content-length") == expected_length

tests/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,14 @@ def get_trace_actions(events: List[Any]) -> List[str]:
6565
def must(value: Optional[MustType]) -> MustType:
6666
assert value
6767
return value
68+
69+
70+
def chromium_version_less_than(a: str, b: str) -> bool:
71+
left = list(map(int, a.split(".")))
72+
right = list(map(int, b.split(".")))
73+
for i in range(4):
74+
if left[i] > right[i]:
75+
return False
76+
if left[i] < right[i]:
77+
return True
78+
return False

0 commit comments

Comments
 (0)