@@ -57,3 +57,217 @@ test('Less interpolation within an id', '#foo@{bar}', (t, tree) => {
57
57
t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
58
58
t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'foo@{bar}' ) ;
59
59
} ) ;
60
+
61
+ test ( 'id selector with escaping' , '#\\#test' , ( t , tree ) => {
62
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '#test' ) ;
63
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
64
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\#test' ) ;
65
+ } ) ;
66
+
67
+ test ( 'id selector with escaping (2)' , '#-a-b-c-' , ( t , tree ) => {
68
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '-a-b-c-' ) ;
69
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
70
+ } ) ;
71
+
72
+ test ( 'id selector with escaping (3)' , '#u-m\\00002b' , ( t , tree ) => {
73
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'u-m+' ) ;
74
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
75
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'u-m\\00002b' ) ;
76
+ } ) ;
77
+
78
+ test ( 'id selector with escaping (4)' , '#♥' , ( t , tree ) => {
79
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '♥' ) ;
80
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
81
+ } ) ;
82
+
83
+ test ( 'id selector with escaping (5)' , '#©' , ( t , tree ) => {
84
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '©' ) ;
85
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
86
+ } ) ;
87
+
88
+ test ( 'id selector with escaping (6)' , '#“‘’”' , ( t , tree ) => {
89
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '“‘’”' ) ;
90
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
91
+ } ) ;
92
+
93
+ test ( 'id selector with escaping (7)' , '#☺☃' , ( t , tree ) => {
94
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '☺☃' ) ;
95
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
96
+ } ) ;
97
+
98
+ test ( 'id selector with escaping (8)' , '#⌘⌥' , ( t , tree ) => {
99
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '⌘⌥' ) ;
100
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
101
+ } ) ;
102
+
103
+ test ( 'id selector with escaping (9)' , '#𝄞♪♩♫♬' , ( t , tree ) => {
104
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '𝄞♪♩♫♬' ) ;
105
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
106
+ } ) ;
107
+
108
+ test ( 'id selector with escaping (10)' , '#💩' , ( t , tree ) => {
109
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '💩' ) ;
110
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
111
+ } ) ;
112
+
113
+ test ( 'id selector with escaping (11)' , '#\\?' , ( t , tree ) => {
114
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '?' ) ;
115
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
116
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\?' ) ;
117
+ } ) ;
118
+
119
+ test ( 'id selector with escaping (12)' , '#\\@' , ( t , tree ) => {
120
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '@' ) ;
121
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
122
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\@' ) ;
123
+ } ) ;
124
+
125
+ test ( 'id selector with escaping (13)' , '#\\.' , ( t , tree ) => {
126
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '.' ) ;
127
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
128
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\.' ) ;
129
+ } ) ;
130
+
131
+ test ( 'id selector with escaping (14)' , '#\\3A \\)' , ( t , tree ) => {
132
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , ':)' ) ;
133
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
134
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\3A \\)' ) ;
135
+ } ) ;
136
+
137
+ test ( 'id selector with escaping (15)' , '#\\3A \\`\\(' , ( t , tree ) => {
138
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , ':`(' ) ;
139
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
140
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\3A \\`\\(' ) ;
141
+ } ) ;
142
+
143
+ test ( 'id selector with escaping (16)' , '#\\31 23' , ( t , tree ) => {
144
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '123' ) ;
145
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
146
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\31 23' ) ;
147
+ } ) ;
148
+
149
+ test ( 'id selector with escaping (17)' , '#\\31 a2b3c' , ( t , tree ) => {
150
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '1a2b3c' ) ;
151
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
152
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\31 a2b3c' ) ;
153
+ } ) ;
154
+
155
+ test ( 'id selector with escaping (18)' , '#\\<p\\>' , ( t , tree ) => {
156
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '<p>' ) ;
157
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
158
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\<p\\>' ) ;
159
+ } ) ;
160
+
161
+ test ( 'id selector with escaping (19)' , '#\\<\\>\\<\\<\\<\\>\\>\\<\\>' , ( t , tree ) => {
162
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '<><<<>><>' ) ;
163
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
164
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\<\\>\\<\\<\\<\\>\\>\\<\\>' ) ;
165
+ } ) ;
166
+
167
+ test ( 'id selector with escaping (20)' , '#\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\[\\>\\+\\+\\+\\+\\+\\+\\+\\>\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\>\\+\\+\\+\\>\\+\\<\\<\\<\\<\\-\\]\\>\\+\\+\\.\\>\\+\\.\\+\\+\\+\\+\\+\\+\\+\\.\\.\\+\\+\\+\\.\\>\\+\\+\\.\\<\\<\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\.\\>\\.\\+\\+\\+\\.\\-\\-\\-\\-\\-\\-\\.\\-\\-\\-\\-\\-\\-\\-\\-\\.\\>\\+\\.\\>\\.' , ( t , tree ) => {
168
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.' ) ;
169
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
170
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\[\\>\\+\\+\\+\\+\\+\\+\\+\\>\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\>\\+\\+\\+\\>\\+\\<\\<\\<\\<\\-\\]\\>\\+\\+\\.\\>\\+\\.\\+\\+\\+\\+\\+\\+\\+\\.\\.\\+\\+\\+\\.\\>\\+\\+\\.\\<\\<\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\+\\.\\>\\.\\+\\+\\+\\.\\-\\-\\-\\-\\-\\-\\.\\-\\-\\-\\-\\-\\-\\-\\-\\.\\>\\+\\.\\>\\.' ) ;
171
+ } ) ;
172
+
173
+ test ( 'id selector with escaping (21)' , '#\\#' , ( t , tree ) => {
174
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '#' ) ;
175
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
176
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\#' ) ;
177
+ } ) ;
178
+
179
+ test ( 'id selector with escaping (22)' , '#\\#\\#' , ( t , tree ) => {
180
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '##' ) ;
181
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
182
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\#\\#' ) ;
183
+ } ) ;
184
+
185
+ test ( 'id selector with escaping (23)' , '#\\#\\.\\#\\.\\#' , ( t , tree ) => {
186
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '#.#.#' ) ;
187
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
188
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\#\\.\\#\\.\\#' ) ;
189
+ } ) ;
190
+
191
+ test ( 'id selector with escaping (24)' , '#\\_' , ( t , tree ) => {
192
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '_' ) ;
193
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
194
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\_' ) ;
195
+ } ) ;
196
+
197
+ test ( 'id selector with escaping (25)' , '#\\{\\}' , ( t , tree ) => {
198
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '{}' ) ;
199
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
200
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\{\\}' ) ;
201
+ } ) ;
202
+
203
+ test ( 'id selector with escaping (26)' , '#\\.fake\\-class' , ( t , tree ) => {
204
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '.fake-class' ) ;
205
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
206
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\.fake\\-class' ) ;
207
+ } ) ;
208
+
209
+ test ( 'id selector with escaping (27)' , '#foo\\.bar' , ( t , tree ) => {
210
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'foo.bar' ) ;
211
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
212
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'foo\\.bar' ) ;
213
+ } ) ;
214
+
215
+ test ( 'id selector with escaping (28)' , '#\\3A hover' , ( t , tree ) => {
216
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , ':hover' ) ;
217
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
218
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\3A hover' ) ;
219
+ } ) ;
220
+
221
+ test ( 'id selector with escaping (29)' , '#\\3A hover\\3A focus\\3A active' , ( t , tree ) => {
222
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , ':hover:focus:active' ) ;
223
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
224
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\3A hover\\3A focus\\3A active' ) ;
225
+ } ) ;
226
+
227
+ test ( 'id selector with escaping (30)' , '#\\[attr\\=value\\]' , ( t , tree ) => {
228
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , '[attr=value]' ) ;
229
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
230
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , '\\[attr\\=value\\]' ) ;
231
+ } ) ;
232
+
233
+ test ( 'id selector with escaping (31)' , '#f\\/o\\/o' , ( t , tree ) => {
234
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f/o/o' ) ;
235
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
236
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\/o\\/o' ) ;
237
+ } ) ;
238
+
239
+ test ( 'id selector with escaping (32)' , '#f\\\\o\\\\o' , ( t , tree ) => {
240
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f\\o\\o' ) ;
241
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
242
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\\\o\\\\o' ) ;
243
+ } ) ;
244
+
245
+ test ( 'id selector with escaping (33)' , '#f\\*o\\*o' , ( t , tree ) => {
246
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f*o*o' ) ;
247
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
248
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\*o\\*o' ) ;
249
+ } ) ;
250
+
251
+ test ( 'id selector with escaping (34)' , '#f\\!o\\!o' , ( t , tree ) => {
252
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f!o!o' ) ;
253
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
254
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\!o\\!o' ) ;
255
+ } ) ;
256
+
257
+ test ( 'id selector with escaping (35)' , '#f\\\'o\\\'o' , ( t , tree ) => {
258
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f\'o\'o' ) ;
259
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
260
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\\'o\\\'o' ) ;
261
+ } ) ;
262
+
263
+ test ( 'id selector with escaping (36)' , '#f\\~o\\~o' , ( t , tree ) => {
264
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f~o~o' ) ;
265
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
266
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\~o\\~o' ) ;
267
+ } ) ;
268
+
269
+ test ( 'id selector with escaping (37)' , '#f\\+o\\+o' , ( t , tree ) => {
270
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . value , 'f+o+o' ) ;
271
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . type , 'id' ) ;
272
+ t . deepEqual ( tree . nodes [ 0 ] . nodes [ 0 ] . raws . value , 'f\\+o\\+o' ) ;
273
+ } ) ;
0 commit comments