. */ namespace SP\Tests\Html; use Faker\Factory; use PHPUnit\Framework\TestCase; use SP\Html\Html; /** * Class HtmlTest */ class HtmlTest extends TestCase { private static $faker; public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); self::$faker = Factory::create(); } public function testGetSafeUrlOk() { $url = self::$faker->url; $this->assertEquals($url, Html::getSafeUrl($url)); } /** * @dataProvider urlProvider * @return void */ public function testGetSafeUrlEncoded(string $url) { $this->assertEquals(0, preg_match('/["<>\']+/', Html::getSafeUrl($url))); } private function urlProvider(): array { return [ ['https://foo.com/'], ['https://foo.com/>'], ['https://foo.com/">'], ['https://foo.com/"%20onClick="alert(\'TEST\'")'], ['https://foo.com/" onClick="alert(\'TEST\')"'], ['mongodb+srv://cluster.foo.mongodb.net/bar'], ]; } }