WordPress.org

Make WordPress Core

Changeset 943 in tests


Ignore:
Timestamp:
07/30/12 23:17:53 (21 months ago)
Author:
ryan
Message:

Tests for add_query_arg(). see #WP21332

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/functions.php

    r909 r943  
    243243            $this->assertFalse( is_serialized($case), "Test data: $case" ); 
    244244    } 
     245 
     246    function test_add_query_arg() { 
     247        $old_req_uri = $_SERVER['REQUEST_URI']; 
     248 
     249        $urls = array( 
     250            '/', 
     251            '/2012/07/30/', 
     252            'edit.php', 
     253            admin_url( 'edit.php' ), 
     254            admin_url( 'edit.php', 'https' ), 
     255        ); 
     256 
     257        $frag_urls = array( 
     258            '/#frag', 
     259            '/2012/07/30/#frag', 
     260            'edit.php#frag', 
     261            admin_url( 'edit.php#frag' ), 
     262            admin_url( 'edit.php#frag', 'https' ), 
     263        ); 
     264 
     265        foreach ( $urls as $url ) { 
     266            $_SERVER['REQUEST_URI'] = 'nothing'; 
     267 
     268            $this->assertEquals( "$url?foo=1", add_query_arg( 'foo', '1', $url ) ); 
     269            $this->assertEquals( "$url?foo=1", add_query_arg( array( 'foo' => '1' ), $url ) ); 
     270            $this->assertEquals( "$url?foo=2", add_query_arg( array( 'foo' => '1', 'foo' => '2' ), $url ) ); 
     271            $this->assertEquals( "$url?foo=1&bar=2", add_query_arg( array( 'foo' => '1', 'bar' => '2' ), $url ) ); 
     272 
     273            $_SERVER['REQUEST_URI'] = $url; 
     274 
     275            $this->assertEquals( "$url?foo=1", add_query_arg( 'foo', '1' ) ); 
     276            $this->assertEquals( "$url?foo=1", add_query_arg( array( 'foo' => '1' ) ) ); 
     277            $this->assertEquals( "$url?foo=2", add_query_arg( array( 'foo' => '1', 'foo' => '2' ) ) ); 
     278            $this->assertEquals( "$url?foo=1&bar=2", add_query_arg( array( 'foo' => '1', 'bar' => '2' ) ) ); 
     279        } 
     280 
     281        foreach ( $frag_urls as $frag_url ) { 
     282            $_SERVER['REQUEST_URI'] = 'nothing'; 
     283            $url = str_replace( '#frag', '', $frag_url ); 
     284 
     285            $this->assertEquals( "$url?foo=1#frag", add_query_arg( 'foo', '1', $frag_url ) ); 
     286            $this->assertEquals( "$url?foo=1#frag", add_query_arg( array( 'foo' => '1' ), $frag_url ) ); 
     287            $this->assertEquals( "$url?foo=2#frag", add_query_arg( array( 'foo' => '1', 'foo' => '2' ), $frag_url ) ); 
     288            $this->assertEquals( "$url?foo=1&bar=2#frag", add_query_arg( array( 'foo' => '1', 'bar' => '2' ), $frag_url ) ); 
     289 
     290            $_SERVER['REQUEST_URI'] = $frag_url; 
     291 
     292            $this->assertEquals( "$url?foo=1#frag", add_query_arg( 'foo', '1' ) ); 
     293            $this->assertEquals( "$url?foo=1#frag", add_query_arg( array( 'foo' => '1' ) ) ); 
     294            $this->assertEquals( "$url?foo=2#frag", add_query_arg( array( 'foo' => '1', 'foo' => '2' ) ) ); 
     295            $this->assertEquals( "$url?foo=1&bar=2#frag", add_query_arg( array( 'foo' => '1', 'bar' => '2' ) ) ); 
     296        } 
     297 
     298        $qs_urls = array( 
     299            '/?baz', 
     300            '/2012/07/30/?baz', 
     301            'edit.php?baz', 
     302            admin_url( 'edit.php?baz' ), 
     303            admin_url( 'edit.php?baz', 'https' ), 
     304            admin_url( 'edit.php?baz&za=1' ), 
     305            admin_url( 'edit.php?baz=1&za=1' ), 
     306            admin_url( 'edit.php?baz=0&za=0' ), 
     307        ); 
     308 
     309        foreach ( $qs_urls as $url ) { 
     310            $_SERVER['REQUEST_URI'] = 'nothing'; 
     311 
     312            $this->assertEquals( "$url&foo=1", add_query_arg( 'foo', '1', $url ) ); 
     313            $this->assertEquals( "$url&foo=1", add_query_arg( array( 'foo' => '1' ), $url ) ); 
     314            $this->assertEquals( "$url&foo=2", add_query_arg( array( 'foo' => '1', 'foo' => '2' ), $url ) ); 
     315            $this->assertEquals( "$url&foo=1&bar=2", add_query_arg( array( 'foo' => '1', 'bar' => '2' ), $url ) ); 
     316 
     317            $_SERVER['REQUEST_URI'] = $url; 
     318 
     319            $this->assertEquals( "$url&foo=1", add_query_arg( 'foo', '1' ) ); 
     320            $this->assertEquals( "$url&foo=1", add_query_arg( array( 'foo' => '1' ) ) ); 
     321            $this->assertEquals( "$url&foo=2", add_query_arg( array( 'foo' => '1', 'foo' => '2' ) ) ); 
     322            $this->assertEquals( "$url&foo=1&bar=2", add_query_arg( array( 'foo' => '1', 'bar' => '2' ) ) ); 
     323        } 
     324 
     325        $_SERVER['REQUEST_URI'] = $old_req_uri; 
     326    } 
    245327} 
Note: See TracChangeset for help on using the changeset viewer.