1- using  System ; 
2- using  System . Collections . Generic ; 
3- using  System . Linq ; 
1+ using  System . Collections . Generic ; 
42using  System . Threading . Tasks ; 
3+ using  Newtonsoft . Json ; 
54using  Newtonsoft . Json . Linq ; 
65using  Xunit ; 
76using  Xunit . Abstractions ; 
7+ using  PuppeteerSharp . Helpers ; 
88
99namespace  PuppeteerSharp . Tests . PageTests 
1010{ 
@@ -69,6 +69,24 @@ public async Task SouldReturnComplexObjects()
6969            Assert . Equal ( "bar!" ,  result . foo . ToString ( ) ) ; 
7070        } 
7171
72+         [ Fact ] 
73+         public  async  Task  ShouldWorkWithDifferentSerializerSettings ( ) 
74+         { 
75+             var  result  =  await  Page . EvaluateFunctionAsync < ComplexObjectTestClass > ( "() => { return { foo: 'bar' }}" ) ; 
76+             Assert . Equal ( "bar" ,  result . Foo ) ; 
77+ 
78+             result  =  ( await  Page . EvaluateFunctionAsync < JToken > ( "() => { return { Foo: 'bar' }}" ) ) 
79+                 . ToObject < ComplexObjectTestClass > ( new  JsonSerializerSettings ( ) ) ; 
80+             Assert . Equal ( "bar" ,  result . Foo ) ; 
81+ 
82+             result  =  await  Page . EvaluateExpressionAsync < ComplexObjectTestClass > ( "var obj = { foo: 'bar' }; obj;" ) ; 
83+             Assert . Equal ( "bar" ,  result . Foo ) ; 
84+ 
85+             result  =  ( await  Page . EvaluateExpressionAsync < JToken > ( "var obj = { Foo: 'bar' }; obj;" ) ) 
86+                 . ToObject < ComplexObjectTestClass > ( new  JsonSerializerSettings ( ) ) ; 
87+             Assert . Equal ( "bar" ,  result . Foo ) ; 
88+         } 
89+ 
7290        [ Theory ] 
7391        [ InlineData ( "() => NaN" ,  double . NaN ) ]  //ShouldReturnNaN 
7492        [ InlineData ( "() => -0" ,  - 0 ) ]  //ShouldReturnNegative0 
@@ -265,5 +283,10 @@ public async Task ShouldWorkWithoutGenerics()
265283            Assert . Equal ( 11111111111111 ,  await  Page . EvaluateExpressionAsync ( "11111111111111" ) ) ; 
266284            Assert . Equal ( 1.1 ,  await  Page . EvaluateExpressionAsync ( "1.1" ) ) ; 
267285        } 
286+ 
287+         public  class  ComplexObjectTestClass 
288+         { 
289+             public  string  Foo  {  get ;  set ;  } 
290+         } 
268291    } 
269292} 
0 commit comments