| | 85 | |
| | 86 | function test_set_url_scheme() { |
| | 87 | if ( ! function_exists( 'set_url_scheme' ) ) |
| | 88 | return; |
| | 89 | |
| | 90 | $links = array( |
| | 91 | 'http://wordpress.org/', |
| | 92 | 'https://wordpress.org/', |
| | 93 | 'http://wordpress.org/news/', |
| | 94 | 'http://wordpress.org', |
| | 95 | ); |
| | 96 | |
| | 97 | $https_links = array( |
| | 98 | 'https://wordpress.org/', |
| | 99 | 'https://wordpress.org/', |
| | 100 | 'https://wordpress.org/news/', |
| | 101 | 'https://wordpress.org', |
| | 102 | ); |
| | 103 | |
| | 104 | $http_links = array( |
| | 105 | 'http://wordpress.org/', |
| | 106 | 'http://wordpress.org/', |
| | 107 | 'http://wordpress.org/news/', |
| | 108 | 'http://wordpress.org', |
| | 109 | ); |
| | 110 | |
| | 111 | $relative_links = array( |
| | 112 | '/', |
| | 113 | '/', |
| | 114 | '/news/', |
| | 115 | '' |
| | 116 | ); |
| | 117 | |
| | 118 | $forced_admin = force_ssl_admin(); |
| | 119 | $forced_login = force_ssl_login(); |
| | 120 | $i = 0; |
| | 121 | foreach ( $links as $link ) { |
| | 122 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'https' ) ); |
| | 123 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'http' ) ); |
| | 124 | $this->assertEquals( $relative_links[ $i ], set_url_scheme( $link, 'relative' ) ); |
| | 125 | |
| | 126 | $_SERVER['HTTPS'] = 'on'; |
| | 127 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link ) ); |
| | 128 | |
| | 129 | $_SERVER['HTTPS'] = 'off'; |
| | 130 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link ) ); |
| | 131 | |
| | 132 | force_ssl_login( false ); |
| | 133 | force_ssl_admin( true ); |
| | 134 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'admin' ) ); |
| | 135 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'login_post' ) ); |
| | 136 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'login' ) ); |
| | 137 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'rpc' ) ); |
| | 138 | |
| | 139 | force_ssl_admin( false ); |
| | 140 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'admin' ) ); |
| | 141 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'login_post' ) ); |
| | 142 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'login' ) ); |
| | 143 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'rpc' ) ); |
| | 144 | |
| | 145 | force_ssl_login( true ); |
| | 146 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'admin' ) ); |
| | 147 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'login_post' ) ); |
| | 148 | $this->assertEquals( $http_links[ $i ], set_url_scheme( $link, 'login' ) ); |
| | 149 | $this->assertEquals( $https_links[ $i ], set_url_scheme( $link, 'rpc' ) ); |
| | 150 | |
| | 151 | $i++; |
| | 152 | } |
| | 153 | |
| | 154 | force_ssl_admin( $forced_admin ); |
| | 155 | force_ssl_login( $forced_login ); |
| | 156 | } |