@@ -61,6 +61,49 @@ function testColorParsing() {
61
61
}
62
62
}
63
63
64
+ function testUnicodeParsing () {
65
+ $ oDoc = $ this ->parsedStructureForFile ('unicode ' );
66
+ foreach ($ oDoc ->getAllRuleSets () as $ oRuleSet ) {
67
+ if (!$ oRuleSet instanceof CSSSelector) {
68
+ continue ;
69
+ }
70
+ $ aSelector = $ oRuleSet ->getSelector ();
71
+ if (substr ($ aSelector [0 ], 0 , strlen ('.test- ' )) !== '.test- ' ) {
72
+ continue ;
73
+ }
74
+ $ aContentRules = $ oRuleSet ->getRules ('content ' );
75
+ $ aContents = $ aContentRules ['content ' ]->getValues ();
76
+ $ sCssString = $ aContents [0 ][0 ]->__toString ();
77
+ if ($ aSelector [0 ] === '.test-1 ' ) {
78
+ $ this ->assertSame ('" " ' , $ sCssString );
79
+ }
80
+ if ($ aSelector [0 ] === '.test-2 ' ) {
81
+ $ this ->assertSame ('"é" ' , $ sCssString );
82
+ }
83
+ if ($ aSelector [0 ] === '.test-3 ' ) {
84
+ $ this ->assertSame ('" " ' , $ sCssString );
85
+ }
86
+ if ($ aSelector [0 ] === '.test-4 ' ) {
87
+ $ this ->assertSame ('"𝄞" ' , $ sCssString );
88
+ }
89
+ if ($ aSelector [0 ] === '.test-5 ' ) {
90
+ $ this ->assertSame ('"水" ' , $ sCssString );
91
+ }
92
+ if ($ aSelector [0 ] === '.test-6 ' ) {
93
+ $ this ->assertSame ('"¥" ' , $ sCssString );
94
+ }
95
+ if ($ aSelector [0 ] === '.test-7 ' ) {
96
+ $ this ->assertSame ('"\A" ' , $ sCssString );
97
+ }
98
+ if ($ aSelector [0 ] === '.test-8 ' ) {
99
+ $ this ->assertSame ('"\"\"" ' , $ sCssString );
100
+ }
101
+ if ($ aSelector [0 ] === '.test-9 ' ) {
102
+ $ this ->assertSame ('"\" \\\'" ' , $ sCssString );
103
+ }
104
+ }
105
+ }
106
+
64
107
function parsedStructureForFile ($ sFileName ) {
65
108
$ sFile = dirname (__FILE__ ).DIRECTORY_SEPARATOR .'files ' .DIRECTORY_SEPARATOR ."$ sFileName.css " ;
66
109
$ oParser = new CSSParser (file_get_contents ($ sFile ));
0 commit comments