Skip to content

Commit 2196ff4

Browse files
authored
Tests: Implement the Chrome bit (#1518)
1 parent 5527263 commit 2196ff4

File tree

12 files changed

+163
-23
lines changed

12 files changed

+163
-23
lines changed

lib/PuppeteerSharp.Tests/BrowserTests/UserAgentTests.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,17 @@ public UserAgentTests(ITestOutputHelper output) : base(output)
1414
[Fact]
1515
public async Task ShouldIncludeWebKit()
1616
{
17-
var userAgent = await Browser.GetUserAgentAsync();
17+
string userAgent = await Browser.GetUserAgentAsync();
1818
Assert.NotEmpty(userAgent);
19-
Assert.Contains("WebKit", userAgent);
19+
20+
if (TestConstants.IsChrome)
21+
{
22+
Assert.Contains("WebKit", userAgent);
23+
}
24+
else
25+
{
26+
Assert.Contains("Gecko", userAgent);
27+
}
2028
}
2129
}
2230
}

lib/PuppeteerSharp.Tests/BrowserTests/VersionTests.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,17 @@ public VersionTests(ITestOutputHelper output) : base(output)
1414
[Fact]
1515
public async Task ShouldReturnWhetherWeAreInHeadless()
1616
{
17-
var version = await Browser.GetVersionAsync();
17+
string version = await Browser.GetVersionAsync();
1818
Assert.NotEmpty(version);
19-
Assert.Equal(TestConstants.DefaultBrowserOptions().Headless, version.StartsWith("Headless"));
19+
20+
if (TestConstants.IsChrome)
21+
{
22+
Assert.Equal(TestConstants.DefaultBrowserOptions().Headless, version.StartsWith("Headless"));
23+
}
24+
else
25+
{
26+
Assert.StartsWith("Firefox/", version);
27+
}
2028
}
2129
}
2230
}

lib/PuppeteerSharp.Tests/ElementHandleTests/BoundingBoxTests.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,15 @@ await Page.SetViewportAsync(new ViewPortOptions
3939
var nestedFrame = childFrame.ChildFrames.Last();
4040
var elementHandle = await nestedFrame.QuerySelectorAsync("div");
4141
var box = await elementHandle.BoundingBoxAsync();
42-
Assert.Equal(new BoundingBox(28, 260, 264, 18), box);
42+
43+
if (TestConstants.IsChrome)
44+
{
45+
Assert.Equal(new BoundingBox(28, 260, 264, 18), box);
46+
}
47+
else
48+
{
49+
Assert.Equal(new BoundingBox(28, 182, 254, 18), box);
50+
}
4351
}
4452

4553
[Fact]

lib/PuppeteerSharp.Tests/JSHandleTests/JsonValueTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public async Task ShouldThrowForCircularObjects()
3434
var windowHandle = await Page.EvaluateExpressionHandleAsync("window");
3535
var exception = await Assert.ThrowsAsync<MessageException>(()
3636
=> windowHandle.JsonValueAsync());
37-
Assert.Contains("Object reference chain is too long", exception.Message);
37+
38+
Assert.Contains(TestConstants.IsChrome ? "Object reference chain is too long" : "Object is not serializable", exception.Message);
3839
}
3940
}
4041
}

lib/PuppeteerSharp.Tests/NetworkTests/NetworkEventTests.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,16 @@ public async Task PageEventsRequestFailed()
7575
Assert.Contains("one-style.css", failedRequests[0].Url);
7676
Assert.Null(failedRequests[0].Response);
7777
Assert.Equal(ResourceType.StyleSheet, failedRequests[0].ResourceType);
78-
Assert.Equal("net::ERR_FAILED", failedRequests[0].Failure);
78+
79+
if (TestConstants.IsChrome)
80+
{
81+
Assert.Equal("net::ERR_FAILED", failedRequests[0].Failure);
82+
}
83+
else
84+
{
85+
Assert.Equal("NS_ERROR_FAILURE", failedRequests[0].Failure);
86+
}
87+
7988
Assert.NotNull(failedRequests[0].Frame);
8089
}
8190

lib/PuppeteerSharp.Tests/NetworkTests/RequestHeadersTests.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,15 @@ public RequestHeadersTests(ITestOutputHelper output) : base(output)
1515
public async Task ShouldWork()
1616
{
1717
var response = await Page.GoToAsync(TestConstants.EmptyPage);
18-
Assert.Contains("Chrome", response.Request.Headers["User-Agent"]);
18+
19+
if (TestConstants.IsChrome)
20+
{
21+
Assert.Contains("Chrome", response.Request.Headers["User-Agent"]);
22+
}
23+
else
24+
{
25+
Assert.Contains("Firefox", response.Request.Headers["User-Agent"]);
26+
}
1927
}
2028
}
2129
}

lib/PuppeteerSharp.Tests/NetworkTests/SetRequestInterceptionTests.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,15 @@ public async Task ShouldFailNavigationWhenAbortingMainResource()
276276
Page.Request += async (sender, e) => await e.Request.AbortAsync();
277277
var exception = await Assert.ThrowsAsync<NavigationException>(
278278
() => Page.GoToAsync(TestConstants.EmptyPage));
279-
Assert.Contains("net::ERR_FAILED", exception.Message);
279+
280+
if (TestConstants.IsChrome)
281+
{
282+
Assert.Contains("net::ERR_FAILED", exception.Message);
283+
}
284+
else
285+
{
286+
Assert.Contains("NS_ERROR_FAILURE", exception.Message);
287+
}
280288
}
281289

