wordpress-develop/tests/phpunit/tests/formatting/EscUrl.php
Andrew Nacin 8045afd81b Move PHPUnit tests into a tests/phpunit directory.
wp-tests-config.php can/should reside in the root of a develop checkout. `phpunit` should be run from the root.

see #25088.


git-svn-id: https://develop.svn.wordpress.org/trunk@25165 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-29 18:39:34 +00:00

84 lines
3.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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/&#039;quoted&#039;', 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&#038;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' ) );
}
}