1 var initialize_IsolatedFileSystemTest = function() {
3 InspectorTest.createIsolatedFileSystemManager = function(workspace, fileSystemMapping)
5 var manager = new MockIsolatedFileSystemManager();
6 manager.fileSystemWorkspaceBinding = new WebInspector.FileSystemWorkspaceBinding(manager, workspace);
7 manager.fileSystemMapping = fileSystemMapping;
11 var MockIsolatedFileSystem = function(manager, path, name, rootURL)
13 MockIsolatedFileSystem._isolatedFileSystemMocks = MockIsolatedFileSystem._isolatedFileSystemMocks || {};
14 MockIsolatedFileSystem._isolatedFileSystemMocks[path] = this;
15 this.originalTimestamp = 1000000;
16 this.modificationTimestampDelta = 1000;
18 this._manager = manager;
20 MockIsolatedFileSystem.prototype = {
26 normalizedPath: function()
31 requestFileContent: function(path, callback)
33 callback(this._files[path]);
36 requestMetadata: function(path, callback)
38 if (!(path in this._files)) {
42 callback(new Date(this._modificationTimestamps[path]), this._files[path].length);
45 setFileContent: function(path, newContent, callback)
47 this._files[path] = newContent;
48 this._modificationTimestamps[path] = (this._modificationTimestamps[path] || (this.originalTimestamp - this.modifiationTimestampDelta)) + this.modificationTimestampDelta;
52 requestFilesRecursive: function(path, callback)
54 this._callback = callback;
57 this._innerRequestFilesRecursive();
60 _innerRequestFilesRecursive: function()
64 var files = Object.keys(this._files);
65 for (var i = 0; i < files.length; ++i) {
66 var isExcluded = false;
67 for (var j = 0; j < files[i].length; ++j) {
68 if (files[i][j] === "/") {
69 if (this._manager.mapping().isFileExcluded(this._path, files[i].substr(0, j + 1)))
75 this._callback(files[i].substr(1));
77 delete this._callback;
80 _addFiles: function(files)
83 this._modificationTimestamps = {};
84 var files = Object.keys(this._files);
85 for (var i = 0; i < files.length; ++i)
86 this._modificationTimestamps[files[i]] = this.originalTimestamp;
87 this._innerRequestFilesRecursive();
91 var normalizePath = WebInspector.IsolatedFileSystem.normalizePath
92 WebInspector.IsolatedFileSystem = MockIsolatedFileSystem;
93 WebInspector.IsolatedFileSystem.normalizePath = normalizePath;
95 var MockIsolatedFileSystemManager = function() {};
96 MockIsolatedFileSystemManager.prototype = {
97 addMockFileSystem: function(path, skipAddFileSystem)
99 var fileSystem = new MockIsolatedFileSystem(this, path, "", "");
100 this._fileSystems = this._fileSystems || {};
101 this._fileSystems[path] = fileSystem;
102 if (!skipAddFileSystem)
103 this.fileSystemMapping.addFileSystem(path);
104 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem);
107 addFiles: function(path, files)
109 var fileSystem = this._fileSystems[path];
110 fileSystem._addFiles(files);
113 removeMockFileSystem: function(path)
115 var fileSystem = this._fileSystems[path];
116 delete this._fileSystems[path];
117 this.fileSystemMapping.removeFileSystem(path);
118 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved, fileSystem);
123 return this.fileSystemMapping;
126 __proto__: WebInspector.Object.prototype
129 InspectorTest.addMockFileSystem = function(path)
131 var fileSystem = { fileSystemName: "", rootURL: "", fileSystemPath: path };
132 WebInspector.isolatedFileSystemDispatcher.fileSystemAdded("", fileSystem);
133 return MockIsolatedFileSystem._isolatedFileSystemMocks[path];
136 InspectorTest.addFilesToMockFileSystem = function(path, files)
138 MockIsolatedFileSystem._isolatedFileSystemMocks[path]._addFiles(files);