1
0
mirror of synced 2026-08-05 15:06:54 +00:00

test(screencast): close context with video before returning from test method (#456)

This commit is contained in:
Yury Semikhatsky
2021-05-20 22:25:23 +00:00
committed by GitHub
parent a5d5c0d960
commit a67bf05b05
@@ -60,49 +60,51 @@ public class TestScreencast extends TestBase {
@Test
void saveAsShouldThrowWhenNoVideoFrames(@TempDir Path videosDir) {
BrowserContext context = browser.newContext(
try (BrowserContext context = browser.newContext(
new Browser.NewContextOptions()
.setRecordVideoDir(videosDir)
.setRecordVideoSize(320, 240)
.setViewportSize(320, 240));
.setViewportSize(320, 240))) {
Page page = context.newPage();
Page popup = context.waitForPage(() -> {
page.evaluate("() => {\n" +
" const win = window.open('about:blank');\n" +
" win.close();\n" +
"}");
});
page.close();
Page page = context.newPage();
Page popup = context.waitForPage(() -> {
page.evaluate("() => {\n" +
" const win = window.open('about:blank');\n" +
" win.close();\n" +
"}");
});
page.close();
Path saveAsPath = videosDir.resolve("my-video.webm");
try {
popup.video().saveAs(saveAsPath);
} catch (PlaywrightException e) {
// WebKit pauses renderer before win.close() and actually writes something.
if (isWebKit()) {
assertTrue(Files.exists(saveAsPath));
} else {
assertTrue(e.getMessage().contains("Page did not produce any video frames"), e.getMessage());
Path saveAsPath = videosDir.resolve("my-video.webm");
try {
popup.video().saveAs(saveAsPath);
} catch (PlaywrightException e) {
// WebKit pauses renderer before win.close() and actually writes something.
if (isWebKit()) {
assertTrue(Files.exists(saveAsPath));
} else {
assertTrue(e.getMessage().contains("Page did not produce any video frames"), e.getMessage());
}
}
}
}
@Test
void shouldDeleteVideo(@TempDir Path videosDir) {
BrowserContext context = browser.newContext(
try (BrowserContext context = browser.newContext(
new Browser.NewContextOptions()
.setRecordVideoDir(videosDir)
.setRecordVideoSize(320, 240)
.setViewportSize(320, 240));
Page page = context.newPage();
page.evaluate("() => document.body.style.backgroundColor = 'red'");
page.waitForTimeout(1000);
context.close();
.setViewportSize(320, 240))) {
Page page = context.newPage();
page.evaluate("() => document.body.style.backgroundColor = 'red'");
page.waitForTimeout(1000);
context.close();
page.video().delete();
Path videoPath = page.video().path();
assertFalse(Files.exists(videoPath));
page.video().delete();
Path videoPath = page.video().path();
assertFalse(Files.exists(videoPath));
}
}
@Test