282290
[Fact]
@@ -379,7 +387,15 @@ public async Task ShouldBeAbleToAbortRedirects()
379387
return e.message;
380388
}
381389
}");
382-
Assert.Contains("Failed to fetch", result);
390+
391+
if (TestConstants.IsChrome)
392+
{
393+
Assert.Contains("Failed to fetch", result);
394+
}
395+
else
396+
{
397+
Assert.Contains("NetworkError", result);
398+
}
383399
}
384400

385401
[Fact]

lib/PuppeteerSharp.Tests/PageTests/CloseTests.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,17 @@ public async Task ShouldRunBeforeunloadIfAskedFor()
5151
Page.Dialog += async (sender, e) =>
5252
{
5353
Assert.Equal(DialogType.BeforeUnload, e.Dialog.DialogType);
54-
Assert.Equal(string.Empty, e.Dialog.Message);
5554
Assert.Equal(string.Empty, e.Dialog.DefaultValue);
5655

56+
if (TestConstants.IsChrome)
57+
{
58+
Assert.Equal(string.Empty, e.Dialog.Message);
59+
}
60+
else
61+
{
62+
Assert.Equal("This page is asking you to confirm that you want to leave - data you have entered may not be saved.", e.Dialog.Message);
63+
}
64+
5765
await e.Dialog.Accept();
5866
dialogTask.TrySetResult(true);
5967
};

lib/PuppeteerSharp.Tests/PageTests/Events/ConsoleTests.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,15 @@ public async Task ShouldTriggerCorrectLog()
116116
await Page.EvaluateFunctionAsync("async url => fetch(url).catch(e => {})", TestConstants.EmptyPage);
117117
var message = await messageTask.Task;
118118
Assert.Contains("No 'Access-Control-Allow-Origin'", message.Text);
119-
Assert.Equal(ConsoleType.Error, message.Type);
119+
120+
if (TestConstants.IsChrome)
121+
{
122+
Assert.Equal(ConsoleType.Error, message.Type);
123+
}
124+
else
125+
{
126+
Assert.Equal(ConsoleType.Warning, message.Type);
127+
}
120128
}
121129

122130
[Fact]

lib/PuppeteerSharp.Tests/PageTests/GotoTests.cs

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,15 @@ public async Task ShouldFailWhenServerReturns204()
7979
});
8080
var exception = await Assert.ThrowsAnyAsync<PuppeteerException>(
8181
() => Page.GoToAsync(TestConstants.EmptyPage));
82-
Assert.Contains("net::ERR_ABORTED", exception.Message);
82+
83+
if (TestConstants.IsChrome)
84+
{
85+
Assert.Contains("net::ERR_ABORTED", exception.Message);
86+
}
87+
else
88+
{
89+
Assert.Contains("NS_BINDING_ABORTED", exception.Message);
90+
}
8391
}
8492

8593
[Fact]
@@ -118,7 +126,15 @@ public async Task ShouldNavigateToEmptyPage(WaitUntilNavigation waitUntil)
118126
public async Task ShouldFailWhenNavigatingToBadUrl()
119127
{
120128
var exception = await Assert.ThrowsAnyAsync<Exception>(async () => await Page.GoToAsync("asdfasdf"));
121-
Assert.Contains("Cannot navigate to invalid URL", exception.Message);
129+
130+
if (TestConstants.IsChrome)
131+
{
132+
Assert.Contains("Cannot navigate to invalid URL", exception.Message);
133+
}
134+
else
135+
{
136+
Assert.Contains("Invalid url", exception.Message);
137+
}
122138
}
123139

124140
[Fact]
@@ -129,21 +145,45 @@ public async Task ShouldFailWhenNavigatingToBadSSL()
129145
Page.RequestFailed += (sender, e) => Assert.NotNull(e.Request);
130146

131147
var exception = await Assert.ThrowsAnyAsync<Exception>(async () => await Page.GoToAsync(TestConstants.HttpsPrefix + "/empty.html"));
132-
Assert.Contains("net::ERR_CERT_AUTHORITY_INVALID", exception.Message);
148+
149+
if (TestConstants.IsChrome)
150+
{
151+
Assert.Contains("net::ERR_CERT_AUTHORITY_INVALID", exception.Message);
152+
}
153+
else
154+
{
155+
Assert.Contains("SSL_ERROR_UNKNOWN", exception.Message);
156+
}
133157
}
134158

135159
[Fact]
136160
public async Task ShouldFailWhenNavigatingToBadSSLAfterRedirects()
137161
{
138162
var exception = await Assert.ThrowsAnyAsync<Exception>(async () => await Page.GoToAsync(TestConstants.HttpsPrefix + "/redirect/2.html"));
139-
Assert.Contains("net::ERR_CERT_AUTHORITY_INVALID", exception.Message);
163+
164+
if (TestConstants.IsChrome)
165+
{
166+
Assert.Contains("net::ERR_CERT_AUTHORITY_INVALID", exception.Message);
167+
}
168+
else
169+
{
170+
Assert.Contains("SSL_ERROR_UNKNOWN", exception.Message);
171+
}
140172
}
141173

142174
[Fact]
143175
public async Task ShouldFailWhenMainResourcesFailedToLoad()
144176
{
145177
var exception = await Assert.ThrowsAnyAsync<Exception>(async () => await Page.GoToAsync("http://localhost:44123/non-existing-url"));
146-
Assert.Contains("net::ERR_CONNECTION_REFUSED", exception.Message);
178+
179+
if (TestConstants.IsChrome)
180+
{
181+
Assert.Contains("net::ERR_CONNECTION_REFUSED", exception.Message);
182+
}
183+
else
184+
{
185+
Assert.Contains("NS_ERROR_CONNECTION_REFUSED", exception.Message);
186+
}
147187
}
148188

149189
[Fact]

0 commit comments

Comments
 (0)