Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <html> | |
| 2 <head> | |
| 3 | |
| 4 <script src="../../http/tests/inspector/inspector-test.js"></script> | |
| 5 <script src="../../http/tests/inspector/debugger-test.js"></script> | |
| 6 <script src="../../http/tests/inspector/isolated-filesystem-test.js"></script> | |
| 7 <script src="./sass-test.js"></script> | |
| 8 <script> | |
| 9 | |
| 10 var styles = []; | |
| 11 function addStyleSheets() | |
| 12 { | |
| 13 for (var i = 0; i < 2; ++i) { | |
| 14 var style = document.createElement("style"); | |
| 15 style.textContent = "<all.css content>\n/*# sourceURL=all.css */"; | |
| 16 document.head.appendChild(style); | |
| 17 styles.push(style); | |
| 18 } | |
| 19 | |
| 20 var style = document.createElement("style"); | |
| 21 style.textContent = "<print.css content>\n/*# sourceURL=print.css */"; | |
| 22 document.head.appendChild(style); | |
| 23 styles.push(style); | |
| 24 } | |
| 25 | |
| 26 function removeStyles() | |
| 27 { | |
| 28 for (var style of styles) | |
| 29 style.remove(); | |
| 30 } | |
| 31 | |
| 32 function test() | |
| 33 { | |
| 34 setTimeout(InspectorTest.completeTest, 2000); | |
|
dgozman
2016/01/28 01:11:52
remove
| |
| 35 function createTracker(trackerName, cssURL, sassURLs) | |
| 36 { | |
| 37 var sources = sassURLs; | |
| 38 var fakeSourceMap = { | |
| 39 sources: () => sources, | |
| 40 compiledURL: () => cssURL | |
| 41 }; | |
| 42 var tracker = InspectorTest.sassWorkspaceAdapter().trackSources(fakeSour ceMap); | |
| 43 tracker.__NAME = trackerName; | |
| 44 tracker.addEventListener(WebInspector.SourceMapTracker.Events.SourceChan ged, onSourceChanged); | |
| 45 tracker.addEventListener(WebInspector.SourceMapTracker.Events.TrackingSt opped, onTrackingStopped); | |
| 46 return tracker; | |
| 47 | |
| 48 function onSourceChanged(event) | |
| 49 { | |
| 50 InspectorTest.addResult(" -- " + event.target.__NAME + " -- SourceCh anged event: " + event.data); | |
| 51 } | |
| 52 | |
| 53 function onTrackingStopped(event) | |
| 54 { | |
| 55 InspectorTest.addResult(" -- " + event.target.__NAME + " -- Tracking Stopped"); | |
| 56 } | |
| 57 } | |
| 58 | |
| 59 var fileSystemPrefix = "file:///var/www"; | |
| 60 var css1 = "all.css"; | |
| 61 var css2 = "print.css"; | |
| 62 var sass1 = fileSystemPrefix + "/a.scss"; | |
| 63 var sass2 = fileSystemPrefix + "/b.scss"; | |
| 64 var sassCommon = fileSystemPrefix + "/common.scss"; | |
| 65 var tracker1 = createTracker("TRACKER 1", css1, [sass1, sassCommon]); | |
| 66 var tracker2 = createTracker("TRACKER 2", css2, [sass2, sassCommon]); | |
| 67 | |
| 68 InspectorTest.runTestSuite([ | |
| 69 function loadFileSystemResources(next) | |
| 70 { | |
| 71 var fs = new InspectorTest.TestFileSystem(fileSystemPrefix); | |
| 72 fs.addFileMapping(fileSystemPrefix, "/"); | |
| 73 fs.root.addFile("common.scss", "<common.scss content>"); | |
| 74 fs.root.addFile("a.scss", "<a.scss content>"); | |
| 75 fs.root.addFile("b.scss", "<b.scss content>"); | |
| 76 fs.reportCreated(next); | |
| 77 }, | |
| 78 | |
| 79 function loadCSSResources(next) | |
| 80 { | |
| 81 InspectorTest.evaluateInPage("addStyleSheets()", next); | |
| 82 }, | |
| 83 | |
| 84 function mutateCSS(next) | |
| 85 { | |
| 86 InspectorTest.updateCSSText(css1, "<all.css update 1>") | |
| 87 .then(checkOutdated) | |
| 88 .then(() => InspectorTest.updateCSSText(css2, "<print.css update 1>")) | |
| 89 .then(checkOutdated) | |
| 90 .then(() => requestContent([css1], [css2])) | |
| 91 .then(checkOutdated) | |
| 92 .then(next); | |
| 93 }, | |
| 94 | |
| 95 function mutateSASS(next) | |
| 96 { | |
| 97 InspectorTest.updateSASSText(sass1, "<a.scss update 1>"); | |
| 98 checkOutdated(); | |
| 99 InspectorTest.updateSASSText(sass2, "<b.scss update 1>"); | |
| 100 checkOutdated(); | |
| 101 requestContent([sass1], [sass2]) | |
| 102 .then(checkOutdated) | |
| 103 .then(next); | |
| 104 }, | |
| 105 | |
| 106 function mutateSASSCommon(next) | |
| 107 { | |
| 108 InspectorTest.updateSASSText(sassCommon, "<common.scss update 1>"); | |
| 109 checkOutdated(); | |
| 110 requestContent([sassCommon], [sassCommon]) | |
| 111 .then(checkOutdated) | |
| 112 .then(next); | |
| 113 }, | |
| 114 | |
| 115 function clientSetCSS(next) | |
| 116 { | |
| 117 var result = tracker1.setCSSText("<all.css TRACKER 1>", []); | |
| 118 InspectorTest.addResult("tracker1.setCSSText result: " + result); | |
| 119 var result = tracker2.setCSSText("<print.css TRACKER 2>", []); | |
| 120 InspectorTest.addResult("tracker2.setCSSText result: " + result); | |
| 121 requestContent([css1], [css2]) | |
| 122 .then(next); | |
| 123 }, | |
| 124 | |
| 125 function trackerSetSASSCommon(next) | |
| 126 { | |
| 127 var result = tracker1.setSASSText(sassCommon, "<common.scss TRACKER 1>"); | |
| 128 InspectorTest.addResult("tracker1.setSASSText result: " + result); | |
| 129 awaitSourceChanges(tracker2, sassCommon) | |
| 130 .then(checkOutdated) | |
| 131 .then(next); | |
| 132 }, | |
| 133 | |
| 134 function removeStyleSheets(next) | |
| 135 { | |
| 136 InspectorTest.evaluateInPage("removeStyles()", next); | |
| 137 }, | |
| 138 ]); | |
| 139 | |
| 140 function awaitSourceChanges(tracker, url) | |
| 141 { | |
| 142 var callback; | |
| 143 var promise = new Promise(fulfill => callback = fulfill); | |
| 144 tracker.addEventListener(WebInspector.SourceMapTracker.Events.SourceChan ged, onSourceChanged); | |
| 145 return promise; | |
| 146 | |
| 147 function onSourceChanged(event) | |
| 148 { | |
| 149 if (event.data !== url) | |
| 150 return; | |
| 151 tracker.removeEventListener(WebInspector.SourceMapTracker.Events.Sou rceChanged, onSourceChanged); | |
| 152 callback(); | |
| 153 } | |
| 154 } | |
| 155 | |
| 156 function checkOutdated() | |
| 157 { | |
| 158 InspectorTest.addResult("== Outdated =="); | |
| 159 InspectorTest.addResult(tracker1.__NAME + ": " + tracker1.isOutdated()); | |
| 160 InspectorTest.addResult(tracker2.__NAME + ": " + tracker2.isOutdated()); | |
| 161 } | |
| 162 | |
| 163 function requestContent(urls1, urls2) | |
| 164 { | |
| 165 InspectorTest.addResult("== Contents =="); | |
| 166 urls1 = urls1 || []; | |
| 167 urls2 = urls2 || []; | |
| 168 var onContent = (url, content) => InspectorTest.addResult("content of " + url + ": " + content); | |
| 169 var promises = []; | |
| 170 for (var url of urls1) | |
| 171 promises.push(tracker1.content(url).then(text => onContent(url, text ))); | |
| 172 for (var url of urls2) | |
| 173 promises.push(tracker2.content(url).then(text => onContent(url, text ))); | |
| 174 return Promise.all(promises); | |
| 175 } | |
| 176 } | |
| 177 | |
| 178 </script> | |
| 179 | |
| 180 </head> | |
| 181 | |
| 182 <body onload="runTest()"> | |
| 183 <p>Verify SourceMapTracker functionality.</p> | |
| 184 </body> | |
| 185 </html> | |
| OLD | NEW |