WordPress.org

Make WordPress Core

Ticket #18017: 18017-ut.diff

File 18017-ut.diff, 2.6 KB (added by ryan, 6 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?>