From 285d176f085628725a74135b1be6d0a706013e6c Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Fri, 14 Aug 2020 16:33:24 +0000 Subject: [PATCH] Tests: Consistently unregister custom settings after performing assertions in `WP_Test_REST_Settings_Controller`. This ensures that those settings don't leak to other tests. Props david.binda, TimothyBlynJacobs, SergeyBiryukov. Fixes #50986. git-svn-id: https://develop.svn.wordpress.org/trunk@48791 602fd350-edb4-49c9-b593-d223f7449a82 --- .../rest-api/rest-settings-controller.php | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tests/phpunit/tests/rest-api/rest-settings-controller.php b/tests/phpunit/tests/rest-api/rest-settings-controller.php index 9f96e83aad..928266e4b1 100644 --- a/tests/phpunit/tests/rest-api/rest-settings-controller.php +++ b/tests/phpunit/tests/rest-api/rest-settings-controller.php @@ -41,8 +41,19 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase public function tearDown() { parent::tearDown(); - if ( isset( get_registered_settings()['mycustomarraysetting'] ) ) { - unregister_setting( 'somegroup', 'mycustomarraysetting' ); + $settings_to_unregister = array( + 'mycustomsetting', + 'mycustomsetting1', + 'mycustomsetting2', + 'mycustomarraysetting', + ); + + $registered_settings = get_registered_settings(); + + foreach ( $settings_to_unregister as $setting ) { + if ( isset( $registered_settings[ $setting ] ) ) { + unregister_setting( 'somegroup', $setting ); + } } } @@ -153,8 +164,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertEquals( 'validvalue2', $data['mycustomsettinginrest'] ); - - unregister_setting( 'somegroup', 'mycustomsetting' ); } public function test_get_item_with_custom_array_setting() { @@ -203,8 +212,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertEquals( null, $data['mycustomsetting'] ); - - unregister_setting( 'somegroup', 'mycustomsetting' ); } public function test_get_item_with_custom_object_setting() { @@ -258,8 +265,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertEquals( null, $data['mycustomsetting'] ); - - unregister_setting( 'somegroup', 'mycustomsetting' ); } public function get_setting_custom_callback( $result, $name, $args ) { @@ -312,7 +317,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $this->assertArrayHasKey( 'mycustomsettinginrest2', $data ); $this->assertEquals( 'unfiltered2', $data['mycustomsettinginrest2'] ); - unregister_setting( 'somegroup', 'mycustomsetting' ); remove_all_filters( 'rest_pre_get_setting' ); } @@ -366,7 +370,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertEquals( null, $data['mycustomsettinginrest'] ); - unregister_setting( 'somegroup', 'mycustomsetting' ); } @@ -437,7 +440,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $response = rest_get_server()->dispatch( $request ); $this->assertErrorResponse( 'rest_invalid_param', $response, 400 ); - unregister_setting( 'somegroup', 'mycustomsetting' ); } public function test_update_item_with_nested_object() { @@ -540,7 +542,6 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase $request->set_param( 'mycustomsetting', array( 'a' => 'invalid' ) ); $response = rest_get_server()->dispatch( $request ); $this->assertErrorResponse( 'rest_invalid_param', $response, 400 ); - unregister_setting( 'somegroup', 'mycustomsetting' ); } public function test_update_item_with_filter() {