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 renameFile: function(filePath, newName, callback)
62 callback(true, newName);
65 _innerRequestFilesRecursive: function()
69 var files = Object.keys(this._files);
70 for (var i = 0; i < files.length; ++i) {
71 var isExcluded = false;
72 for (var j = 0; j < files[i].length; ++j) {
73 if (files[i][j] === "/") {
74 if (this._manager.mapping().isFileExcluded(this._path, files[i].substr(0, j + 1)))
80 this._callback(files[i].substr(1));
82 delete this._callback;
85 _addFiles: function(files)
88 this._modificationTimestamps = {};
89 var files = Object.keys(this._files);
90 for (var i = 0; i < files.length; ++i)
91 this._modificationTimestamps[files[i]] = this.originalTimestamp;
92 this._innerRequestFilesRecursive();
96 var normalizePath = WebInspector.IsolatedFileSystem.normalizePath
97 WebInspector.IsolatedFileSystem = MockIsolatedFileSystem;
98 WebInspector.IsolatedFileSystem.normalizePath = normalizePath;
100 var MockIsolatedFileSystemManager = function() {};
101 MockIsolatedFileSystemManager.prototype = {
102 addMockFileSystem: function(path, skipAddFileSystem)
104 var fileSystem = new MockIsolatedFileSystem(this, path, "", "");
105 this._fileSystems = this._fileSystems || {};
106 this._fileSystems[path] = fileSystem;
107 if (!skipAddFileSystem)
108 this.fileSystemMapping.addFileSystem(path);
109 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded, fileSystem);
112 addFiles: function(path, files)
114 var fileSystem = this._fileSystems[path];
115 fileSystem._addFiles(files);
118 removeFileSystem: function(path)
120 var fileSystem = this._fileSystems[path];
121 delete this._fileSystems[path];
122 this.fileSystemMapping.removeFileSystem(path);
123 this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved, fileSystem);
128 return this.fileSystemMapping;
131 __proto__: WebInspector.Object.prototype
134 InspectorTest.addMockFileSystem = function(path)
136 var fileSystem = { fileSystemName: "", rootURL: "", fileSystemPath: path };
137 WebInspector.isolatedFileSystemManager._onFileSystemAdded({data: {fileSystem: fileSystem}});
138 return MockIsolatedFileSystem._isolatedFileSystemMocks[path];
141 InspectorTest.addFilesToMockFileSystem = function(path, files)
143 MockIsolatedFileSystem._isolatedFileSystemMocks[path]._addFiles(files);