Changeset 36722 for trunk/tests/phpunit/tests/url.php
- Timestamp:
- 02/26/2016 02:10:32 AM (10 years ago)
- File:
-
- 1 edited
-
trunk/tests/phpunit/tests/url.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/url.php
r35242 r36722 6 6 */ 7 7 class Tests_URL extends WP_UnitTestCase { 8 var $_old_server; 8 9 9 function setUp() { 10 10 parent::setUp(); 11 $this->_old_server = $_SERVER;12 11 $GLOBALS['pagenow'] = ''; 13 12 } 14 13 15 function tearDown() { 16 $_SERVER = $this->_old_server; 17 parent::tearDown(); 18 } 19 20 function test_is_ssl_positive() { 21 $_SERVER['HTTPS'] = 'on'; 22 $this->assertTrue( is_ssl() ); 23 24 $_SERVER['HTTPS'] = 'ON'; 25 $this->assertTrue( is_ssl() ); 26 27 $_SERVER['HTTPS'] = '1'; 28 $this->assertTrue( is_ssl() ); 29 14 /** 15 * @dataProvider data_is_ssl 16 */ 17 function test_is_ssl( $value, $expected ) { 18 $_SERVER['HTTPS'] = $value; 19 20 $is_ssl = is_ssl(); 21 $this->assertSame( $expected, $is_ssl ); 22 } 23 24 function data_is_ssl() { 25 return array( 26 array( 27 'on', 28 true, 29 ), 30 array( 31 'ON', 32 true, 33 ), 34 array( 35 '1', 36 true, 37 ), 38 array( 39 'off', 40 false, 41 ), 42 array( 43 'OFF', 44 false, 45 ), 46 ); 47 } 48 49 function test_is_ssl_by_port() { 30 50 unset( $_SERVER['HTTPS'] ); 31 51 $_SERVER['SERVER_PORT'] = '443'; 32 $this->assertTrue( is_ssl() ); 33 } 34 35 function test_is_ssl_negative() { 36 $_SERVER['HTTPS'] = 'off'; 37 $this->assertFalse( is_ssl() ); 38 39 $_SERVER['HTTPS'] = 'OFF'; 40 $this->assertFalse( is_ssl() ); 41 42 unset($_SERVER['HTTPS']); 43 $this->assertFalse( is_ssl() ); 44 } 45 46 function test_admin_url_valid() { 47 $paths = array( 48 '' => "/wp-admin/", 49 'foo' => "/wp-admin/foo", 50 '/foo' => "/wp-admin/foo", 51 '/foo/' => "/wp-admin/foo/", 52 'foo.php' => "/wp-admin/foo.php", 53 '/foo.php' => "/wp-admin/foo.php", 54 '/foo.php?bar=1' => "/wp-admin/foo.php?bar=1", 55 ); 56 $https = array('on', 'off'); 57 58 foreach ($https as $val) { 59 $_SERVER['HTTPS'] = $val; 60 $siteurl = get_option('siteurl'); 61 if ( $val == 'on' ) 62 $siteurl = str_replace('http://', 'https://', $siteurl); 63 64 foreach ($paths as $in => $out) { 65 $this->assertEquals( $siteurl.$out, admin_url($in), "admin_url('{$in}') should equal '{$siteurl}{$out}'"); 66 } 67 } 68 } 69 70 function test_admin_url_invalid() { 71 $paths = array( 72 null => "/wp-admin/", 73 0 => "/wp-admin/", 74 -1 => "/wp-admin/", 75 '///' => "/wp-admin/", 76 ); 77 $https = array('on', 'off'); 78 79 foreach ($https as $val) { 80 $_SERVER['HTTPS'] = $val; 81 $siteurl = get_option('siteurl'); 82 if ( $val == 'on' ) 83 $siteurl = str_replace('http://', 'https://', $siteurl); 84 85 foreach ($paths as $in => $out) { 86 $this->assertEquals( $siteurl.$out, admin_url($in), "admin_url('{$in}') should equal '{$siteurl}{$out}'"); 87 } 88 } 89 } 90 91 function test_home_url_valid() { 92 $paths = array( 93 '' => "", 94 'foo' => "/foo", 95 '/foo' => "/foo", 96 '/foo/' => "/foo/", 97 'foo.php' => "/foo.php", 98 '/foo.php' => "/foo.php", 99 '/foo.php?bar=1' => "/foo.php?bar=1", 100 ); 101 $https = array('on', 'off'); 102 103 foreach ($https as $val) { 104 $_SERVER['HTTPS'] = $val; 105 $home = get_option('home'); 106 if ( $val == 'on' ) 107 $home = str_replace('http://', 'https://', $home); 108 109 foreach ($paths as $in => $out) { 110 $this->assertEquals( $home.$out, home_url($in), "home_url('{$in}') should equal '{$home}{$out}'"); 111 } 112 } 113 } 114 115 function test_home_url_invalid() { 116 $paths = array( 117 null => "", 118 0 => "", 119 -1 => "", 120 '///' => "/", 121 ); 122 $https = array('on', 'off'); 123 124 foreach ($https as $val) { 125 $_SERVER['HTTPS'] = $val; 126 $home = get_option('home'); 127 if ( $val == 'on' ) 128 $home = str_replace('http://', 'https://', $home); 129 130 foreach ($paths as $in => $out) { 131 $this->assertEquals( $home.$out, home_url($in), "home_url('{$in}') should equal '{$home}{$out}'"); 132 } 133 } 52 53 $is_ssl = is_ssl(); 54 $this->assertTrue( $is_ssl ); 55 } 56 57 function test_is_ssl_with_no_value() { 58 unset( $_SERVER['HTTPS'] ); 59 60 $is_ssl = is_ssl(); 61 $this->assertFalse( $is_ssl ); 62 } 63 64 /** 65 * @dataProvider data_admin_urls 66 * 67 * @param string $url Test URL. 68 * @param string $expected Expected result. 69 */ 70 function test_admin_url( $url, $expected ) { 71 $siteurl_http = get_option( 'siteurl' ); 72 $admin_url_http = admin_url( $url ); 73 74 $_SERVER['HTTPS'] = 'on'; 75 76 $siteurl_https = set_url_scheme( $siteurl_http, 'https' ); 77 $admin_url_https = admin_url( $url ); 78 79 $this->assertEquals( $siteurl_http . $expected, $admin_url_http ); 80 $this->assertEquals( $siteurl_https . $expected, $admin_url_https ); 81 } 82 83 function data_admin_urls() { 84 return array( 85 array( 86 null, 87 '/wp-admin/' 88 ), 89 array( 90 0, 91 '/wp-admin/' 92 ), 93 array( 94 -1, 95 '/wp-admin/' 96 ), 97 array( 98 '///', 99 '/wp-admin/' 100 ), 101 array( 102 '', 103 '/wp-admin/', 104 ), 105 array( 106 'foo', 107 '/wp-admin/foo', 108 ), 109 array( 110 '/foo', 111 '/wp-admin/foo', 112 ), 113 array( 114 '/foo/', 115 '/wp-admin/foo/', 116 ), 117 array( 118 'foo.php', 119 '/wp-admin/foo.php', 120 ), 121 array( 122 '/foo.php', 123 '/wp-admin/foo.php', 124 ), 125 array( 126 '/foo.php?bar=1', 127 '/wp-admin/foo.php?bar=1', 128 ), 129 ); 130 } 131 132 /** 133 * @dataProvider data_home_urls 134 * 135 * @param string $url Test URL. 136 * @param string $expected Expected result. 137 */ 138 function test_home_url( $url, $expected ) { 139 $homeurl_http = get_option( 'home' ); 140 $home_url_http = home_url( $url ); 141 142 $_SERVER['HTTPS'] = 'on'; 143 144 $homeurl_https = set_url_scheme( $homeurl_http, 'https' ); 145 $home_url_https = home_url( $url ); 146 147 $this->assertEquals( $homeurl_http . $expected, $home_url_http ); 148 $this->assertEquals( $homeurl_https . $expected, $home_url_https ); 149 } 150 151 function data_home_urls() { 152 return array( 153 array( 154 null, 155 "", 156 ), 157 array( 158 0, 159 "", 160 ), 161 array( 162 -1, 163 "", 164 ), 165 array( 166 '///', 167 "/", 168 ), 169 array( 170 '', 171 "", 172 ), 173 array( 174 'foo', 175 "/foo", 176 ), 177 array( 178 '/foo', 179 "/foo", 180 ), 181 array( 182 '/foo/', 183 "/foo/", 184 ), 185 array( 186 'foo.php', 187 "/foo.php", 188 ), 189 array( 190 '/foo.php', 191 "/foo.php", 192 ), 193 array( 194 '/foo.php?bar=1', 195 "/foo.php?bar=1", 196 ), 197 ); 134 198 } 135 199
Note: See TracChangeset
for help on using the changeset viewer.