Skip to content

Commit

Permalink
New Feature Page.BringToFrontAsync (#1235)
Browse files Browse the repository at this point in the history
* New Feature Page.BringToFrontAsync

* Add test for BringToFrontAsync and fix summary
  • Loading branch information
LucasMetal authored and kblok committed Jul 31, 2019
1 parent f59bb62 commit a9828a2
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
24 changes: 24 additions & 0 deletions lib/PuppeteerSharp.Tests/PuppeteerTests/HeadfulTests.cs
Expand Up @@ -121,6 +121,30 @@ public async Task ShouldCloseBrowserWithBeforeunloadPage()
} }
} }


[Fact]
public async Task BringToFrontShouldWork()
{
using (var browserWithExtension = await Puppeteer.LaunchAsync(
TestConstants.BrowserWithExtensionOptions(),
TestConstants.LoggerFactory))
using (var page = await browserWithExtension.NewPageAsync())
{
await page.GoToAsync(TestConstants.EmptyPage);
Assert.Equal("visible", await page.EvaluateExpressionAsync<string>("document.visibilityState"));

var newPage = await browserWithExtension.NewPageAsync();
await newPage.GoToAsync(TestConstants.EmptyPage);
Assert.Equal("hidden", await page.EvaluateExpressionAsync<string>("document.visibilityState"));
Assert.Equal("visible", await newPage.EvaluateExpressionAsync<string>("document.visibilityState"));

await page.BringToFrontAsync();
Assert.Equal("visible", await page.EvaluateExpressionAsync<string>("document.visibilityState"));
Assert.Equal("hidden", await newPage.EvaluateExpressionAsync<string>("document.visibilityState"));

await newPage.CloseAsync();
}
}

private Task<Target> WaitForBackgroundPageTargetAsync(Browser browser) private Task<Target> WaitForBackgroundPageTargetAsync(Browser browser)
{ {
var target = browser.Targets().FirstOrDefault(t => t.Type == TargetType.BackgroundPage); var target = browser.Targets().FirstOrDefault(t => t.Type == TargetType.BackgroundPage);
Expand Down
7 changes: 7 additions & 0 deletions lib/PuppeteerSharp/Page.cs
Expand Up @@ -1603,6 +1603,13 @@ public Task SetBurstModeOffAsync()


return Task.CompletedTask; return Task.CompletedTask;
} }

/// <summary>
/// Brings page to front (activates tab).
/// </summary>
/// <returns>A task that resolves when the message has been sent to Chromium.</returns>
public Task BringToFrontAsync() => Client.SendAsync("Page.bringToFront");

#endregion #endregion


internal void OnPopup(Page popupPage) => Popup?.Invoke(this, new PopupEventArgs { PopupPage = popupPage }); internal void OnPopup(Page popupPage) => Popup?.Invoke(this, new PopupEventArgs { PopupPage = popupPage });
Expand Down

0 comments on commit a9828a2

Please sign in to comment.