|
1 | | -using System; |
2 | | -using System.Threading.Tasks; |
| 1 | +using System.Threading.Tasks; |
3 | 2 | using Xunit; |
4 | 3 | using Xunit.Abstractions; |
5 | 4 |
|
@@ -34,6 +33,59 @@ public async Task ShouldCleanCallbackList() |
34 | 33 | await Page.SetJavaScriptEnabledAsync(true); |
35 | 34 | Assert.False(Page.Client.HasPendingCallbacks()); |
36 | 35 | } |
| 36 | + |
| 37 | + [Fact] |
| 38 | + public async Task ShouldBeAbleToConnectUsingBrowserURLWithAndWithoutTrailingSlash() |
| 39 | + { |
| 40 | + var options = TestConstants.DefaultBrowserOptions(); |
| 41 | + options.Args = new string[] { "--remote-debugging-port=21222" }; |
| 42 | + var originalBrowser = await Puppeteer.LaunchAsync(options); |
| 43 | + var browserURL = "http://127.0.0.1:21222"; |
| 44 | + |
| 45 | + var browser1 = await Puppeteer.ConnectAsync(new ConnectOptions { BrowserURL = browserURL }); |
| 46 | + var page1 = await browser1.NewPageAsync(); |
| 47 | + Assert.Equal(56, await page1.EvaluateExpressionAsync<int>("7 * 8")); |
| 48 | + browser1.Disconnect(); |
| 49 | + |
| 50 | + var browser2 = await Puppeteer.ConnectAsync(new ConnectOptions { BrowserURL = browserURL + "/" }); |
| 51 | + var page2 = await browser2.NewPageAsync(); |
| 52 | + Assert.Equal(56, await page2.EvaluateExpressionAsync<int>("7 * 8")); |
| 53 | + browser2.Disconnect(); |
| 54 | + await originalBrowser.CloseAsync(); |
| 55 | + } |
| 56 | + |
| 57 | + [Fact] |
| 58 | + public async Task ShouldThrowWhenUsingBothBrowserWSEndpointAndBrowserURL() |
| 59 | + { |
| 60 | + var options = TestConstants.DefaultBrowserOptions(); |
| 61 | + options.Args = new string[] { "--remote-debugging-port=21222" }; |
| 62 | + var originalBrowser = await Puppeteer.LaunchAsync(options); |
| 63 | + var browserURL = "http://127.0.0.1:21222"; |
| 64 | + |
| 65 | + await Assert.ThrowsAsync<PuppeteerException>(() => Puppeteer.ConnectAsync(new ConnectOptions |
| 66 | + { |
| 67 | + BrowserURL = browserURL, |
| 68 | + BrowserWSEndpoint = originalBrowser.WebSocketEndpoint |
| 69 | + })); |
| 70 | + |
| 71 | + await originalBrowser.CloseAsync(); |
| 72 | + } |
| 73 | + |
| 74 | + [Fact] |
| 75 | + public async Task ShouldThrowWhenTryingToConnectToNonExistingBrowser() |
| 76 | + { |
| 77 | + var options = TestConstants.DefaultBrowserOptions(); |
| 78 | + options.Args = new string[] { "--remote-debugging-port=21222" }; |
| 79 | + var originalBrowser = await Puppeteer.LaunchAsync(options); |
| 80 | + var browserURL = "http://127.0.0.1:2122"; |
| 81 | + |
| 82 | + await Assert.ThrowsAsync<ChromiumProcessException>(() => Puppeteer.ConnectAsync(new ConnectOptions |
| 83 | + { |
| 84 | + BrowserURL = browserURL |
| 85 | + })); |
| 86 | + |
| 87 | + await originalBrowser.CloseAsync(); |
| 88 | + } |
37 | 89 |
|
38 | 90 | private async Task TheSourceOfTheProblems() => await Page.Client.SendAsync("ThisCommand.DoesNotExist"); |
39 | 91 | } |
|
0 commit comments