@@ -17,27 +17,32 @@ public QueryObjectsTests(ITestOutputHelper output) : base(output)
1717 [ SkipBrowserFact ( skipFirefox : true ) ]
1818 public async Task ShouldWork ( )
1919 {
20- // Instantiate an object
21- await Page . EvaluateExpressionAsync ( "window.set = new Set(['hello', 'world'])" ) ;
22- var prototypeHandle = await Page . EvaluateExpressionHandleAsync ( "Set.prototype" ) ;
23- var objectsHandle = await Page . QueryObjectsAsync ( prototypeHandle ) ;
24- var count = await Page . EvaluateFunctionAsync < int > ( "objects => objects.length" , objectsHandle ) ;
25- Assert . Equal ( 1 , count ) ;
26- var values = await Page . EvaluateFunctionAsync < string [ ] > ( "objects => Array.from(objects[0].values())" , objectsHandle ) ;
27- Assert . Equal ( new [ ] { "hello" , "world" } , values ) ;
28- }
20+ // Create a custom class
21+ var classHandle = await Page . EvaluateFunctionHandleAsync ( @"() => {
22+ return class CustomClass { };
23+ }" ) ;
24+
25+ // Create an instance.
26+ await Page . EvaluateFunctionAsync ( @"CustomClass => {
27+ self.customClass = new CustomClass();
28+ }" , classHandle ) ;
29+
30+ // Validate only one has been added.
31+ var prototypeHandle = await Page . EvaluateFunctionHandleAsync ( @"CustomClass => {
32+ return CustomClass.prototype;
33+ }" , classHandle ) ;
2934
30- [ PuppeteerTest ( "page.spec.ts" , "ExecutionContext.queryObjects" , "should work for non-blank page" ) ]
31- [ SkipBrowserFact ( skipFirefox : true ) ]
32- public async Task ShouldWorkForNonBlankPage ( )
33- {
34- // Instantiate an object
35- await Page . GoToAsync ( TestConstants . EmptyPage ) ;
36- await Page . EvaluateFunctionAsync ( "() => window.set = new Set(['hello', 'world'])" ) ;
37- var prototypeHandle = await Page . EvaluateFunctionHandleAsync ( "() => Set.prototype" ) ;
3835 var objectsHandle = await Page . QueryObjectsAsync ( prototypeHandle ) ;
39- var count = await Page . EvaluateFunctionAsync < int > ( "objects => objects.length" , objectsHandle ) ;
40- Assert . Equal ( 1 , count ) ;
36+ Assert . Equal (
37+ 1 ,
38+ await Page . EvaluateFunctionAsync ( @"objects => {
39+ return objects.length;
40+ }" , objectsHandle ) ) ;
41+
42+ // Check that instances.
43+ Assert . True ( await Page . EvaluateFunctionAsync < bool > ( @"objects => {
44+ return objects[0] === self.customClass;
45+ }" , objectsHandle ) ) ;
4146 }
4247
4348 [ PuppeteerTest ( "page.spec.ts" , "ExecutionContext.queryObjects" , "should fail for disposed handles" ) ]
0 commit comments