- Timestamp:
- 01/29/2021 12:05:20 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/rest-api/rest-application-passwords-controller.php
r50030 r50065 68 68 69 69 add_filter( 'wp_is_application_passwords_available', '__return_true' ); 70 } 71 72 public function tearDown() { 73 parent::tearDown(); 74 unset( $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $GLOBALS['wp_rest_application_password_status'], $GLOBALS['wp_rest_application_password_uuid'] ); 70 75 } 71 76 … … 878 883 $this->assertCount( 7, $properties ); 879 884 } 885 886 /** 887 * @ticket 52275 888 */ 889 public function test_introspect_item() { 890 $password = $this->setup_app_password_authenticated_request(); 891 $response = rest_do_request( '/wp/v2/users/me/application-passwords/introspect' ); 892 $this->assertNotWPError( $response->as_error() ); 893 894 $this->assertEquals( $password['uuid'], $response->get_data()['uuid'] ); 895 } 896 897 /** 898 * @ticket 52275 899 */ 900 public function test_introspect_item_specific_user() { 901 $password = $this->setup_app_password_authenticated_request(); 902 $response = rest_do_request( '/wp/v2/users/' . self::$admin . '/application-passwords/introspect' ); 903 904 $this->assertEquals( $password['uuid'], $response->get_data()['uuid'] ); 905 } 906 907 /** 908 * @ticket 52275 909 */ 910 public function test_introspect_item_logged_out() { 911 $response = rest_do_request( '/wp/v2/users/me/application-passwords/introspect' ); 912 $this->assertErrorResponse( 'rest_not_logged_in', $response, 401 ); 913 } 914 915 /** 916 * @ticket 52275 917 */ 918 public function test_introspect_item_wrong_user() { 919 $this->setup_app_password_authenticated_request(); 920 $response = rest_do_request( '/wp/v2/users/' . self::$subscriber_id . '/application-passwords/introspect' ); 921 $this->assertErrorResponse( 'rest_cannot_introspect_app_password_for_non_authenticated_user', $response, 403 ); 922 } 923 924 /** 925 * @ticket 52275 926 */ 927 public function test_introspect_item_no_app_password_used() { 928 wp_set_current_user( self::$admin ); 929 $response = rest_do_request( '/wp/v2/users/me/application-passwords/introspect' ); 930 $this->assertErrorResponse( 'rest_no_authenticated_app_password', $response, 404 ); 931 } 932 933 /** 934 * @ticket 52275 935 */ 936 public function test_introspect_item_password_invalid() { 937 $this->setup_app_password_authenticated_request(); 938 add_action( 939 'application_password_did_authenticate', 940 function() { 941 $GLOBALS['wp_rest_application_password_uuid'] = 'invalid_uuid'; 942 } 943 ); 944 945 $response = rest_do_request( '/wp/v2/users/me/application-passwords/introspect' ); 946 $this->assertErrorResponse( 'rest_application_password_not_found', $response, 500 ); 947 } 948 949 /** 950 * Sets up a REST API request to be authenticated using an App Password. 951 * 952 * @since 5.7.0 953 * 954 * @return array The created App Password. 955 */ 956 private function setup_app_password_authenticated_request() { 957 list( $password, $item ) = WP_Application_Passwords::create_new_application_password( self::$admin, array( 'name' => 'Test' ) ); 958 959 $_SERVER['PHP_AUTH_USER'] = get_userdata( self::$admin )->user_login; 960 $_SERVER['PHP_AUTH_PW'] = $password; 961 962 $GLOBALS['current_user'] = null; 963 964 add_filter( 'application_password_is_api_request', '__return_true' ); 965 966 return $item; 967 } 880 968 }
Note: See TracChangeset
for help on using the changeset viewer.