/** * Encode a selector for regex * @author Anthony Short * @test */ public function Encode_a_selector_for_regex() { $selector = '*'; $expected = '\\*'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'id'; $expected = 'id'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo]'; $expected = 'E\\[foo\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo="bar"]'; $expected = 'E\\[foo\\="bar"\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo~="bar"]'; $expected = 'E\\[foo~\\="bar"\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo^="bar"]'; $expected = 'E\\[foo\\^\\="bar"\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo*="bar"]'; $expected = 'E\\[foo\\*\\="bar"\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E[foo|="en"]'; $expected = 'E\\[foo\\|\\="en"\\]'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E:root'; $expected = 'E\\:root'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E:nth-child(n)'; $expected = 'E\\:nth\\-child\\(n\\)'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E:nth-last-child(n)'; $expected = 'E\\:nth\\-last\\-child\\(n\\)'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E:nth-of-type(n)'; $expected = 'E\\:nth\\-of\\-type\\(n\\)'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E::first-line'; $expected = 'E\\:\\:first\\-line'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E.warning'; $expected = 'E\\.warning'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E#myid'; $expected = 'E\\#myid'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E F'; $expected = 'E\\s+F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E > F'; $expected = 'E\\s+\\>\\s+F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E + F'; $expected = 'E\\s+\\+\\s+F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E ~ F'; $expected = 'E\\s+~\\s+F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E_F'; $expected = 'E_F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); $selector = 'E-F'; $expected = 'E\\-F'; $actual = Scaffold_Helper_CSS::escape_regex($selector); $this->assertEquals($expected, $actual); }