Index: LayoutTests/http/tests/inspector/compiler-script-mapping.html |
diff --git a/LayoutTests/http/tests/inspector/compiler-script-mapping.html b/LayoutTests/http/tests/inspector/compiler-script-mapping.html |
index ac3016a4601f1a64ab96e89e665e5f24438d7eab..68fe21997870d3f25f838921286082ea28c329bc 100644 |
--- a/LayoutTests/http/tests/inspector/compiler-script-mapping.html |
+++ b/LayoutTests/http/tests/inspector/compiler-script-mapping.html |
@@ -3,21 +3,47 @@ |
<script src="inspector-test.js"></script> |
<script src="debugger-test.js"></script> |
<script src="workspace-test.js"></script> |
+<script src="breakpoint-manager-test.js"></script> |
<script> |
-function test() |
-{ |
- var defaultScriptMapping; |
- var resourceScriptMapping; |
- var target = WebInspector.debuggerModel.target(); |
- function createCompilerScriptMapping() |
+function test() { |
+ var mockTargetId = 1; |
+ var MockTarget = function(name, connection, callback) |
+ { |
+ WebInspector.Target.call(this, name, connection, callback); |
+ } |
+ MockTarget.prototype = { |
+ _loadedWithCapabilities: function(callback) |
+ { |
+ this.debuggerModel = new WebInspector.DebuggerModel(this); |
+ this.resourceTreeModel = WebInspector.targetManager.mainTarget().resourceTreeModel; |
vsevik
2014/08/04 09:05:14
Is this redundant?
apavlov
2014/08/04 10:04:34
Nope
|
+ if (callback) |
+ callback(); |
+ }, |
+ |
+ __proto__: WebInspector.Target.prototype |
+ } |
+ |
+ function createMockTarget(userCallback) |
+ { |
+ var target = new MockTarget("mock-target-" + (mockTargetId++), new InspectorBackendClass.StubConnection(), callback); |
+ function callback() |
+ { |
+ InspectorTest.testTargetManager.addTarget(target); |
+ userCallback(target); |
+ } |
+ } |
+ |
+ function createWorkspaceWithTarget(userCallback) |
{ |
InspectorTest.createWorkspace(); |
- var compilerScriptMapping = new WebInspector.CompilerScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace, InspectorTest.testNetworkWorkspaceBinding); |
- resourceScriptMapping = new WebInspector.ResourceScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace); |
- defaultScriptMapping = new WebInspector.DefaultScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace); |
- return compilerScriptMapping; |
+ createMockTarget(callback); |
+ function callback(target) |
+ { |
+ target.resourceTreeModel = WebInspector.targetManager.mainTarget().resourceTreeModel; |
vsevik
2014/08/04 09:05:14
Or this?
apavlov
2014/08/04 10:04:34
Yep
|
+ userCallback(target); |
+ } |
} |
function checkMapping(compiledLineNumber, compiledColumnNumber, sourceURL, sourceLineNumber, sourceColumnNumber, mapping) |
@@ -38,12 +64,13 @@ function test() |
function uiLocation(script, line, column) |
{ |
var location = script.target().debuggerModel.createRawLocation(script, line, column); |
- return WebInspector.debuggerWorkspaceBinding.rawLocationToUILocation(location); |
+ return InspectorTest.testDebuggerWorkspaceBinding.rawLocationToUILocation(location); |
} |
function resetModels() |
{ |
- WebInspector.debuggerModel._reset(); |
+ target.debuggerModel._reset(); |
+ InspectorTest.testDebuggerWorkspaceBinding._reset(target); |
} |
InspectorTest.runTestSuite([ |
@@ -204,201 +231,200 @@ function test() |
function testCompilerScriptMapping(next) |
{ |
var script; |
- resetModels(); |
- var mapping = createCompilerScriptMapping(); |
- var originalUISourceCode; |
- step1(); |
+ createWorkspaceWithTarget(function(target) { |
vsevik
2014/08/04 09:05:14
Let's use a name function instead, so that we need
apavlov
2014/08/04 10:04:34
Done.
|
+ var originalUISourceCode; |
+ step1(); |
- function step1() |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
- script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, ""); |
- script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json"; |
- defaultScriptMapping.addScript(script); |
- resourceScriptMapping.addScript(script); |
- mapping.addScript(script); |
- } |
+ function step1() |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
+ script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, "", target, function(script) { |
+ script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json"; |
+ }); |
+ InspectorTest.testDebuggerWorkspaceBinding._targetToData.get(target)._parsedScriptSource({ data: script }); |
+ } |
- function originalUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalResourceUISourceCodeAdded); |
- InspectorTest.addMockUISourceCodeToWorkspace("compiled.js", WebInspector.resourceTypes.Script, ""); |
- } |
+ function originalUISourceCodeAdded(uiSourceCode) |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalResourceUISourceCodeAdded); |
+ InspectorTest.addMockUISourceCodeToWorkspace("compiled.js", WebInspector.resourceTypes.Script, ""); |
+ } |
- function originalResourceUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(firstUISourceCodeAdded); |
- originalUISourceCode = uiSourceCode; |
- } |
+ function originalResourceUISourceCodeAdded(uiSourceCode) |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(firstUISourceCodeAdded); |
+ originalUISourceCode = uiSourceCode; |
+ } |
- function firstUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(secondUISourceCodeAdded); |
- } |
+ function firstUISourceCodeAdded(uiSourceCode) |
+ { |
+ if (!uiSourceCode.url) { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(firstUISourceCodeAdded); |
+ return; |
+ } |
- function secondUISourceCodeAdded(uiSourceCode) |
- { |
- afterScriptAdded(); |
- } |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(secondUISourceCodeAdded); |
+ } |
- function afterScriptAdded(uiSourceCode) |
- { |
- var uiSourceCode1 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source1.js"); |
- var uiSourceCode2 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source2.js"); |
+ function secondUISourceCodeAdded(uiSourceCode) |
+ { |
+ if (!uiSourceCode.url) { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(secondUISourceCodeAdded); |
+ return; |
+ } |
+ afterScriptAdded(); |
+ } |
- InspectorTest.checkUILocation(uiSourceCode1, 4, 4, uiLocation(script, 0, 81)); |
- InspectorTest.checkUILocation(uiSourceCode1, 5, 4, uiLocation(script, 0, 93)); |
- InspectorTest.checkUILocation(uiSourceCode2, 7, 4, uiLocation(script, 1, 151)); |
- InspectorTest.checkUILocation(originalUISourceCode, 1, 200, uiLocation(script, 1, 200)); |
+ function afterScriptAdded(uiSourceCode) |
+ { |
+ var uiSourceCode1 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source1.js"); |
+ var uiSourceCode2 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source2.js"); |
- InspectorTest.checkRawLocation(script, 0, 42, uiSourceCode1.uiLocationToRawLocation(target, 3, 10)); |
- InspectorTest.checkRawLocation(script, 1, 85, uiSourceCode2.uiLocationToRawLocation(target, 0, 0)); |
- InspectorTest.checkRawLocation(script, 1, 110, uiSourceCode2.uiLocationToRawLocation(target, 5, 2)); |
+ InspectorTest.checkUILocation(uiSourceCode1, 4, 4, uiLocation(script, 0, 81)); |
+ InspectorTest.checkUILocation(uiSourceCode1, 5, 4, uiLocation(script, 0, 93)); |
+ InspectorTest.checkUILocation(uiSourceCode2, 7, 4, uiLocation(script, 1, 151)); |
+ InspectorTest.checkUILocation(originalUISourceCode, 1, 200, uiLocation(script, 1, 200)); |
- uiSourceCode1.requestContent(didRequestContent1); |
+ InspectorTest.checkRawLocation(script, 0, 42, uiSourceCode1.uiLocationToRawLocation(target, 3, 10)); |
+ InspectorTest.checkRawLocation(script, 1, 85, uiSourceCode2.uiLocationToRawLocation(target, 0, 0)); |
+ InspectorTest.checkRawLocation(script, 1, 110, uiSourceCode2.uiLocationToRawLocation(target, 5, 2)); |
- function didRequestContent1(content, contentEncoded, mimeType) |
- { |
- InspectorTest.assertEquals(0, content.indexOf("window.addEventListener")); |
- uiSourceCode2.requestContent(didRequestContent2); |
- } |
+ uiSourceCode1.requestContent(didRequestContent1); |
- function didRequestContent2(content, contentEncoded, mimeType) |
- { |
- InspectorTest.assertEquals(0, content.indexOf("function ClickHandler()")); |
- next(); |
+ function didRequestContent1(content, contentEncoded, mimeType) |
+ { |
+ InspectorTest.assertEquals(0, content.indexOf("window.addEventListener")); |
+ uiSourceCode2.requestContent(didRequestContent2); |
+ } |
+ |
+ function didRequestContent2(content, contentEncoded, mimeType) |
+ { |
+ InspectorTest.assertEquals(0, content.indexOf("function ClickHandler()")); |
+ next(); |
+ } |
} |
- } |
+ }); |
}, |
function testCompilerScriptMappingWhenResourceWasLoadedAfterSource(next) |
{ |
var script; |
- resetModels(); |
- var mapping = createCompilerScriptMapping(); |
var originalUISourceCode; |
- step1(); |
- |
- function step1() |
- { |
+ createWorkspaceWithTarget(function(target) { |
vsevik
2014/08/04 09:05:14
ditto
apavlov
2014/08/04 10:04:34
Done.
|
InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(function() { }); |
- script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, ""); |
- script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json"; |
- defaultScriptMapping.addScript(script); |
- resourceScriptMapping.addScript(script); |
- mapping.addScript(script); |
+ script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, "", target, function(script) { |
+ script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json"; |
+ }); |
+ InspectorTest.testDebuggerWorkspaceBinding._targetToData.get(target)._parsedScriptSource({ data: script }); |
InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalResourceUISourceCodeAdded); |
InspectorTest.addMockUISourceCodeToWorkspace("compiled.js", WebInspector.resourceTypes.Script, ""); |
InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(firstUISourceCodeAdded); |
- } |
- function originalResourceUISourceCodeAdded(uiSourceCode) |
- { |
- originalUISourceCode = uiSourceCode; |
- } |
+ function originalResourceUISourceCodeAdded(uiSourceCode) |
+ { |
+ originalUISourceCode = uiSourceCode; |
+ } |
- function firstUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(secondUISourceCodeAdded); |
- } |
+ function firstUISourceCodeAdded(uiSourceCode) |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(secondUISourceCodeAdded); |
+ } |
- function secondUISourceCodeAdded(uiSourceCode) |
- { |
- afterScriptAdded(); |
- } |
+ function secondUISourceCodeAdded(uiSourceCode) |
+ { |
+ afterScriptAdded(); |
+ } |
- function afterScriptAdded(uiSourceCode) |
- { |
- var uiSourceCode1 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source1.js"); |
- var uiSourceCode2 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source2.js"); |
+ function afterScriptAdded(uiSourceCode) |
+ { |
+ var uiSourceCode1 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source1.js"); |
+ var uiSourceCode2 = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://localhost:8000/inspector/resources/source2.js"); |
- InspectorTest.checkUILocation(uiSourceCode1, 4, 4, uiLocation(script, 0, 81)); |
- InspectorTest.checkUILocation(uiSourceCode1, 5, 4, uiLocation(script, 0, 93)); |
- InspectorTest.checkUILocation(uiSourceCode2, 7, 4, uiLocation(script, 1, 151)); |
- InspectorTest.checkUILocation(originalUISourceCode, 1, 200, uiLocation(script, 1, 200)); |
+ InspectorTest.checkUILocation(uiSourceCode1, 4, 4, uiLocation(script, 0, 81)); |
+ InspectorTest.checkUILocation(uiSourceCode1, 5, 4, uiLocation(script, 0, 93)); |
+ InspectorTest.checkUILocation(uiSourceCode2, 7, 4, uiLocation(script, 1, 151)); |
+ InspectorTest.checkUILocation(originalUISourceCode, 1, 200, uiLocation(script, 1, 200)); |
- InspectorTest.checkRawLocation(script, 0, 42, uiSourceCode1.uiLocationToRawLocation(target, 3, 10)); |
- InspectorTest.checkRawLocation(script, 1, 85, uiSourceCode2.uiLocationToRawLocation(target, 0, 0)); |
- InspectorTest.checkRawLocation(script, 1, 110, uiSourceCode2.uiLocationToRawLocation(target, 5, 2)); |
+ InspectorTest.checkRawLocation(script, 0, 42, uiSourceCode1.uiLocationToRawLocation(target, 3, 10)); |
+ InspectorTest.checkRawLocation(script, 1, 85, uiSourceCode2.uiLocationToRawLocation(target, 0, 0)); |
+ InspectorTest.checkRawLocation(script, 1, 110, uiSourceCode2.uiLocationToRawLocation(target, 5, 2)); |
- uiSourceCode1.requestContent(didRequestContent1); |
+ uiSourceCode1.requestContent(didRequestContent1); |
- function didRequestContent1(content, contentEncoded, mimeType) |
- { |
- InspectorTest.assertEquals(0, content.indexOf("window.addEventListener")); |
- uiSourceCode2.requestContent(didRequestContent2); |
- } |
+ function didRequestContent1(content, contentEncoded, mimeType) |
+ { |
+ InspectorTest.assertEquals(0, content.indexOf("window.addEventListener")); |
+ uiSourceCode2.requestContent(didRequestContent2); |
+ } |
- function didRequestContent2(content, contentEncoded, mimeType) |
- { |
- InspectorTest.assertEquals(0, content.indexOf("function ClickHandler()")); |
- next(); |
+ function didRequestContent2(content, contentEncoded, mimeType) |
+ { |
+ InspectorTest.assertEquals(0, content.indexOf("function ClickHandler()")); |
+ next(); |
+ } |
} |
- } |
+ }); |
}, |
function testInlinedSourceMap(next) |
{ |
- resetModels(); |
- var mapping = createCompilerScriptMapping(); |
- var script = InspectorTest.createScriptMock("http://example.com/compiled.js", 0, 0, true, ""); |
- var sourceMap = { |
- "file":"compiled.js", |
- "mappings":"AAASA,QAAAA,IAAG,CAACC,CAAD,CAAaC,CAAb,CACZ,CACI,MAAOD,EAAP,CAAoBC,CADxB,CAIA,IAAIC,OAAS;", |
- "sources":["source.js"], |
- "sourcesContent":["<source content>"] |
- }; |
- script.sourceMapURL = "data:application/json;base64," + btoa(JSON.stringify(sourceMap)); |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(compiledUISourceCodeAdded); |
- defaultScriptMapping.addScript(script); |
- resourceScriptMapping.addScript(script); |
- mapping.addScript(script); |
- |
- function compiledUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
- } |
+ createWorkspaceWithTarget(function(target) { |
vsevik
2014/08/04 09:05:14
ditto
apavlov
2014/08/04 10:04:34
Done.
|
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(compiledUISourceCodeAdded); |
+ var script = InspectorTest.createScriptMock("http://example.com/compiled.js", 0, 0, true, "", target, function(script) { |
+ var sourceMap = { |
+ "file":"compiled.js", |
+ "mappings":"AAASA,QAAAA,IAAG,CAACC,CAAD,CAAaC,CAAb,CACZ,CACI,MAAOD,EAAP,CAAoBC,CADxB,CAIA,IAAIC,OAAS;", |
+ "sources":["source.js"], |
+ "sourcesContent":["<source content>"] |
+ }; |
+ script.sourceMapURL = "data:application/json;base64," + btoa(JSON.stringify(sourceMap)); |
+ }); |
+ InspectorTest.testDebuggerWorkspaceBinding._targetToData.get(target)._parsedScriptSource({ data: script }); |
+ |
+ function compiledUISourceCodeAdded(uiSourceCode) |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
+ } |
- function originalUISourceCodeAdded(uiSourceCode) |
- { |
- var uiSourceCode = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://example.com/source.js"); |
+ function originalUISourceCodeAdded(uiSourceCode) |
+ { |
+ var uiSourceCode = InspectorTest.testWorkspace.uiSourceCodeForOriginURL("http://example.com/source.js"); |
- InspectorTest.checkUILocation(uiSourceCode, 2, 4, mapping.rawLocationToUILocation(WebInspector.debuggerModel.createRawLocation(script, 0, 18))); |
- InspectorTest.checkRawLocation(script, 0, 18, mapping.uiLocationToRawLocation(uiSourceCode, 2, 4)); |
+ InspectorTest.checkUILocation(uiSourceCode, 2, 4, uiLocation(script, 0, 18)); |
+ InspectorTest.checkRawLocation(script, 0, 18, InspectorTest.testDebuggerWorkspaceBinding.uiLocationToRawLocation(target, uiSourceCode, 2, 4)); |
- uiSourceCode.requestContent(didRequestContent); |
+ uiSourceCode.requestContent(didRequestContent); |
- function didRequestContent(content, contentEncoded, mimeType) |
- { |
- InspectorTest.addResult("<source content> === " + content); |
- next(); |
+ function didRequestContent(content, contentEncoded, mimeType) |
+ { |
+ InspectorTest.addResult("<source content> === " + content); |
+ next(); |
+ } |
} |
- } |
+ }); |
}, |
function testSourceMapCouldNotBeLoaded(next) |
{ |
WebInspector.settings.jsSourceMapsEnabled.get = function() { return true; } |
- resetModels(); |
- InspectorTest.createWorkspace(); |
- var debuggerScriptMapping = new WebInspector.DebuggerScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace, InspectorTest.testNetworkWorkspaceBinding); |
- |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(compiledUISourceCodeAdded); |
- var script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, ""); |
+ createWorkspaceWithTarget(function(target) { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(compiledUISourceCodeAdded); |
+ var script = InspectorTest.createScriptMock("compiled.js", 0, 0, true, "", target); |
- function compiledUISourceCodeAdded(uiSourceCode) |
- { |
- InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
- } |
+ function compiledUISourceCodeAdded(uiSourceCode) |
+ { |
+ InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
+ } |
- function originalUISourceCodeAdded(uiSourceCode) { } |
+ function originalUISourceCodeAdded(uiSourceCode) { } |
- script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json_"; |
- console.error = function() {}; // Error message is platform dependent. |
- debuggerScriptMapping._parsedScriptSource({data:script}); |
- var location = uiLocation(script, 0, 0); |
- InspectorTest.addResult(location.uiSourceCode.originURL()); |
- next(); |
+ script.sourceMapURL = "http://localhost:8000/inspector/resources/source-map.json_"; |
+ console.error = function() {}; // Error message is platform dependent. |
+ InspectorTest.testDebuggerWorkspaceBinding._targetToData.get(target)._parsedScriptSource({ data: script }); |
+ var location = uiLocation(script, 0, 0); |
+ InspectorTest.addResult(location.uiSourceCode.originURL()); |
+ next(); |
+ }); |
}, |
function testSourceRoot(next) |