@@ 271-299 (lines=29) @@ | ||
268 | * |
|
269 | * @since 4.4.0 |
|
270 | */ |
|
271 | public function test_disconnection_permission() { |
|
272 | ||
273 | $this->load_rest_endpoints_direct(); |
|
274 | ||
275 | // Current user doesn't have credentials, so checking permissions should fail |
|
276 | $this->assertInstanceOf( 'WP_Error', Jetpack_Core_Json_Api_Endpoints::disconnect_site_permission_callback() ); |
|
277 | ||
278 | $user = $this->create_and_get_user(); |
|
279 | ||
280 | // Add Jetpack capability |
|
281 | $user->add_cap( 'jetpack_disconnect' ); |
|
282 | ||
283 | // Setup global variables so this is the current user |
|
284 | wp_set_current_user( $user->ID ); |
|
285 | ||
286 | // User is not admin, so this should still fail |
|
287 | $this->assertInstanceOf( 'WP_Error', Jetpack_Core_Json_Api_Endpoints::manage_modules_permission_check() ); |
|
288 | ||
289 | // Set user as admin |
|
290 | $user->set_role( 'administrator' ); |
|
291 | ||
292 | // Reset user and setup globals again to reflect the role change. |
|
293 | wp_set_current_user( 0 ); |
|
294 | wp_set_current_user( $user->ID ); |
|
295 | ||
296 | // User has capability so this should work this time |
|
297 | $this->assertTrue( Jetpack_Core_Json_Api_Endpoints::disconnect_site_permission_callback() ); |
|
298 | ||
299 | } |
|
300 | ||
301 | /** |
|
302 | * Test permission to activate plugins. |
|
@@ 306-338 (lines=33) @@ | ||
303 | * |
|
304 | * @since 4.4.0 |
|
305 | */ |
|
306 | public function test_plugin_activation_permission() { |
|
307 | ||
308 | $this->load_rest_endpoints_direct(); |
|
309 | ||
310 | // Current user doesn't have credentials, so checking permissions should fail |
|
311 | $this->assertInstanceOf( 'WP_Error', REST_Connector::activate_plugins_permission_check() ); |
|
312 | ||
313 | $user = $this->create_and_get_user(); |
|
314 | ||
315 | // Add Jetpack capability |
|
316 | $user->add_cap( 'jetpack_admin_page' ); |
|
317 | ||
318 | // Setup global variables so this is the current user |
|
319 | wp_set_current_user( $user->ID ); |
|
320 | ||
321 | // Should fail because requires more capabilities |
|
322 | $this->assertInstanceOf( 'WP_Error', REST_Connector::activate_plugins_permission_check() ); |
|
323 | ||
324 | // Add Jetpack capability |
|
325 | $user->add_cap( 'activate_plugins' ); |
|
326 | // Multisite's require additional primitive capabilities. |
|
327 | if ( is_multisite() ) { |
|
328 | $user->add_cap( 'manage_network_plugins' ); |
|
329 | } |
|
330 | ||
331 | // Reset current user and setup global variables to refresh the capability we just added. |
|
332 | wp_set_current_user( 0 ); |
|
333 | wp_set_current_user( $user->ID ); |
|
334 | ||
335 | // User has capability so this should work this time |
|
336 | $this->assertTrue( REST_Connector::activate_plugins_permission_check() ); |
|
337 | ||
338 | } |
|
339 | ||
340 | /** |
|
341 | * Test permission to disconnect Jetpack site for a user that is connected. |