OLD | NEW |
1 var initialize_SassTest = function() { | 1 var initialize_SassTest = function() { |
2 | 2 |
3 InspectorTest.preloadModule("sass"); | 3 InspectorTest.preloadModule("sass"); |
4 | 4 |
5 var cssParserService = null; | 5 var cssParserService = null; |
6 | 6 |
7 InspectorTest.cssParserService = function() | 7 InspectorTest.cssParserService = function() |
8 { | 8 { |
9 if (!cssParserService) | 9 if (!cssParserService) |
10 cssParserService = new WebInspector.CSSParserService(); | 10 cssParserService = new WebInspector.CSSParserService(); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 InspectorTest.addResult("Bad ranges: " + invalidNodes.length); | 161 InspectorTest.addResult("Bad ranges: " + invalidNodes.length); |
162 for (var node of invalidNodes) | 162 for (var node of invalidNodes) |
163 InspectorTest.addResult(String.sprintf(" - range: %s text: %s", nod
e.range.toString(), node.text)); | 163 InspectorTest.addResult(String.sprintf(" - range: %s text: %s", nod
e.range.toString(), node.text)); |
164 } else { | 164 } else { |
165 InspectorTest.addResult("Ranges OK."); | 165 InspectorTest.addResult("Ranges OK."); |
166 } | 166 } |
167 return ast; | 167 return ast; |
168 | 168 |
169 function validate(textNode) | 169 function validate(textNode) |
170 { | 170 { |
171 if (textNode.range.extract(textNode.document.text) !== textNode.text) | 171 if (textNode.document.text.extract(textNode.range) !== textNode.text) |
172 invalidNodes.push(textNode); | 172 invalidNodes.push(textNode); |
173 } | 173 } |
174 } | 174 } |
175 | 175 |
176 InspectorTest.validateMapping = function(mapping) | 176 InspectorTest.validateMapping = function(mapping) |
177 { | 177 { |
178 InspectorTest.addResult("Mapped CSS: " + mapping._cssToSass.size); | 178 InspectorTest.addResult("Mapped CSS: " + mapping._cssToSass.size); |
179 InspectorTest.addResult("Mapped SCSS: " + mapping._sassToCss.size); | 179 InspectorTest.addResult("Mapped SCSS: " + mapping._sassToCss.size); |
180 var cssNodes = mapping._cssToSass.keysArray(); | 180 var cssNodes = mapping._cssToSass.keysArray(); |
181 var staleCSS = 0; | 181 var staleCSS = 0; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 | 227 |
228 function runTests() | 228 function runTests() |
229 { | 229 { |
230 if (!tests.length) { | 230 if (!tests.length) { |
231 InspectorTest.completeTest(); | 231 InspectorTest.completeTest(); |
232 astService.dispose(); | 232 astService.dispose(); |
233 return; | 233 return; |
234 } | 234 } |
235 var test = tests.shift(); | 235 var test = tests.shift(); |
236 logTestName(test.name); | 236 logTestName(test.name); |
237 var text = astSourceMap.cssAST().document.text; | 237 var text = astSourceMap.cssAST().document.text.value(); |
238 var edits = test(text); | 238 var edits = test(text); |
239 logSourceEdits(text, edits); | 239 logSourceEdits(text, edits); |
240 var ranges = edits.map(edit => edit.oldRange); | 240 var ranges = edits.map(edit => edit.oldRange); |
241 var texts = edits.map(edit => edit.newText); | 241 var texts = edits.map(edit => edit.newText); |
242 WebInspector.SASSProcessor.processCSSEdits(astService, astSourceMap, ran
ges, texts) | 242 WebInspector.SASSProcessor.processCSSEdits(astService, astSourceMap, ran
ges, texts) |
243 .then(onEditsDone); | 243 .then(onEditsDone); |
244 } | 244 } |
245 | 245 |
246 function onEditsDone(result) | 246 function onEditsDone(result) |
247 { | 247 { |
248 if (!result.map) { | 248 if (!result.map) { |
249 InspectorTest.addResult("SASSProcessor failed to process edits."); | 249 InspectorTest.addResult("SASSProcessor failed to process edits."); |
250 runTests(); | 250 runTests(); |
251 return; | 251 return; |
252 } | 252 } |
253 logASTText(result.map.cssAST()); | 253 logASTText(result.map.cssAST()); |
254 for (var sassURL of result.newSASSSources.keys()) { | 254 for (var sassURL of result.newSASSSources.keys()) { |
255 var ast = result.map.sassModels().get(sassURL); | 255 var ast = result.map.sassModels().get(sassURL); |
256 logASTText(ast); | 256 logASTText(ast); |
257 } | 257 } |
258 runTests(); | 258 runTests(); |
259 } | 259 } |
260 | 260 |
261 function logASTText(ast, avoidIndent, customTitle) | 261 function logASTText(ast, avoidIndent, customTitle) |
262 { | 262 { |
263 customTitle = customTitle || ast.document.url.split("/").pop(); | 263 customTitle = customTitle || ast.document.url.split("/").pop(); |
264 InspectorTest.addResult("===== " + customTitle + " ====="); | 264 InspectorTest.addResult("===== " + customTitle + " ====="); |
265 var text = ast.document.text.replace(/ /g, "."); | 265 var text = ast.document.text.value().replace(/ /g, "."); |
266 var lines = text.split("\n"); | 266 var lines = text.split("\n"); |
267 if (!avoidIndent) | 267 if (!avoidIndent) |
268 lines = indent(lines); | 268 lines = indent(lines); |
269 InspectorTest.addResult(lines.join("\n")); | 269 InspectorTest.addResult(lines.join("\n")); |
270 } | 270 } |
271 | 271 |
272 function logTestName(testName) | 272 function logTestName(testName) |
273 { | 273 { |
274 var titleText = " TEST: " + testName + " "; | 274 var titleText = " TEST: " + testName + " "; |
275 var totalLength = 80; | 275 var totalLength = 80; |
276 var prefixLength = ((totalLength - titleText.length) / 2)|0; | 276 var prefixLength = ((totalLength - titleText.length) / 2)|0; |
277 var suffixLength = totalLength - titleText.length - prefixLength; | 277 var suffixLength = totalLength - titleText.length - prefixLength; |
278 var prefix = new Array(prefixLength).join("-"); | 278 var prefix = new Array(prefixLength).join("-"); |
279 var suffix = new Array(suffixLength).join("-"); | 279 var suffix = new Array(suffixLength).join("-"); |
280 InspectorTest.addResult("\n" + prefix + titleText + suffix + "\n"); | 280 InspectorTest.addResult("\n" + prefix + titleText + suffix + "\n"); |
281 } | 281 } |
282 | 282 |
283 function logSourceEdits(text, edits) | 283 function logSourceEdits(text, edits) |
284 { | 284 { |
285 var lines = []; | 285 var lines = []; |
286 for (var i = 0; i < edits.length; ++i) { | 286 for (var i = 0; i < edits.length; ++i) { |
287 var edit = edits[i]; | 287 var edit = edits[i]; |
288 var range = edit.oldRange; | 288 var range = edit.oldRange; |
289 var line = String.sprintf("{%d, %d, %d, %d}", range.startLine, range
.startColumn, range.endLine, range.endColumn); | 289 var line = String.sprintf("{%d, %d, %d, %d}", range.startLine, range
.startColumn, range.endLine, range.endColumn); |
290 line += String.sprintf(" '%s' => '%s'", range.extract(text), edit.ne
wText); | 290 line += String.sprintf(" '%s' => '%s'", (new WebInspector.Text(text)
).extract(range), edit.newText); |
291 lines.push(line); | 291 lines.push(line); |
292 } | 292 } |
293 lines = indent(lines); | 293 lines = indent(lines); |
294 lines.unshift("Edits:"); | 294 lines.unshift("Edits:"); |
295 InspectorTest.addResult(lines.join("\n")); | 295 InspectorTest.addResult(lines.join("\n")); |
296 } | 296 } |
297 } | 297 } |
298 | 298 |
299 InspectorTest.createEdit = function(source, pattern, newText, matchNumber) | 299 InspectorTest.createEdit = function(source, pattern, newText, matchNumber) |
300 { | 300 { |
301 matchNumber = matchNumber || 0; | 301 matchNumber = matchNumber || 0; |
302 var re = new RegExp(pattern.escapeForRegExp(), "g"); | 302 var re = new RegExp(pattern.escapeForRegExp(), "g"); |
303 var match; | 303 var match; |
304 while ((match = re.exec(source)) !== null && matchNumber) { | 304 while ((match = re.exec(source)) !== null && matchNumber) { |
305 --matchNumber; | 305 --matchNumber; |
306 } | 306 } |
307 if (!match) | 307 if (!match) |
308 return null; | 308 return null; |
309 var sourceRange = new WebInspector.SourceRange(match.index, match[0].length)
; | 309 var sourceRange = new WebInspector.SourceRange(match.index, match[0].length)
; |
310 var textRange = sourceRange.toTextRange(source); | 310 var textRange = sourceRange.toTextRange(new WebInspector.Text(source)); |
311 return new WebInspector.SourceEdit("", textRange, newText); | 311 return new WebInspector.SourceEdit("", textRange, newText); |
312 } | 312 } |
313 | 313 |
314 } | 314 } |
315 | 315 |
OLD | NEW |