Skip to content

Commit 2eaba48

Browse files
authored
Add missing BF cache test (#2619)
1 parent 238193a commit 2eaba48

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

lib/PuppeteerSharp.Tests/BFCacheTests/BFCacheTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Threading.Tasks;
22
using NUnit.Framework;
3+
using PuppeteerSharp.Helpers;
34
using PuppeteerSharp.Nunit;
45

56
namespace PuppeteerSharp.Tests.BFCacheTests;
@@ -23,4 +24,26 @@ public async Task CanNavigateToABFCachedPage()
2324
await Task.WhenAll(Page.WaitForNavigationAsync(), Page.GoBackAsync());
2425
Assert.AreEqual("BFCachednext", await Page.EvaluateExpressionAsync<string>("document.body.innerText"));
2526
}
27+
28+
[Test, Retry(2), PuppeteerTest("bfcache.spec", "BFCache", "can navigate to a BFCached page containing an OOPIF and a worker")]
29+
public async Task CanNavigateToABFCachedPageContainingAnOOPIFAndAWorker()
30+
{
31+
Page.DefaultTimeout = 30_000;
32+
var workerTcs = new TaskCompletionSource<WebWorker>();
33+
Page.WorkerCreated += (_, e) => workerTcs.TrySetResult(e.Worker);
34+
await Page.GoToAsync(TestConstants.ServerUrl + "/cached/bfcache/worker-iframe-container.html");
35+
var worker1 = await workerTcs.Task.WithTimeout();
36+
Assert.AreEqual(2, await worker1.EvaluateExpressionAsync<int>("1 + 1"));
37+
await Task.WhenAll(
38+
Page.WaitForNavigationAsync(),
39+
Page.ClickAsync("a"));
40+
41+
workerTcs = new TaskCompletionSource<WebWorker>();
42+
await Task.WhenAll(
43+
Page.WaitForNavigationAsync(),
44+
Page.GoBackAsync()).WithTimeout();
45+
46+
var worker2 = await workerTcs.Task.WithTimeout();
47+
Assert.AreEqual(2, await worker2.EvaluateExpressionAsync<int>("1 + 1"));
48+
}
2649
}

0 commit comments

Comments
 (0)