| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../http/tests/inspector/inspector-test.js"></script> |
| 4 <script src="../../http/tests/inspector/elements-test.js"></script> | 4 <script src="../../http/tests/inspector/elements-test.js"></script> |
| 5 <script src="./sass-test.js"></script> | 5 <script src="./sass-test.js"></script> |
| 6 <style> | 6 <style> |
| 7 pre { | 7 pre { |
| 8 font-family: monospace; | 8 font-family: monospace; |
| 9 } | 9 } |
| 10 </style> | 10 </style> |
| 11 <script> | 11 <script> |
| 12 | 12 |
| 13 function test() | 13 function test() |
| 14 { | 14 { |
| 15 InspectorTest.evaluateInPagePromise("getSASS()") | 15 InspectorTest.evaluateInPagePromise("getSASS()") |
| 16 .then(result => InspectorTest.parseSCSS("", result.value)) | 16 .then(result => InspectorTest.parseSCSS("", result.value)) |
| 17 .then(ast => onAST(ast)) | 17 .then(ast => onAST(ast)) |
| 18 .then(() => InspectorTest.completeTest()); | 18 .then(() => InspectorTest.completeTest()); |
| 19 | 19 |
| 20 function onAST(ast) | 20 function onAST(ast) |
| 21 { | 21 { |
| 22 var text = ast.document.text; | 22 var text = ast.document.text; |
| 23 var offsetToNode = new Map(); | 23 var offsetToNode = new Map(); |
| 24 ast.visit(onNode); | 24 ast.visit(onNode); |
| 25 | 25 |
| 26 function onNode(node) | 26 function onNode(node) |
| 27 { | 27 { |
| 28 if (!(node instanceof WebInspector.SASSSupport.TextNode)) | 28 if (!(node instanceof Sass.SASSSupport.TextNode)) |
| 29 return; | 29 return; |
| 30 var startOffset = text.offsetFromPosition(node.range.startLine, node
.range.startColumn); | 30 var startOffset = text.offsetFromPosition(node.range.startLine, node
.range.startColumn); |
| 31 var endOffset = text.offsetFromPosition(node.range.endLine, node.ran
ge.endColumn); | 31 var endOffset = text.offsetFromPosition(node.range.endLine, node.ran
ge.endColumn); |
| 32 for (var i = startOffset; i <= endOffset; ++i) | 32 for (var i = startOffset; i <= endOffset; ++i) |
| 33 offsetToNode.set(i, node); | 33 offsetToNode.set(i, node); |
| 34 } | 34 } |
| 35 | 35 |
| 36 var cursor = new WebInspector.TextCursor(text.lineEndings()); | 36 var cursor = new Common.TextCursor(text.lineEndings()); |
| 37 for (var i = 0; i < text.value().length; ++i) { | 37 for (var i = 0; i < text.value().length; ++i) { |
| 38 var canonical = offsetToNode.get(i) || null; | 38 var canonical = offsetToNode.get(i) || null; |
| 39 cursor.advance(i); | 39 cursor.advance(i); |
| 40 var fastSearch = ast.findNodeForPosition(cursor.lineNumber(), cursor
.columnNumber()); | 40 var fastSearch = ast.findNodeForPosition(cursor.lineNumber(), cursor
.columnNumber()); |
| 41 if (fastSearch !== canonical) { | 41 if (fastSearch !== canonical) { |
| 42 InspectorTest.addResult("Results differ for offset " + i); | 42 InspectorTest.addResult("Results differ for offset " + i); |
| 43 return; | 43 return; |
| 44 } | 44 } |
| 45 } | 45 } |
| 46 InspectorTest.addResult("All nodes found correctly."); | 46 InspectorTest.addResult("All nodes found correctly."); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 74 #test::before { | 74 #test::before { |
| 75 margin: 10px 10px; | 75 margin: 10px 10px; |
| 76 content: "test me"; | 76 content: "test me"; |
| 77 /* border: 1px solid black; */ | 77 /* border: 1px solid black; */ |
| 78 } | 78 } |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 </pre> | 81 </pre> |
| 82 </body> | 82 </body> |
| 83 </html> | 83 </html> |
| OLD | NEW |