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 InspectorTest.dumpAST = function(ast) | 5 InspectorTest.dumpAST = function(ast) |
6 { | 6 { |
7 var lines = [String.sprintf("=== AST === %s", ast.document.url)]; | 7 var lines = [String.sprintf("=== AST === %s", ast.document.url)]; |
8 for (var i = 0; i < ast.rules.length; ++i) { | 8 for (var i = 0; i < ast.rules.length; ++i) { |
9 var rule = ast.rules[i]; | 9 var rule = ast.rules[i]; |
10 lines.push(String.sprintf("rule %d: \"%s\"", i, rule.selector)); | 10 lines.push(String.sprintf("rule %d: \"%s\"", i, rule.selector)); |
(...skipping 26 matching lines...) Expand all Loading... |
37 lines.push(String.sprintf("range: %s", property.range.toString())); | 37 lines.push(String.sprintf("range: %s", property.range.toString())); |
38 lines.push(String.sprintf("disabled: %s", property.disabled)); | 38 lines.push(String.sprintf("disabled: %s", property.disabled)); |
39 return lines; | 39 return lines; |
40 } | 40 } |
41 | 41 |
42 function dumpTextNode(textNode) | 42 function dumpTextNode(textNode) |
43 { | 43 { |
44 return [String.sprintf("range: %s", textNode.range.toString())]; | 44 return [String.sprintf("range: %s", textNode.range.toString())]; |
45 } | 45 } |
46 | 46 |
47 function indent(lines) | 47 } |
| 48 |
| 49 function indent(lines) |
| 50 { |
| 51 return lines.map(line => " " + line); |
| 52 } |
| 53 |
| 54 InspectorTest.dumpASTDiff = function(diff) |
| 55 { |
| 56 InspectorTest.addResult("=== Diff ==="); |
| 57 var changesPerRule = new Map(); |
| 58 for (var change of diff.changes) { |
| 59 var oldRule = change.oldRule; |
| 60 var ruleChanges = changesPerRule.get(oldRule); |
| 61 if (!ruleChanges) { |
| 62 ruleChanges = []; |
| 63 changesPerRule.set(oldRule, ruleChanges); |
| 64 } |
| 65 ruleChanges.push(change); |
| 66 } |
| 67 var T = WebInspector.SASSSupport.PropertyChangeType; |
| 68 for (var rule of changesPerRule.keys()) { |
| 69 var changes = changesPerRule.get(rule); |
| 70 var names = []; |
| 71 var values = []; |
| 72 for (var property of rule.properties) { |
| 73 names.push(str(property.name, " ")); |
| 74 values.push(str(property.value)); |
| 75 } |
| 76 for (var i = changes.length - 1; i >= 0; --i) { |
| 77 var change = changes[i]; |
| 78 var newProperty = change.newRule.properties[change.newPropertyIndex]
; |
| 79 var oldProperty = change.oldRule.properties[change.oldPropertyIndex]
; |
| 80 switch (change.type) { |
| 81 case T.PropertyAdded: |
| 82 names.splice(change.oldPropertyIndex, 0, str(newProperty.name, "
[+] ")); |
| 83 values.splice(change.oldPropertyIndex, 0, str(newProperty.value)
); |
| 84 break; |
| 85 case T.PropertyRemoved: |
| 86 names[change.oldPropertyIndex] = str(oldProperty.name, "[-] "); |
| 87 break; |
| 88 case T.PropertyToggled: |
| 89 names[change.oldPropertyIndex] = str(oldProperty.name, "[T] "); |
| 90 break; |
| 91 case T.NameChanged: |
| 92 names[change.oldPropertyIndex] = str(oldProperty.name, "[M] "); |
| 93 break; |
| 94 case T.ValueChanged: |
| 95 values[change.oldPropertyIndex] = str(oldProperty.value, "[M] ")
; |
| 96 break; |
| 97 } |
| 98 } |
| 99 InspectorTest.addResult("Changes for rule: " + rule.selector); |
| 100 names = indent(names); |
| 101 for (var i = 0; i < names.length; ++i) |
| 102 InspectorTest.addResult(names[i] + ": " + values[i]); |
| 103 } |
| 104 |
| 105 function str(node, prefix) |
48 { | 106 { |
49 return lines.map(line => " " + line); | 107 prefix = prefix || ""; |
| 108 return prefix + node.text.trim(); |
50 } | 109 } |
51 } | 110 } |
52 | 111 |
53 InspectorTest.validateASTRanges = function(ast) | 112 InspectorTest.validateASTRanges = function(ast) |
54 { | 113 { |
55 var invalidNodes = []; | 114 var invalidNodes = []; |
56 for (var rule of ast.rules) { | 115 for (var rule of ast.rules) { |
57 for (var property of rule.properties) { | 116 for (var property of rule.properties) { |
58 validate(property.name); | 117 validate(property.name); |
59 validate(property.value); | 118 validate(property.value); |
(...skipping 30 matching lines...) Expand all Loading... |
90 | 149 |
91 InspectorTest.parseCSS = function(url, text) | 150 InspectorTest.parseCSS = function(url, text) |
92 { | 151 { |
93 if (!cssParser) | 152 if (!cssParser) |
94 cssParser = new WebInspector.CSSParser(); | 153 cssParser = new WebInspector.CSSParser(); |
95 return WebInspector.SASSSupport.parseCSS(cssParser, url, text); | 154 return WebInspector.SASSSupport.parseCSS(cssParser, url, text); |
96 } | 155 } |
97 | 156 |
98 } | 157 } |
99 | 158 |
OLD | NEW |