1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- /**
- * @group formatting
- */
- class Tests_Formatting_EscUrl extends WP_UnitTestCase {
- function test_spaces() {
- $this->assertEquals('http://example.com/MrWordPress', esc_url('http://example.com/Mr WordPress'));
- $this->assertEquals('http://example.com/Mr%20WordPress', esc_url('http://example.com/Mr%20WordPress'));
- }
- function test_bad_characters() {
- $this->assertEquals('http://example.com/watchthelinefeedgo', esc_url('http://example.com/watchthelinefeed%0Ago'));
- $this->assertEquals('http://example.com/watchthelinefeedgo', esc_url('http://example.com/watchthelinefeed%0ago'));
- $this->assertEquals('http://example.com/watchthecarriagereturngo', esc_url('http://example.com/watchthecarriagereturn%0Dgo'));
- $this->assertEquals('http://example.com/watchthecarriagereturngo', esc_url('http://example.com/watchthecarriagereturn%0dgo'));
- //Nesting Checks
- $this->assertEquals('http://example.com/watchthecarriagereturngo', esc_url('http://example.com/watchthecarriagereturn%0%0ddgo'));
- $this->assertEquals('http://example.com/watchthecarriagereturngo', esc_url('http://example.com/watchthecarriagereturn%0%0DDgo'));
- $this->assertEquals('http://example.com/', esc_url('http://example.com/%0%0%0DAD'));
- $this->assertEquals('http://example.com/', esc_url('http://example.com/%0%0%0ADA'));
- $this->assertEquals('http://example.com/', esc_url('http://example.com/%0%0%0DAd'));
- $this->assertEquals('http://example.com/', esc_url('http://example.com/%0%0%0ADa'));
- }
- function test_relative() {
- $this->assertEquals('/example.php', esc_url('/example.php'));
- $this->assertEquals('example.php', esc_url('example.php'));
- $this->assertEquals('#fragment', esc_url('#fragment'));
- $this->assertEquals('?foo=bar', esc_url('?foo=bar'));
- }
- function test_protocol() {
- $this->assertEquals('http://example.com', esc_url('http://example.com'));
- $this->assertEquals('', esc_url('nasty://example.com/'));
- }
- /**
- * @ticket 23187
- */
- function test_protocol_case() {
- $this->assertEquals('http://example.com', esc_url('HTTP://example.com'));
- $this->assertEquals('http://example.com', esc_url('Http://example.com'));
- }
- function test_display_extras() {
- $this->assertEquals('http://example.com/'quoted'', esc_url('http://example.com/\'quoted\''));
- $this->assertEquals('http://example.com/\'quoted\'', esc_url('http://example.com/\'quoted\'',null,'notdisplay'));
- }
- function test_non_ascii() {
- $this->assertEquals( 'http://example.org/баба', esc_url( 'http://example.org/баба' ) );
- $this->assertEquals( 'http://баба.org/баба', esc_url( 'http://баба.org/баба' ) );
- $this->assertEquals( 'http://müller.com/', esc_url( 'http://müller.com/' ) );
- }
- function test_feed() {
- $this->assertEquals( '', esc_url( 'feed:javascript:alert(1)' ) );
- $this->assertEquals( '', esc_url( 'feed:javascript:feed:alert(1)' ) );
- $this->assertEquals( '', esc_url( 'feed:feed:javascript:alert(1)' ) );
- $this->assertEquals( 'feed:feed:alert(1)', esc_url( 'feed:feed:alert(1)' ) );
- $this->assertEquals( 'feed:http://wordpress.org/feed/', esc_url( 'feed:http://wordpress.org/feed/' ) );
- }
- /**
- * @ticket 16859
- */
- function test_square_brackets() {
- $this->assertEquals( 'http://example.com/?foo%5Bbar%5D=baz', esc_url( 'http://example.com/?foo[bar]=baz' ) );
- $this->assertEquals( 'http://example.com/?baz=bar&foo%5Bbar%5D=baz', esc_url( 'http://example.com/?baz=bar&foo[bar]=baz' ) );
- //IPv6 addresses in urls - RFC2732
- $this->assertEquals( 'http://[::FFFF::127.0.0.1]', esc_url( 'http://[::FFFF::127.0.0.1]' ) );
- $this->assertEquals( 'http://[::127.0.0.1]', esc_url( 'http://[::127.0.0.1]' ) );
- $this->assertEquals( 'http://[::DEAD:BEEF:DEAD:BEEF:DEAD:BEEF:DEAD:BEEF]', esc_url( 'http://[::DEAD:BEEF:DEAD:BEEF:DEAD:BEEF:DEAD:BEEF]' ) );
- }
- /**
- * @ticket 21974
- */
- function test_protocol_relative_with_colon() {
- $this->assertEquals( '//example.com/foo?foo=abc:def', esc_url( '//example.com/foo?foo=abc:def' ) );
- }
- }
|