WordPress.org

Make WordPress Core

Ticket #21459: 21459.testcase.ms-switch-inteference.php

File 21459.testcase.ms-switch-inteference.php, 1016 bytes (added by joostdekeijzer, 2 years ago)

testcase for current_user_can_for_blog and get_blog_option interference

Line 
1<?php
2
3if ( is_multisite() ) :
4
5/**
6 * A set of unit tests for WordPress Multisite
7 *
8 * @group multisite
9 */
10class Tests_MS_Switch_Interference extends WP_UnitTestCase {
11
12        function test_interference() {
13                global $wpdb, $current_site;
14
15                $user1_id = $this->factory->user->create( array( 'role' => 'administrator' ) );
16                $blog_ids = array();
17                $blog_ids[] = $this->factory->blog->create( array( 'title' => 'site1', 'user_id' => $user1_id ) );
18                $blog_ids[] = $this->factory->blog->create( array( 'title' => 'site2' ) );
19                $blog_ids[] = $this->factory->blog->create( array( 'title' => 'site3', 'user_id' => $user1_id ) );
20                wp_set_current_user( $user1_id );
21
22                $sites = array();
23                foreach ( $blog_ids as $blog_id ) {
24                        if( !current_user_can_for_blog( $blog_id , 'upload_files') ) continue;
25                        $sites[] = get_blog_option( $blog_id, 'blogname' );
26                }
27
28                $this->assertEquals( array( 'site1', 'site3' ), $sites );
29
30                // cleanup
31                foreach ( $blog_ids as $blog_id ) {
32                        wpmu_delete_blog( $blog_id, true );
33                }
34        }
35}
36endif;