Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(537)

Side by Side Diff: third_party/WebKit/LayoutTests/inspector/sass/sass-test.js

Issue 1641893002: DevTools: [SASS] introduce workspace/cssModel adapter for SASS processor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove settimeout from test Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/sass/test-mapping-bad.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var initialize_SassTest = function() { 1 var initialize_SassTest = function() {
2 2
3 InspectorTest.preloadModule("sass"); 3 InspectorTest.preloadModule("sass");
4 4
5 InspectorTest.loadSourceMap = function(header, callback) 5 var sassWorkspaceAdapter = null;
6 InspectorTest.sassWorkspaceAdapter = function()
6 { 7 {
8 if (!sassWorkspaceAdapter)
9 sassWorkspaceAdapter = new WebInspector.SASSWorkspaceAdapter(InspectorTe st.cssModel, WebInspector.workspace, WebInspector.networkMapping);
10 return sassWorkspaceAdapter;
11 }
12
13 var cssParser = null;
14
15 InspectorTest.cssParser = function()
16 {
17 if (!cssParser)
18 cssParser = new WebInspector.CSSParser();
19 return cssParser;
20 }
21
22 InspectorTest.parseCSS = function(url, text)
23 {
24 return WebInspector.SASSSupport.parseCSS(InspectorTest.cssParser(), url, tex t);
25 }
26
27 InspectorTest.parseSCSS = function(url, text)
28 {
29 return self.runtime.instancePromise(WebInspector.TokenizerFactory)
30 .then(onTokenizer);
31
32 function onTokenizer(tokenizer)
33 {
34 return WebInspector.SASSSupport.parseSCSS(url, text, tokenizer);
35 }
36 }
37
38 InspectorTest.loadASTMapping = function(header, callback)
39 {
40 console.assert(header.cssModel() === InspectorTest.sassWorkspaceAdapter()._c ssModel, "The header could not be processed by main target workspaceAdapter");
41 var tokenizerFactory = null;
42 var sourceMap = null;
43
7 var completeSourceMapURL = WebInspector.ParsedURL.completeURL(header.sourceU RL, header.sourceMapURL); 44 var completeSourceMapURL = WebInspector.ParsedURL.completeURL(header.sourceU RL, header.sourceMapURL);
8 WebInspector.SourceMap.load(completeSourceMapURL, header.sourceURL, callback ); 45 WebInspector.SourceMap.load(completeSourceMapURL, header.sourceURL, onSource MapLoaded);
46
47 self.runtime.instancePromise(WebInspector.TokenizerFactory)
48 .then(tf => tokenizerFactory = tf)
49 .then(maybeStartLoading);
50
51 function onSourceMapLoaded(sm)
52 {
53 sourceMap = sm;
54 maybeStartLoading();
55 }
56
57 function maybeStartLoading()
58 {
59 if (!sourceMap || !tokenizerFactory)
60 return;
61 var client = InspectorTest.sassWorkspaceAdapter().trackSources(sourceMap );
62 WebInspector.SASSLiveSourceMap._loadMapping(client, InspectorTest.cssPar ser(), tokenizerFactory, sourceMap)
63 .then(callback)
64 .then(() => client.dispose())
65 }
9 } 66 }
10 67
11 InspectorTest.dumpAST = function(ast) 68 InspectorTest.dumpAST = function(ast)
12 { 69 {
13 var lines = [String.sprintf("=== AST === %s", ast.document.url)]; 70 var lines = [String.sprintf("=== AST === %s", ast.document.url)];
14 for (var i = 0; i < ast.rules.length; ++i) { 71 for (var i = 0; i < ast.rules.length; ++i) {
15 var rule = ast.rules[i]; 72 var rule = ast.rules[i];
16 lines.push(String.sprintf("rule %d: \"%s\"", i, rule.selector)); 73 lines.push(String.sprintf("rule %d: \"%s\"", i, rule.selector));
17 var ruleLines = dumpRule(rule); 74 var ruleLines = dumpRule(rule);
18 lines = lines.concat(indent(ruleLines)); 75 lines = lines.concat(indent(ruleLines));
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 } 190 }
134 return ast; 191 return ast;
135 192
136 function validate(textNode) 193 function validate(textNode)
137 { 194 {
138 if (textNode.range.extract(textNode.document.text) !== textNode.text) 195 if (textNode.range.extract(textNode.document.text) !== textNode.text)
139 invalidNodes.push(textNode); 196 invalidNodes.push(textNode);
140 } 197 }
141 } 198 }
142 199
143 InspectorTest.validateMapping = function(mapping, cssAST, sassModels) 200 InspectorTest.validateMapping = function(mapping)
144 { 201 {
145 InspectorTest.addResult("Mapped CSS: " + mapping._cssToSass.size); 202 InspectorTest.addResult("Mapped CSS: " + mapping._cssToSass.size);
146 InspectorTest.addResult("Mapped SCSS: " + mapping._sassToCss.size); 203 InspectorTest.addResult("Mapped SCSS: " + mapping._sassToCss.size);
147 var cssNodes = mapping._cssToSass.keysArray(); 204 var cssNodes = mapping._cssToSass.keysArray();
148 var staleCSS = 0; 205 var staleCSS = 0;
149 var staleSASS = 0; 206 var staleSASS = 0;
150 for (var i = 0; i < cssNodes.length; ++i) { 207 for (var i = 0; i < cssNodes.length; ++i) {
151 var cssNode = cssNodes[i]; 208 var cssNode = cssNodes[i];
152 staleCSS += cssNode.document !== cssAST.document ? 1 : 0; 209 staleCSS += cssNode.document !== mapping.cssAST().document ? 1 : 0;
153 var sassNode = mapping.toSASSNode(cssNode); 210 var sassNode = mapping.toSASSNode(cssNode);
154 var sassAST = sassModels.get(sassNode.document.url); 211 var sassAST = mapping.sassModels().get(sassNode.document.url);
155 staleSASS += sassNode.document !== sassAST.document ? 1 : 0; 212 staleSASS += sassNode.document !== sassAST.document ? 1 : 0;
156 } 213 }
157 if (staleCSS || staleSASS) { 214 if (staleCSS || staleSASS) {
158 InspectorTest.addResult("ERROR: found stale entries"); 215 InspectorTest.addResult("ERROR: found stale entries");
159 InspectorTest.addResult(" -stale CSS: " + staleCSS); 216 InspectorTest.addResult(" -stale CSS: " + staleCSS);
160 InspectorTest.addResult(" -stale SASS: " + staleSASS); 217 InspectorTest.addResult(" -stale SASS: " + staleSASS);
161 } else { 218 } else {
162 InspectorTest.addResult("No stale entries found."); 219 InspectorTest.addResult("No stale entries found.");
163 } 220 }
164 } 221 }
165 222
166 InspectorTest.parseSCSS = function(url, text) 223 InspectorTest.updateCSSText = function(url, newText)
167 { 224 {
168 return self.runtime.instancePromise(WebInspector.TokenizerFactory) 225 var styleSheetIds = InspectorTest.cssModel.styleSheetIdsForURL(url)
169 .then(onTokenizer); 226 var promises = styleSheetIds.map(id => InspectorTest.cssModel.setStyleSheetT ext(id, newText, true));
170 227 return Promise.all(promises);
171 function onTokenizer(tokenizer)
172 {
173 return WebInspector.SASSSupport.parseSCSS(url, text, tokenizer);
174 }
175 } 228 }
176 229
177 var cssParser = null; 230 InspectorTest.updateSASSText = function(url, newText)
178
179 InspectorTest.parseCSS = function(url, text)
180 { 231 {
181 if (!cssParser) 232 var uiSourceCode = WebInspector.workspace.uiSourceCodeForURL(url);
182 cssParser = new WebInspector.CSSParser(); 233 uiSourceCode.addRevision(newText);
183 return WebInspector.SASSSupport.parseCSS(cssParser, url, text);
184 } 234 }
185 235
186 } 236 }
187 237
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/sass/test-mapping-bad.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698