3 <script src="inspector-test.js"></script>
4 <script src="debugger-test.js"></script>
5 <script src="workspace-test.js"></script>
12 var finalMappedLocation;
13 InspectorTest.createWorkspace();
14 var target = WebInspector.targetManager.mainTarget();
15 var cssModel = new WebInspector.CSSStyleModel(target);
16 target.cssModel = cssModel;
17 new WebInspector.CSSWorkspaceBinding.TargetInfo(target, InspectorTest.testWorkspace, InspectorTest.testNetworkWorkspaceBinding);
19 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(cssUISourceCodeAdded);
20 const styleSheetURL = "http://localhost:8000/inspector/resources/example.css";
21 const sourceMapURL = "example.css.map";
22 const styleSheetId = 1;
23 InspectorTest.addMockUISourceCodeToWorkspace(styleSheetURL, WebInspector.resourceTypes.Stylesheet, "");
25 InspectorTest.addSniffer(WebInspector.CSSWorkspaceBinding.prototype, "updateLocations", locationsUpdated, true);
26 cssModel._styleSheetAdded(createMockStyleSheetHeader(styleSheetURL, sourceMapURL));
28 function locationsUpdated()
30 var uiLocation = WebInspector.cssWorkspaceBinding.rawLocationToUILocation(new WebInspector.CSSLocation(target, styleSheetId, styleSheetURL, 2, 3));
31 if (uiLocation.uiSourceCode.url.indexOf(".scss") === -1)
33 finalMappedLocation = uiLocation.uiSourceCode.url + ":" + uiLocation.lineNumber + ":" + uiLocation.columnNumber;
38 function createMockStyleSheetHeader(url, sourceMapURL)
40 const frame = WebInspector.resourceTreeModel.mainFrame;
42 styleSheetId: styleSheetId,
45 sourceMapURL: sourceMapURL,
52 function createMockStyleSheetResource(url, mimeType, content)
54 const documentURL = "http://localhost:8000/inspector/stylesheet-source-mapping.html";
55 const frame = WebInspector.resourceTreeModel.mainFrame;
56 var resource = new WebInspector.Resource(WebInspector.resourceTreeModel.target(), null, url, documentURL, frame.id, frame.loaderId, WebInspector.resourceTypes.Stylesheet, mimeType);
57 resource.requestContent = function(callback)
59 callback(content, false, mimeType);
65 function cssUISourceCodeAdded(uiSourceCode)
67 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(scssUISourceCodeAdded);
70 function scssUISourceCodeAdded(uiSourceCode)
72 afterStyleSheetAdded();
75 function rawLocationToUILocation(line, column)
77 return WebInspector.cssWorkspaceBinding.rawLocationToUILocation(new WebInspector.CSSLocation(target, styleSheetId, styleSheetURL, line, column));
80 function afterStyleSheetAdded()
82 var cssUISourceCode = InspectorTest.testWorkspace.uiSourceCodeForOriginURL(styleSheetURL);
83 var scssUISourceCode = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/example.scss");
85 InspectorTest.checkUILocation(cssUISourceCode, 0, 3, rawLocationToUILocation(0, 3));
86 InspectorTest.checkUILocation(scssUISourceCode, 1, 0, rawLocationToUILocation(1, 0));
87 InspectorTest.checkUILocation(scssUISourceCode, 2, 2, rawLocationToUILocation(2, 4));
88 InspectorTest.checkUILocation(scssUISourceCode, 2, 5, rawLocationToUILocation(2, 6));
89 InspectorTest.checkUILocation(scssUISourceCode, 2, 7, rawLocationToUILocation(2, 9));
90 InspectorTest.checkUILocation(scssUISourceCode, 2, 10, rawLocationToUILocation(3, 7));
91 InspectorTest.checkUILocation(scssUISourceCode, 4, 2, rawLocationToUILocation(4, 8));
92 InspectorTest.checkUILocation(scssUISourceCode, 4, 2, rawLocationToUILocation(4, 10));
93 InspectorTest.checkUILocation(scssUISourceCode, 4, 11, rawLocationToUILocation(4, 11));
94 InspectorTest.checkUILocation(scssUISourceCode, 4, 13, rawLocationToUILocation(4, 15));
95 InspectorTest.checkUILocation(scssUISourceCode, 4, 17, rawLocationToUILocation(4, 20));
96 scssUISourceCode.requestContent(didRequestContent);
98 function didRequestContent(content, contentEncoded, mimeType)
100 InspectorTest.assertEquals(0, content.indexOf("/* Comment */"));
101 contentReceived = true;
108 if (!contentReceived || !finalMappedLocation)
110 InspectorTest.addResult("UILocation upon LiveLocation update: " + finalMappedLocation);
111 InspectorTest.completeTest();
119 <body onload="runTest()">
120 <p>Tests SourceMap and StyleSheetMapping.</p>