@@ -54,7 +54,7 @@ public async Task BlazorServerTemplateWorks_NoAuth(BrowserKind browserKind)
54
54
var buildResult = await Project . RunDotNetBuildAsync ( ) ;
55
55
Assert . True ( 0 == buildResult . ExitCode , ErrorMessages . GetFailedProcessMessage ( "build" , Project , buildResult ) ) ;
56
56
57
- var browser = Fixture . BrowserManager . IsAvailable ( browserKind ) ?
57
+ await using var browser = Fixture . BrowserManager . IsAvailable ( browserKind ) ?
58
58
await Fixture . BrowserManager . GetBrowserInstance ( browserKind , BrowserContextInfo ) :
59
59
null ;
60
60
@@ -68,7 +68,8 @@ await Fixture.BrowserManager.GetBrowserInstance(browserKind, BrowserContextInfo)
68
68
69
69
if ( Fixture . BrowserManager . IsAvailable ( browserKind ) )
70
70
{
71
- var page = await aspNetProcess . VisitInBrowserAsync ( browser ) ;
71
+ var page = await browser . NewPageAsync ( ) ;
72
+ await aspNetProcess . VisitInBrowserAsync ( page ) ;
72
73
await TestBasicNavigation ( page ) ;
73
74
await page . CloseAsync ( ) ;
74
75
}
@@ -87,7 +88,8 @@ await Fixture.BrowserManager.GetBrowserInstance(browserKind, BrowserContextInfo)
87
88
await aspNetProcess . AssertStatusCode ( "/" , HttpStatusCode . OK , "text/html" ) ;
88
89
if ( Fixture . BrowserManager . IsAvailable ( browserKind ) )
89
90
{
90
- var page = await aspNetProcess . VisitInBrowserAsync ( browser ) ;
91
+ var page = await browser . NewPageAsync ( ) ;
92
+ await aspNetProcess . VisitInBrowserAsync ( page ) ;
91
93
await TestBasicNavigation ( page ) ;
92
94
await page . CloseAsync ( ) ;
93
95
}
@@ -136,7 +138,8 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
136
138
await aspNetProcess . AssertStatusCode ( "/" , HttpStatusCode . OK , "text/html" ) ;
137
139
if ( Fixture . BrowserManager . IsAvailable ( browserKind ) )
138
140
{
139
- var page = await aspNetProcess . VisitInBrowserAsync ( browser ) ;
141
+ var page = await browser . NewPageAsync ( ) ;
142
+ await aspNetProcess . VisitInBrowserAsync ( page ) ;
140
143
await TestBasicNavigation ( page ) ;
141
144
await page . CloseAsync ( ) ;
142
145
}
@@ -155,7 +158,8 @@ public async Task BlazorServerTemplateWorks_IndividualAuth(BrowserKind browserKi
155
158
await aspNetProcess . AssertStatusCode ( "/" , HttpStatusCode . OK , "text/html" ) ;
156
159
if ( Fixture . BrowserManager . IsAvailable ( browserKind ) )
157
160
{
158
- var page = await aspNetProcess . VisitInBrowserAsync ( browser ) ;
161
+ var page = await browser . NewPageAsync ( ) ;
162
+ await aspNetProcess . VisitInBrowserAsync ( page ) ;
159
163
await TestBasicNavigation ( page ) ;
160
164
await page . CloseAsync ( ) ;
161
165
}
@@ -171,7 +175,13 @@ private async Task TestBasicNavigation(IPage page)
171
175
var socket = BrowserContextInfo . Pages [ page ] . WebSockets . SingleOrDefault ( ) ??
172
176
( await page . WaitForEventAsync ( PageEvent . WebSocket ) ) . WebSocket ;
173
177
178
+ // Receive render batch
174
179
await socket . WaitForEventAsync ( WebSocketEvent . FrameReceived ) ;
180
+ await socket . WaitForEventAsync ( WebSocketEvent . FrameSent ) ;
181
+
182
+ // JS interop call to intercept navigation
183
+ await socket . WaitForEventAsync ( WebSocketEvent . FrameReceived ) ;
184
+ await socket . WaitForEventAsync ( WebSocketEvent . FrameSent ) ;
175
185
176
186
await page . WaitForSelectorAsync ( "ul" ) ;
177
187
// <title> element gets project ID injected into it during template execution
@@ -181,22 +191,16 @@ private async Task TestBasicNavigation(IPage page)
181
191
await page . WaitForSelectorAsync ( "h1 >> text=Hello, world!" ) ;
182
192
183
193
// Can navigate to the counter page
184
- await Task . WhenAll (
185
- page . WaitForNavigationAsync ( "**/counter" ) ,
186
- page . WaitForSelectorAsync ( "h1+p >> text=Current count: 0" ) ,
187
- page . ClickAsync ( "a[href=counter] >> text=Counter" ) ) ;
194
+ await page . ClickAsync ( "a[href=counter] >> text=Counter" ) ;
195
+ await page . WaitForSelectorAsync ( "h1+p >> text=Current count: 0" ) ;
188
196
189
197
// Clicking the counter button works
190
- await Task . WhenAll (
191
- socket . WaitForEventAsync ( WebSocketEvent . FrameReceived ) ,
192
- page . WaitForSelectorAsync ( "h1+p >> text=Current count: 1" ) ,
193
- page . ClickAsync ( "p+button >> text=Click me" ) ) ;
198
+ await page . ClickAsync ( "p+button >> text=Click me" ) ;
199
+ await page . WaitForSelectorAsync ( "h1+p >> text=Current count: 1" ) ;
194
200
195
201
// Can navigate to the 'fetch data' page
196
- await Task . WhenAll (
197
- page . WaitForNavigationAsync ( "**/fetchdata" ) ,
198
- page . WaitForSelectorAsync ( "h1 >> text=Weather forecast" ) ,
199
- page . ClickAsync ( "a[href=fetchdata] >> text=Fetch data" ) ) ;
202
+ await page . ClickAsync ( "a[href=fetchdata] >> text=Fetch data" ) ;
203
+ await page . WaitForSelectorAsync ( "h1 >> text=Weather forecast" ) ;
200
204
201
205
// Asynchronously loads and displays the table of weather forecasts
202
206
await page . WaitForSelectorAsync ( "table>tbody>tr" ) ;
0 commit comments