Make WordPress Core

source: trunk/tests/phpunit/tests/multisite/getSpaceAllowed.php @ 50463

Last change on this file since 50463 was 50463, checked in by johnbillion, 22 months ago

Build/Test Tools: Remove redundant teardown functionality from individual tests which is already covered in the base teardown method.

See #52625

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1<?php
2
3if ( is_multisite() ) :
4
5        /**
6         * Tests specific to `get_space_allowed()` in multisite.
7         *
8         * @group multisite
9         */
10        class Tests_Multisite_Get_Space_Allowed extends WP_UnitTestCase {
11                protected $suppress = false;
12
13                public function setUp() {
14                        global $wpdb;
15                        parent::setUp();
16                        $this->suppress = $wpdb->suppress_errors();
17                }
18
19                public function tearDown() {
20                        global $wpdb;
21
22                        $wpdb->suppress_errors( $this->suppress );
23                        parent::tearDown();
24                }
25
26                /**
27                 * When no option exists for the site or the network, a fallback of
28                 * 100 is expected.
29                 */
30                public function test_get_space_allowed_default() {
31                        delete_option( 'blog_upload_space' );
32                        delete_site_option( 'blog_upload_space' );
33
34                        $this->assertSame( 100, get_space_allowed() );
35                }
36
37                /**
38                 * If an individual site's option is not available, the default network
39                 * level option is used as a fallback.
40                 */
41                public function test_get_space_allowed_no_site_option_fallback_to_network_option() {
42                        delete_site_option( 'blog_upload_space' );
43                        update_site_option( 'blog_upload_space', 200 );
44
45                        $this->assertSame( 200, get_space_allowed() );
46                }
47
48                /**
49                 * @dataProvider data_blog_upload_space
50                 *
51                 * @param mixed $site_option    Option to assign to the site's `blog_upload_space`.
52                 * @param mixed $network_option Option to assign to the network's `blog_upload_space`.
53                 * @param int   $expected       Expected return value.
54                 */
55                public function test_get_space_allowed( $site_option, $network_option, $expected ) {
56                        update_option( 'blog_upload_space', $site_option );
57                        update_site_option( 'blog_upload_space', $network_option );
58
59                        $this->assertSame( $expected, get_space_allowed() );
60                }
61
62                public function data_blog_upload_space() {
63                        return array(
64                                // A valid site option will be preferred over a network option.
65                                array( 111, 200, 111 ),
66                                array( -1, 200, -1 ),
67                                array( 222, 0, 222 ),
68
69                                // Non-numeric site options should result in a fallback to the network option.
70                                array( '', 333, 333 ),
71                                array( false, 444, 444 ),
72                                array( 'NAN', 555, 555 ),
73                                array( false, -10, -10 ),
74
75                                // If neither network or site options are valid, fallback to the default.
76                                array( false, false, 100 ),
77                                array( 'NAN', 'NAN', 100 ),
78
79                                // These effectively disable uploads.
80                                array( 0, 666, 0 ),
81                                array( false, 0, 0 ),
82                                array( 'NAN', 0, 0 ),
83                        );
84                }
85
86                public function test_get_space_allowed_filtered() {
87                        update_option( 'blog_upload_space', 777 );
88                        update_site_option( 'blog_upload_space', 888 );
89
90                        add_filter( 'get_space_allowed', array( $this, '_filter_space_allowed' ) );
91                        $space_allowed = get_space_allowed();
92                        remove_filter( 'get_space_allowed', array( $this, '_filter_space_allowed' ) );
93
94                        $this->assertSame( 999, $space_allowed );
95                }
96
97                public function _filter_space_allowed() {
98                        return 999;
99                }
100        }
101
102endif;
Note: See TracBrowser for help on using the repository browser.