WordPress.org

Make WordPress Core

Ticket #18017: 18017-ut.diff

File 18017-ut.diff, 2.6 KB (added by ryan, 2 years ago)

unit tests

  • wp-testcase/test_link_functions.php

     
    8282                        } 
    8383                } 
    8484        } 
     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        } 
    85157} 
    86158 
    87159?>