assertEquals('[a@javascript:alert(\'XSS\');@target]link', PMA_sanitize('[a@javascript:alert(\'XSS\');@target]link[/a]')); } /** * Tests correct generating of link redirector. */ public function testLink() { unset($GLOBALS['server']); unset($GLOBALS['lang']); $this->assertEquals('link', PMA_sanitize('[a@http://www.phpmyadmin.net/@target]link[/a]')); } /** * Tests links to documentation. */ public function testLinkDoc() { $this->assertEquals('doc', PMA_sanitize('[a@./Documentation.html]doc[/a]')); } /** * Tests link target validation. */ public function testInvalidTarget() { $this->assertEquals('[a@./Documentation.html@INVALID9]doc', PMA_sanitize('[a@./Documentation.html@INVALID9]doc[/a]')); } /** * Tests XSS escaping after valid link. */ public function testLinkDocXss() { $this->assertEquals('[a@./Documentation.html" onmouseover="alert(foo)"]doc', PMA_sanitize('[a@./Documentation.html" onmouseover="alert(foo)"]doc[/a]')); } /** * Tests proper handling of multi link code. */ public function testLinkAndXssInHref() { $this->assertEquals('doc[a@javascript:alert(\'XSS\');@target]link', PMA_sanitize('[a@./Documentation.html]doc[/a][a@javascript:alert(\'XSS\');@target]link[/a]')); } /** * Test escaping of HTML tags */ public function testHtmlTags() { $this->assertEquals('<div onclick="">', PMA_sanitize('