diff --git a/tests/phpunit/tests/admin/includes/misc/wpHeartbeatSetSuspension.php b/tests/phpunit/tests/admin/includes/misc/wpHeartbeatSetSuspension.php new file mode 100644 index 0000000000000..4664af6b25864 --- /dev/null +++ b/tests/phpunit/tests/admin/includes/misc/wpHeartbeatSetSuspension.php @@ -0,0 +1,84 @@ +orig_pagenow = $pagenow; + } + + public function tear_down() { + global $pagenow; + $pagenow = $this->orig_pagenow; + parent::tear_down(); + } + + /** + * Tests that wp_heartbeat_set_suspension() disables suspension on post screens. + * + * @dataProvider data_wp_heartbeat_set_suspension + * + * @ticket 65200 + * + * @param string $pagenow_val The value for the $pagenow global. + * @param string $expected The expected value of 'suspension' in settings. + */ + public function test_wp_heartbeat_set_suspension( $pagenow_val, $expected ) { + global $pagenow; + $pagenow = $pagenow_val; + + $settings = array( 'suspension' => 'initial' ); + $result = wp_heartbeat_set_suspension( $settings ); + + if ( 'disable' === $expected ) { + $this->assertSame( 'disable', $result['suspension'], "Suspension should be 'disable' when \$pagenow is {$pagenow_val}." ); + } else { + $this->assertSame( 'initial', $result['suspension'], "Suspension should remain 'initial' when \$pagenow is {$pagenow_val}." ); + } + } + + /** + * Data provider for test_wp_heartbeat_set_suspension. + * + * @return array + */ + public function data_wp_heartbeat_set_suspension(): array { + return array( + 'post.php' => array( + 'pagenow_val' => 'post.php', + 'expected' => 'disable', + ), + 'post-new.php' => array( + 'pagenow_val' => 'post-new.php', + 'expected' => 'disable', + ), + 'index.php' => array( + 'pagenow_val' => 'index.php', + 'expected' => 'initial', + ), + 'edit.php' => array( + 'pagenow_val' => 'edit.php', + 'expected' => 'initial', + ), + ); + } +}