1 var initialize_WorkspaceTest = function() {
3 InspectorTest
.createWorkspace = function(ignoreEvents
)
5 WebInspector
.settings
.createSetting("fileSystemMapping", {}).set({});
6 InspectorTest
.testFileSystemMapping
= new WebInspector
.FileSystemMapping();
7 InspectorTest
.testExcludedFolderManager
= new WebInspector
.ExcludedFolderManager();
8 InspectorTest
.testFileSystemMapping
._fileSystemMappingSetting
= new InspectorTest
.MockSetting({});
9 InspectorTest
.testFileSystemMapping
._excludedFoldersSetting
= new InspectorTest
.MockSetting({});
11 InspectorTest
.testTargetManager
= new WebInspector
.TargetManager();
12 InspectorTest
.testWorkspace
= new WebInspector
.Workspace(InspectorTest
.testFileSystemMapping
);
13 InspectorTest
.testNetworkMapping
= new WebInspector
.NetworkMapping(InspectorTest
.testWorkspace
, InspectorTest
.testFileSystemMapping
);
14 InspectorTest
.testNetworkProjectManager
= new WebInspector
.NetworkProjectManager(InspectorTest
.testTargetManager
, InspectorTest
.testWorkspace
, InspectorTest
.testNetworkMapping
);
15 InspectorTest
.testDebuggerWorkspaceBinding
= new WebInspector
.DebuggerWorkspaceBinding(InspectorTest
.testTargetManager
, InspectorTest
.testWorkspace
, InspectorTest
.testNetworkMapping
);
16 InspectorTest
.testCSSWorkspaceBinding
= new WebInspector
.CSSWorkspaceBinding(InspectorTest
.testTargetManager
, InspectorTest
.testWorkspace
, InspectorTest
.testNetworkMapping
);
18 InspectorTest
.testTargetManager
.observeTargets({
19 targetAdded: function(target
)
21 InspectorTest
.testNetworkProject
= WebInspector
.NetworkProject
.forTarget(target
);
24 targetRemoved: function(target
)
31 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, InspectorTest
._defaultWorkspaceEventHandler
);
32 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeRemoved
, InspectorTest
._defaultWorkspaceEventHandler
);
35 InspectorTest
._mockTargetId
= 1;
37 InspectorTest
.createMockTarget = function(id
, debuggerModelConstructor
)
39 var MockTarget = function(name
, connection
, callback
)
41 WebInspector
.Target
.call(this, name
, WebInspector
.Target
.Type
.Page
, connection
, null, callback
);
42 this.debuggerModel
= debuggerModelConstructor
? new debuggerModelConstructor(this) : new WebInspector
.DebuggerModel(this);
43 this.resourceTreeModel
= WebInspector
.targetManager
.mainTarget().resourceTreeModel
;
44 this.domModel
= new WebInspector
.DOMModel(this);
45 this.cssModel
= new WebInspector
.CSSStyleModel(this);
46 this.runtimeModel
= new WebInspector
.RuntimeModel(this);
47 this.consoleModel
= new WebInspector
.ConsoleModel(this);
50 MockTarget
.prototype = {
51 _loadedWithCapabilities: function()
55 __proto__
: WebInspector
.Target
.prototype
58 var target
= new MockTarget("mock-target-" + id
, new InspectorBackendClass
.StubConnection());
59 InspectorTest
.testTargetManager
.addTarget(target
);
63 InspectorTest
.createWorkspaceWithTarget = function(ignoreEvents
)
65 InspectorTest
.createWorkspace(ignoreEvents
);
66 var target
= InspectorTest
.createMockTarget(InspectorTest
._mockTargetId
++);
70 InspectorTest
.waitForWorkspaceUISourceCodeAddedEvent = function(callback
, count
, projectType
)
72 InspectorTest
.uiSourceCodeAddedEventsLeft
= count
|| 1;
73 InspectorTest
.testWorkspace
.removeEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, InspectorTest
._defaultWorkspaceEventHandler
);
74 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, uiSourceCodeAdded
);
76 function uiSourceCodeAdded(event
)
78 if (projectType
&& event
.data
.project().type() !== projectType
)
80 if (!projectType
&& event
.data
.project().type() === WebInspector
.projectTypes
.Service
)
82 if (!(--InspectorTest
.uiSourceCodeAddedEventsLeft
)) {
83 InspectorTest
.testWorkspace
.removeEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, uiSourceCodeAdded
);
84 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, InspectorTest
._defaultWorkspaceEventHandler
);
90 InspectorTest
.waitForWorkspaceUISourceCodeRemovedEvent = function(callback
, count
)
92 InspectorTest
.uiSourceCodeRemovedEventsLeft
= count
|| 1;
93 InspectorTest
.testWorkspace
.removeEventListener(WebInspector
.Workspace
.Events
.UISourceCodeRemoved
, InspectorTest
._defaultWorkspaceEventHandler
);
94 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeRemoved
, uiSourceCodeRemoved
);
96 function uiSourceCodeRemoved(event
)
98 if (event
.data
.project().type() === WebInspector
.projectTypes
.Service
)
100 if (!(--InspectorTest
.uiSourceCodeRemovedEventsLeft
)) {
101 InspectorTest
.testWorkspace
.removeEventListener(WebInspector
.Workspace
.Events
.UISourceCodeRemoved
, uiSourceCodeRemoved
);
102 InspectorTest
.testWorkspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeRemoved
, InspectorTest
._defaultWorkspaceEventHandler
);
104 callback(event
.data
);
108 InspectorTest
.addMockUISourceCodeToWorkspace = function(url
, type
, content
)
110 var mockContentProvider
= new WebInspector
.StaticContentProvider(type
, content
);
111 InspectorTest
.testNetworkProject
.addFileForURL(url
, mockContentProvider
);
114 InspectorTest
._defaultWorkspaceEventHandler = function(event
)
116 var uiSourceCode
= event
.data
;
117 var networkURL
= WebInspector
.networkMapping
.networkURL(uiSourceCode
);
118 if (uiSourceCode
.project().type() === WebInspector
.projectTypes
.Debugger
&& !networkURL
)
120 if (uiSourceCode
.project().type() === WebInspector
.projectTypes
.Service
)
122 InspectorTest
.addResult("Workspace event: " + event
.type
+ ": " + uiSourceCode
.uri() + ".");
125 InspectorTest
.uiSourceCodeURL = function(uiSourceCode
)
127 return uiSourceCode
.originURL().replace(/.*LayoutTests/, "LayoutTests");
130 InspectorTest
.dumpUISourceCode = function(uiSourceCode
, callback
)
132 InspectorTest
.addResult("UISourceCode: " + InspectorTest
.uiSourceCodeURL(uiSourceCode
));
133 if (uiSourceCode
.contentType() === WebInspector
.resourceTypes
.Script
|| uiSourceCode
.contentType() === WebInspector
.resourceTypes
.Document
)
134 InspectorTest
.addResult("UISourceCode is content script: " + (uiSourceCode
.project().type() === WebInspector
.projectTypes
.ContentScripts
));
135 uiSourceCode
.requestContent(didRequestContent
);
137 function didRequestContent(content
, contentEncoded
)
139 InspectorTest
.addResult("Highlighter type: " + WebInspector
.SourcesView
.uiSourceCodeHighlighterType(uiSourceCode
));
140 InspectorTest
.addResult("UISourceCode content: " + content
);
145 InspectorTest
.fileSystemUISourceCodes = function()
147 var uiSourceCodes
= [];
148 var fileSystemProjects
= WebInspector
.workspace
.projectsForType(WebInspector
.projectTypes
.FileSystem
);
149 for (var project
of fileSystemProjects
)
150 uiSourceCodes
= uiSourceCodes
.concat(project
.uiSourceCodes());
151 return uiSourceCodes
;
154 InspectorTest
.refreshFileSystemProjects = function(callback
)
156 var barrier
= new CallbackBarrier();
157 var projects
= WebInspector
.workspace
.projects();
158 for (var i
= 0; i
< projects
.length
; ++i
)
159 projects
[i
].refresh("/", barrier
.createCallback());
160 barrier
.callWhenDone(callback
);
163 InspectorTest
.waitForGivenUISourceCode = function(name
, callback
)
165 var uiSourceCodes
= WebInspector
.workspace
.uiSourceCodes();
166 for (var i
= 0; i
< uiSourceCodes
.length
; ++i
) {
167 if (uiSourceCodes
[i
].name() === name
) {
168 setImmediate(callback
);
172 WebInspector
.workspace
.addEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, uiSourceCodeAdded
);
174 function uiSourceCodeAdded(event
)
176 if (event
.data
.name() === name
) {
177 WebInspector
.workspace
.removeEventListener(WebInspector
.Workspace
.Events
.UISourceCodeAdded
, uiSourceCodeAdded
);
178 setImmediate(callback
);