| <html> |
| <head> |
| <script src="../inspector-test.js"></script> |
| <script src="../debugger-test.js"></script> |
| <script src="../isolated-filesystem-test.js"></script> |
| <script src="./persistence-test.js"></script> |
| <script src="./resources/foo.js"></script> |
| <script> |
| |
| function test() |
| { |
| var testMapping = InspectorTest.initializeTestMapping(); |
| var fs = new InspectorTest.TestFileSystem("file:///var/www"); |
| var fsEntry = InspectorTest.addFooJSFile(fs); |
| var networkSourceFrame, fileSystemSourceFrame; |
| |
| InspectorTest.runTestSuite([ |
| function addFileSystem(next) |
| { |
| fs.reportCreated(next); |
| }, |
| |
| function openNetworkTab(next) |
| { |
| InspectorTest.waitForUISourceCode("foo.js", Workspace.projectTypes.Network) |
| .then(code => InspectorTest.showUISourceCodePromise(code)) |
| .then(onNetworkTab); |
| |
| function onNetworkTab(sourceFrame) |
| { |
| networkSourceFrame = sourceFrame; |
| networkSourceFrame.setSelection(new TextUtils.TextRange(2, 0, 2, 5)); |
| networkSourceFrame.scrollToLine(2); |
| dumpSourceFrame(networkSourceFrame); |
| next(); |
| } |
| }, |
| |
| function openFileSystemTab(next) |
| { |
| InspectorTest.waitForUISourceCode("foo.js", Workspace.projectTypes.FileSystem) |
| .then(code => InspectorTest.showUISourceCodePromise(code)) |
| .then(onFileSystemTab); |
| |
| function onFileSystemTab(sourceFrame) |
| { |
| fileSystemSourceFrame = sourceFrame; |
| fileSystemSourceFrame.setSelection(new TextUtils.TextRange(1, 0, 2, 5)); |
| fileSystemSourceFrame.scrollToLine(1); |
| dumpSourceFrame(fileSystemSourceFrame); |
| dumpEditorTabs(); |
| next(); |
| } |
| }, |
| |
| function addFileMapping(next) |
| { |
| testMapping.addBinding("foo.js"); |
| InspectorTest.waitForBinding("foo.js").then(onBindingCreated); |
| |
| function onBindingCreated() |
| { |
| dumpEditorTabs(); |
| dumpSourceFrame(fileSystemSourceFrame); |
| next(); |
| } |
| }, |
| |
| function removeFileMapping(next) |
| { |
| Persistence.persistence.addEventListener(Persistence.Persistence.Events.BindingRemoved, onBindingRemoved); |
| testMapping.removeBinding("foo.js") |
| |
| function onBindingRemoved(event) |
| { |
| var binding = event.data; |
| if (binding.network.name() !== "foo.js") |
| return |
| Persistence.persistence.removeEventListener(Persistence.Persistence.Events.BindingRemoved, onBindingRemoved); |
| dumpEditorTabs(); |
| dumpSourceFrame(fileSystemSourceFrame); |
| next(); |
| } |
| }, |
| ]); |
| |
| function dumpEditorTabs() |
| { |
| var editorContainer = UI.panels.sources._sourcesView._editorContainer; |
| var openedUISourceCodes = editorContainer._tabIds.keysArray(); |
| openedUISourceCodes.sort((a, b) => a.url().compareTo(b.url())); |
| InspectorTest.addResult("Opened tabs: "); |
| for (code of openedUISourceCodes) |
| InspectorTest.addResult(" " + code.url()); |
| } |
| |
| function dumpSourceFrame(sourceFrame) |
| { |
| InspectorTest.addResult("SourceFrame: " + sourceFrame._url); |
| InspectorTest.addResult(" selection: " + sourceFrame.selection()); |
| InspectorTest.addResult(" firstVisibleLine: " + sourceFrame.textEditor.firstVisibleLine()); |
| InspectorTest.addResult(" isDirty: " + sourceFrame.uiSourceCode().isDirty()); |
| } |
| }; |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Verify that tabs get merged when binding is added and removed.</p> |
| </body> |
| </html> |