3 <script src="../../inspector-test.js"></script>
4 <script src="../../isolated-filesystem-test.js"></script>
5 <script src="../../workspace-test.js"></script>
13 var fileSystemPath = "/var/www";
14 var fileSystemProjectId = WebInspector.FileSystemWorkspaceBinding.projectId(fileSystemPath);
16 function addMockHeader(sourceURL, sourceMapURL)
18 cssModel._styleSheetAdded({
22 sourceMapURL: sourceMapURL,
32 function uiSourceCodeAdded(uiSourceCode) { }
34 function dumpFileSystemUISourceCodesMappings()
36 var uiSourceCodes = InspectorTest.testWorkspace.project(fileSystemProjectId).uiSourceCodes();
37 InspectorTest.addResult("UISourceCode uri to url mappings:");
38 for (var i = 0; i < uiSourceCodes.length; ++i)
39 InspectorTest.addResult(" " + uiSourceCodes[i].uri() + " -> " + uiSourceCodes[i].url);
42 function fileSystemAdded(event)
44 fileSystem = event.data;
47 function updateDelegate()
49 InspectorTest.addResult("LiveLocation updated:");
52 function dumpLiveLocation()
54 var uiLocation = liveLocation.uiLocation();
56 InspectorTest.addResult("Null uiLocation");
59 InspectorTest.addResult(uiLocation.uiSourceCode.url + ":" + uiLocation.lineNumber + ":" + uiLocation.columnNumber);
62 InspectorTest.createWorkspace();
63 manager = InspectorTest.createIsolatedFileSystemManager(InspectorTest.testWorkspace, InspectorTest.testFileSystemMapping);
64 cssModel = new WebInspector.CSSStyleModel(WebInspector.targetManager.activeTarget(), InspectorTest.testWorkspace);
65 WebInspector.targetManager.activeTarget().cssModel = cssModel;
66 new WebInspector.CSSStyleSheetMapping(cssModel, InspectorTest.testWorkspace, InspectorTest.testNetworkWorkspaceBinding);
68 var resourcesURL = WebInspector.ParsedURL.completeURL(WebInspector.resourceTreeModel.inspectedPageURL(), "resources/");
69 var namePrefix = "update-locations-on-filesystem-scss-load."
70 var cssURL = resourcesURL + namePrefix + "css";
71 var scssURL = resourcesURL + namePrefix + "scss";
72 var cssLocation = new WebInspector.CSSLocation(WebInspector.targetManager.activeTarget(), cssURL, 0, 1);
83 " font-size: 12px; }"].join("\n");
86 files["/" + namePrefix + "css"] = cssContent;
87 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded, 4);
88 InspectorTest.addResult("Adding file system.");
89 manager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystemAdded, this);
90 manager.addMockFileSystem(fileSystemPath);
91 InspectorTest.testFileSystemMapping.addFileMapping(fileSystemPath, resourcesURL, "/");
92 manager.addFiles(fileSystemPath, files);
94 InspectorTest.addSniffer(WebInspector.SASSSourceMapping.prototype, "_bindUISourceCode", afterBind);
96 InspectorTest.addResult("Adding stylesheet header.");
97 addMockHeader(cssURL, cssURL + ".map");
98 InspectorTest.addResult("Adding network resource.");
99 InspectorTest.addMockUISourceCodeToWorkspace(cssURL, WebInspector.resourceTypes.Stylesheet, cssContent);
100 liveLocation = cssLocation.createLiveLocation("1", updateDelegate);
103 InspectorTest.addResult("Adding filesystem SCSS.");
104 var scssPath = namePrefix + "scss";
105 fileSystem.setFileContent(scssPath, scssContent, function() {});
106 InspectorTest.addMockUISourceCodeToWorkspace(scssURL, WebInspector.resourceTypes.Stylesheet, scssContent);
107 manager.fileSystemWorkspaceBinding._boundFileSystems.get(fileSystemPath)._addFile(scssPath);
112 InspectorTest.completeTest();
117 <body onload="runTest()">
118 <p>Tests that stylesheet LiveLocations are updated when an SCSS file is added from the filesystem.</p>