WordPress.org

Make WordPress Core

Changeset 719 in tests


Ignore:
Timestamp:
05/18/12 20:05:42 (2 years ago)
Author:
ryan
Message:

Unit tests for set_url_scheme(). See #WP18017

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_link_functions.php

    r397 r719  
    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 
Note: See TracChangeset for help on using the changeset viewer.