WordPress.org

Make WordPress Core

Changeset 713 in tests


Ignore:
Timestamp:
05/10/12 21:32:52 (2 years ago)
Author:
ryan
Message:

WP_Http::make_absolute_url() tests. Props dd32. see #WP20434

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_http.php

    r580 r713  
    167167    var $transport = 'fsockopen'; 
    168168} 
     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    } 
     227} 
Note: See TracChangeset for help on using the changeset viewer.