@@ -221,10 +221,10 @@ def test_iteration_performance_marks_single_run(self):
221221
222222 for browser in self .browsers :
223223 # one mark for iteration start, one for iteration end
224- self .assertEqual ( len ( browser . performance_marks ), 2 )
225- self . assertEqual ( browser .performance_marks [ 0 ] ,
226- "crossbench-iteration-start" )
227- self . assertEqual ( browser . performance_marks [ 1 ] , "crossbench-iteration -end" )
224+ self .assertListEqual (
225+ browser .performance_marks ,
226+ [ "crossbench-iteration-start" , "crossbench-iteration-end" ] +
227+ [ "crossbench-teardown-start" , "crossbench-teardown -end" ] * 2 )
228228
229229 def test_iteration_performance_marks_repeat_run (self ):
230230 repeats : int = 3
@@ -237,13 +237,10 @@ def test_iteration_performance_marks_repeat_run(self):
237237 self ._test_run (stories )
238238
239239 for browser in self .browsers :
240- # one mark for iteration start, one for iteration end
241- self .assertEqual (len (browser .performance_marks ), 2 * repeats )
242- for i in range (repeats ):
243- self .assertEqual (browser .performance_marks [i * 2 ],
244- "crossbench-iteration-start" )
245- self .assertEqual (browser .performance_marks [(i * 2 ) + 1 ],
246- "crossbench-iteration-end" )
240+ self .assertListEqual (
241+ browser .performance_marks ,
242+ (["crossbench-iteration-start" , "crossbench-iteration-end" ] * repeats )
243+ + ["crossbench-teardown-start" , "crossbench-teardown-end" ] * 2 )
247244
248245 def test_run_repeat_separate (self ):
249246 url1 = "https://www.example.com/test1"
@@ -446,7 +443,7 @@ def test_actions_config(self):
446443 self .assertListEqual ([url_1 , url_2 ],
447444 browser .url_list [self .SPLASH_URLS_LEN :])
448445
449- def multiple_pages_with_setup_blocks_config (self ):
446+ def multiple_pages_with_setup_and_teardown_blocks_config (self ):
450447 config = {
451448 "pages" : {
452449 "first_page" : {
@@ -457,7 +454,11 @@ def multiple_pages_with_setup_blocks_config(self):
457454 "actions" : [{
458455 "action" : "wait" ,
459456 "duration" : "1s"
460- }]
457+ }],
458+ "teardown" : [{
459+ "action" : "js" ,
460+ "script" : "TEARDOWN ONE" ,
461+ }],
461462 },
462463 "second_page" : {
463464 "setup" : [{
@@ -467,18 +468,24 @@ def multiple_pages_with_setup_blocks_config(self):
467468 "actions" : [{
468469 "action" : "wait" ,
469470 "duration" : "1s"
470- }]
471+ }],
472+ "teardown" : [{
473+ "action" : "js" ,
474+ "script" : "TEARDOWN TWO" ,
475+ }],
471476 }
472477 }
473478 }
474479 return config
475480
476- def test_pages_with_multiple_setup_blocks (self ):
481+ def test_pages_with_multiple_setup_and_teardown_blocks (self ):
477482 for browser in self .browsers :
478483 browser .expect_js (JsInvocation (None , "SETUP ONE" ))
479484 browser .expect_js (JsInvocation (None , "SETUP TWO" ))
485+ browser .expect_js (JsInvocation (None , "TEARDOWN ONE" ))
486+ browser .expect_js (JsInvocation (None , "TEARDOWN TWO" ))
480487
481- config = self .multiple_pages_with_setup_blocks_config ()
488+ config = self .multiple_pages_with_setup_and_teardown_blocks_config ()
482489 config_file = pathlib .Path ("test/page_config.json" )
483490 self .fs .create_file (config_file , contents = json .dumps (config ))
484491 with self ._patch_get_browser ():
@@ -489,9 +496,11 @@ def test_pages_with_multiple_setup_blocks(self):
489496 self .assertEqual (
490497 browser .performance_marks ,
491498 ["crossbench-setup-start" , "crossbench-setup-end" ] * 2 + # 2 pages
492- ["crossbench-iteration-start" , "crossbench-iteration-end" ])
499+ ["crossbench-iteration-start" , "crossbench-iteration-end" ] +
500+ ["crossbench-teardown-start" , "crossbench-teardown-end" ] * 2 )
493501 self .assertEqual (browser .performance_marks_details ,
494- ["first_page" ] * 2 + ["second_page" ] * 2 + [None , None ])
502+ ["first_page" ] * 2 + ["second_page" ] * 2 + [None , None ] +
503+ ["first_page" ] * 2 + ["second_page" ] * 2 )
495504
496505 def setup_expected_google_login_js (self ):
497506 expected_scripts : list [JsInvocation ] = [
0 commit comments