11using System ;
2- using System . Collections . Generic ;
3- using System . Linq ;
2+ using System . IO ;
43using System . Threading . Tasks ;
54using NUnit . Framework ;
65using PuppeteerSharp . Helpers ;
@@ -10,11 +9,34 @@ namespace PuppeteerSharp.Tests.ExtensionsTests
109{
1110 public class ExtensionsTests : PuppeteerBaseTest
1211 {
12+ private static readonly string _extensionPath = Path . Combine ( AppContext . BaseDirectory , "Assets" , "simple-extension" ) ;
13+ private static readonly string _serviceWorkerExtensionPath = Path . Combine ( AppContext . BaseDirectory , "Assets" , "service-worker-extension" ) ;
14+
15+ private static LaunchOptions BrowserWithExtensionOptions ( ) => new ( )
16+ {
17+ Headless = false ,
18+ Args = new [ ]
19+ {
20+ $ "--disable-extensions-except={ _extensionPath . Quote ( ) } ",
21+ $ "--load-extension={ _extensionPath . Quote ( ) } "
22+ }
23+ } ;
24+
25+ private static LaunchOptions BrowserWithServiceWorkerExtensionOptions ( ) => new ( )
26+ {
27+ Headless = false ,
28+ Args = new [ ]
29+ {
30+ $ "--disable-extensions-except={ _serviceWorkerExtensionPath . Quote ( ) } ",
31+ $ "--load-extension={ _serviceWorkerExtensionPath . Quote ( ) } "
32+ }
33+ } ;
34+
1335 [ Test , Retry ( 2 ) , PuppeteerTest ( "extensions.spec" , "extensions" , "background_page target type should be available" ) ]
1436 public async Task BackgroundPageTargetTypeShouldBeAvailable ( )
1537 {
1638 await using var browserWithExtension = await Puppeteer . LaunchAsync (
17- TestConstants . BrowserWithExtensionOptions ( ) ,
39+ BrowserWithExtensionOptions ( ) ,
1840 TestConstants . LoggerFactory ) ;
1941 await using ( await browserWithExtension . NewPageAsync ( ) )
2042 {
@@ -23,11 +45,23 @@ public async Task BackgroundPageTargetTypeShouldBeAvailable()
2345 }
2446 }
2547
48+ [ Test , Retry ( 2 ) , PuppeteerTest ( "extensions.spec" , "extensions" , "service_worker target type should be available" ) ]
49+ public async Task ServiceWorkerTargetTypeShouldBeAvailable ( )
50+ {
51+ await using var browserWithExtension = await Puppeteer . LaunchAsync (
52+ BrowserWithServiceWorkerExtensionOptions ( ) ,
53+ TestConstants . LoggerFactory ) ;
54+ var serviceWorkTarget = await browserWithExtension . WaitForTargetAsync ( t => t . Type == TargetType . ServiceWorker ) ;
55+ await using var page = await browserWithExtension . NewPageAsync ( ) ;
56+ Assert . NotNull ( serviceWorkTarget ) ;
57+
58+ }
59+
2660 [ Test , Retry ( 2 ) , PuppeteerTest ( "extensions.spec" , "extensions" , "target.page() should return a background_page" ) ]
2761 public async Task TargetPageShouldReturnABackgroundPage ( )
2862 {
2963 await using var browserWithExtension = await Puppeteer . LaunchAsync (
30- TestConstants . BrowserWithExtensionOptions ( ) ,
64+ BrowserWithExtensionOptions ( ) ,
3165 TestConstants . LoggerFactory ) ;
3266 var backgroundPageTarget = await browserWithExtension . WaitForTargetAsync ( t => t . Type == TargetType . BackgroundPage ) ;
3367 await using var page = await backgroundPageTarget . PageAsync ( ) ;
0 commit comments