mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-29 13:30:15 +00:00
Share fixtures in REST API endpoint tests.
As sparrows' tears shed steadily Make widest rivers filled, `setUp()` routines run prodig'ly Add minutes to a build. So cull ye fixtures profligate! Direct thine frugal gaze! Our savings here - a half-minute - When multiplied: Amaze! See #30017. git-svn-id: https://develop.svn.wordpress.org/trunk@38975 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -10,12 +10,20 @@
|
||||
* @group restapi
|
||||
*/
|
||||
class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase {
|
||||
protected static $administrator;
|
||||
|
||||
public static function wpSetUpBeforeClass( $factory ) {
|
||||
self::$administrator = $factory->user->create( array(
|
||||
'role' => 'administrator',
|
||||
) );
|
||||
}
|
||||
|
||||
public static function wpTearDownAfterClass() {
|
||||
self::delete_user( self::$administrator );
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
$this->administrator = $this->factory->user->create( array(
|
||||
'role' => 'administrator',
|
||||
) );
|
||||
$this->endpoint = new WP_REST_Settings_Controller();
|
||||
}
|
||||
|
||||
@@ -37,7 +45,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_get_item() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
$request = new WP_REST_Request( 'GET', '/wp/v2/settings' );
|
||||
$response = $this->server->dispatch( $request );
|
||||
$data = $response->get_data();
|
||||
@@ -63,7 +71,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_get_item_value_is_cast_to_type() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
update_option( 'posts_per_page', 'invalid_number' ); // this is cast to (int) 1
|
||||
$request = new WP_REST_Request( 'GET', '/wp/v2/settings' );
|
||||
$response = $this->server->dispatch( $request );
|
||||
@@ -74,7 +82,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_get_item_with_custom_setting() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
|
||||
register_setting( 'somegroup', 'mycustomsetting', array(
|
||||
'show_in_rest' => array(
|
||||
@@ -114,7 +122,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_get_item_with_filter() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
|
||||
add_filter( 'rest_pre_get_setting', array( $this, 'get_setting_custom_callback' ), 10, 3 );
|
||||
|
||||
@@ -155,7 +163,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_update_item() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
$request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );
|
||||
$request->set_param( 'title', 'The new title!' );
|
||||
$response = $this->server->dispatch( $request );
|
||||
@@ -176,7 +184,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_update_item_with_filter() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
|
||||
$request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );
|
||||
$request->set_param( 'title', 'The old title!' );
|
||||
@@ -207,7 +215,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
}
|
||||
|
||||
public function test_update_item_with_invalid_type() {
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
$request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );
|
||||
$request->set_param( 'title', array( 'rendered' => 'This should fail.' ) );
|
||||
$response = $this->server->dispatch( $request );
|
||||
@@ -220,7 +228,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
public function test_update_item_with_null() {
|
||||
update_option( 'posts_per_page', 9 );
|
||||
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
$request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );
|
||||
$request->set_param( 'posts_per_page', null );
|
||||
$response = $this->server->dispatch( $request );
|
||||
@@ -233,7 +241,7 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
|
||||
public function test_update_item_with_invalid_enum() {
|
||||
update_option( 'posts_per_page', 9 );
|
||||
|
||||
wp_set_current_user( $this->administrator );
|
||||
wp_set_current_user( self::$administrator );
|
||||
$request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );
|
||||
$request->set_param( 'default_ping_status', 'open&closed' );
|
||||
$response = $this->server->dispatch( $request );
|
||||
|
||||
Reference in New Issue
Block a user