assertInstanceOf(\html::class, $object, 'Class constructor'); } /** * Test for attrib_string() * * @dataProvider provide_attrib_string_cases */ #[DataProvider('provide_attrib_string_cases')] public function test_attrib_string($arg1, $arg2, $expected) { $this->assertSame($expected, \html::attrib_string($arg1, $arg2)); } /** * Data for test_attrib_string() */ public static function provide_attrib_string_cases(): iterable { return [ [ [], null, '', ], [ ['test' => 'test'], null, ' test="test"', ], [ ['test' => 'test'], ['test'], ' test="test"', ], [ ['test' => 'test'], ['other'], '', ], [ ['checked' => true], null, ' checked="checked"', ], [ ['checked' => ''], null, '', ], [ ['onclick' => ''], null, '', ], [ ['size' => 5], null, ' size="5"', ], [ ['size' => 'test'], null, '', ], [ ['data-test' => 'test'], null, ' data-test="test"', ], ]; } /** * Test for quote() * * @dataProvider provide_quote_cases */ #[DataProvider('provide_quote_cases')] public function test_quote($str, $expected) { $this->assertSame($expected, \html::quote($str)); } /** * Data for test_quote() */ public static function provide_quote_cases(): iterable { return [ ['abc', 'abc'], ['?', '?'], ['"', '"'], ['<', '<'], ['>', '>'], ['&', '&'], ['&', '&amp;'], ]; } /** * Test for parse_attrib_string() * * @dataProvider provide_parse_attrib_string_cases */ #[DataProvider('provide_parse_attrib_string_cases')] public function test_parse_attrib_string($arg1, $expected) { $this->assertSame($expected, \html::parse_attrib_string($arg1)); } /** * Data for test_parse_attrib_string() */ public static function provide_parse_attrib_string_cases(): iterable { return [ [ '', [], ], [ 'test="test1-val"', ['test' => 'test1-val'], ], [ 'test1="test1-val" test2=test2-val', ['test1' => 'test1-val', 'test2' => 'test2-val'], ], [ ' test1="test1\'val" test2=\'test2"val\' ', ['test1' => 'test1\'val', 'test2' => 'test2"val'], ], [ 'expression="test == true ? \' test\' : \'\'" ', ['expression' => 'test == true ? \' test\' : \'\''], ], [ 'href="http://domain.tld/страница"', ['href' => 'http://domain.tld/страница'], ], ]; } }