. /** * @package Tests * @subpackage String * @copyright Copyright (C) 2002 - 2012 MantisBT Team - mantisbt-dev@lists.sourceforge.net * @link http://www.mantisbt.org */ class Mantis_StringTest extends PHPUnit_Framework_TestCase { /** * Tests string_sanitize_url() * * @dataProvider provider */ public function testStringSanitize( $in, $out ) { $a = string_do_sanitize_url($in, false); $this->assertEquals( $out, $a ); } public function provider() { $testStrings = array( array( '', 'index.php' ), array( 'abc.php', 'abc.php' ), array( 'abc.php?','abc.php'), array( 'abc.php#a','abc.php#a'), array( 'abc.php?abc=def','abc.php?abc=def'), array( 'abc.php?abc=def#a','abc.php?abc=def#a'), array( 'abc.php?abc=def&z=xyz','abc.php?abc=def&z=xyz'), array( 'abc.php?abc=def&z=xyz','abc.php?abc=def&z=xyz'), array( 'abc.php?abc=def&z=xyz#a','abc.php?abc=def&z=xyz#a'), array( 'abc.php?abc=def&z=xyz#a','abc.php?abc=def&z=xyz#a'), /* FIXME array( 'abc.php?abc=def&z=z#a','abc.php?abc=def&z=alert%28%22foo%29%22%3cz#a'), */ /* FIXME array( 'abc.php?abc=def&z=z#a','abc.php?abc=def&z=z#alert%28%22foo%22%3ca'), */ array( 'plugin.php?page=Source/index','plugin.php?page=Source%2Findex'), array( 'plugin.php?page=Source/list&id=1','plugin.php?page=Source%2Flist&id=1'), array( 'plugin.php?page=Source/list&id=1#abc','plugin.php?page=Source%2Flist&id=1#abc'), ); /* FIXME array( $my_path.'abc.php', array( $my_path.'abc.php?', array( $my_path.'abc.php#a', array( $my_path.'abc.php?abc=def', array( $my_path.'abc.php?abc=def#a', array( $my_path.'abc.php?abc=def&z=xyz', array( $my_path.'abc.php?abc=def&z=xyz', array( $my_path.'abc.php?abc=def&z=xyz#a', array( $my_path.'abc.php?abc=def&z=xyz#a', array( $my_path.'abc.php?abc=def&z=z#a', array( $my_path.'abc.php?abc=def&z=z#a', array( $my_path.'plugin.php?page=Source/index', array( $my_path.'plugin.php?page=Source/list&id=1', array( $my_path.'plugin.php?page=Source/list&id=1#abc', array( 'http://www.test.my.url/'), */ return $testStrings; } } // FIXME: hardcoced here to avoid external dependencies, should use code in string_api.php function string_do_sanitize_url( $p_url, $p_return_absolute = false ) { $t_url = strip_tags( urldecode( $p_url ) ); $t_path = '/'; $t_short_path = '/'; $t_pattern = '(?:/*(?P