WordPress.org

Make WordPress Core

Ticket #20434: 20434-ut.diff

File 20434-ut.diff, 3.8 KB (added by dd32, 2 years ago)

Unit Tests

  • wp-testcase/test_http.php

     
    165165} 
    166166class WPHTTP_fsockopen extends _WPHTTP { 
    167167        var $transport = 'fsockopen'; 
     168} 
     169 
     170 
     171// non-transport-specific WP_HTTP Tests 
     172class WPHTTP extends WPTestCase { 
     173 
     174        /** 
     175         * @dataProvider make_absolute_url_testcases 
     176         */ 
     177        function test_make_absolute_url( $relative_url, $absolute_url, $expected ) { 
     178                if ( ! is_callable( array( 'WP_HTTP', 'make_absolute_url' ) ) ) { 
     179                        $this->markTestSkipped( "This version of WP_HTTP does't support WP_HTTP::make_absolute_url()" ); 
     180                        return; 
     181                } 
     182         
     183                $actual = WP_HTTP::make_absolute_url( $relative_url, $absolute_url ); 
     184                $this->assertEquals( $expected, $actual ); 
     185        } 
     186 
     187        function make_absolute_url_testcases() { 
     188                // 0: The Location header, 1: The current url, 3: The expected url 
     189                return array( 
     190                        array( 'http://site.com/', 'http://example.com/', 'http://site.com/' ), // Absolute URL provided 
     191                        array( '/location', '', '/location' ), // No current url provided 
     192                         
     193                        array( '', 'http://example.com', 'http://example.com/' ), // No location provided 
     194                         
     195                        // Location provided relative to site root 
     196                        array( '/root-relative-link.ext', 'http://example.com/', 'http://example.com/root-relative-link.ext' ), 
     197                        array( '/root-relative-link.ext?with=query', 'http://example.com/index.ext?query', 'http://example.com/root-relative-link.ext?with=query' ), 
     198                         
     199                        // Location provided relative to current file/directory 
     200                        array( 'relative-file.ext', 'http://example.com/', 'http://example.com/relative-file.ext' ), 
     201                        array( 'relative-file.ext', 'http://example.com/filename', 'http://example.com/relative-file.ext' ), 
     202                        array( 'relative-file.ext', 'http://example.com/directory/', 'http://example.com/directory/relative-file.ext' ), 
     203                         
     204                        // Location provided relative to current file/directory but in a parent directory 
     205                        array( '../file-in-parent.ext', 'http://example.com', 'http://example.com/file-in-parent.ext' ), 
     206                        array( '../file-in-parent.ext', 'http://example.com/filename', 'http://example.com/file-in-parent.ext' ), 
     207                        array( '../file-in-parent.ext', 'http://example.com/directory/', 'http://example.com/file-in-parent.ext' ), 
     208                        array( '../file-in-parent.ext', 'http://example.com/directory/filename', 'http://example.com/file-in-parent.ext' ), 
     209 
     210                        // Location provided in muliple levels higher, including impossible to reach (../ below DOCROOT) 
     211                        array( '../../file-in-grand-parent.ext', 'http://example.com', 'http://example.com/file-in-grand-parent.ext' ), 
     212                        array( '../../file-in-grand-parent.ext', 'http://example.com/filename', 'http://example.com/file-in-grand-parent.ext' ), 
     213                        array( '../../file-in-grand-parent.ext', 'http://example.com/directory/', 'http://example.com/file-in-grand-parent.ext' ), 
     214                        array( '../../file-in-grand-parent.ext', 'http://example.com/directory/filename/', 'http://example.com/file-in-grand-parent.ext' ), 
     215                        array( '../../file-in-grand-parent.ext', 'http://example.com/directory1/directory2/filename', 'http://example.com/file-in-grand-parent.ext' ), 
     216                         
     217                        // Query strings should attach, or replace existing query string. 
     218                        array( '?query=string', 'http://example.com', 'http://example.com/?query=string' ), 
     219                        array( '?query=string', 'http://example.com/file.ext', 'http://example.com/file.ext?query=string' ), 
     220                        array( '?query=string', 'http://example.com/file.ext?existing=query-string', 'http://example.com/file.ext?query=string' ), 
     221                        array( 'otherfile.ext?query=string', 'http://example.com/file.ext?existing=query-string', 'http://example.com/otherfile.ext?query=string' ), 
     222                         
     223                        // A file with a leading dot 
     224                        array( '.ext', 'http://example.com/', 'http://example.com/.ext' ) 
     225                ); 
     226        } 
    168227} 
     228 No newline at end of file