Chromium Code Reviews| Index: chrome/test/data/chromeos/wallpaper_manager/unit_tests/api_mock.js |
| diff --git a/chrome/test/data/chromeos/wallpaper_manager/unit_tests/api_mock.js b/chrome/test/data/chromeos/wallpaper_manager/unit_tests/api_mock.js |
| index f7318bcd47be23af2ca696daf8efa4623672333b..c9b8bdc74e8200a12d8e92d9a96085fa76fab72e 100644 |
| --- a/chrome/test/data/chromeos/wallpaper_manager/unit_tests/api_mock.js |
| +++ b/chrome/test/data/chromeos/wallpaper_manager/unit_tests/api_mock.js |
| @@ -6,7 +6,178 @@ |
| var TestConstants = { |
| wallpaperURL: 'https://test.com/test.jpg', |
| // A dummy string which is used to mock an image. |
| - image: '*#*@#&' |
| + image: '*#*@#&', |
|
kevers
2014/10/30 14:17:36
Constants should be in all caps.
var TestContants
Ran
2014/10/30 19:23:43
Done.
|
| + // A dummy array which is used to mock the file content. |
| + fileString: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] |
| +}; |
| + |
| +function FileReader() { |
|
kevers
2014/10/30 14:17:36
Please add jsdoc for all methods that are not API
Ran
2014/10/30 19:23:43
Done.
|
| + this.result = ''; |
| + this.onloadend = function() { |
| + }; |
| + this.readAsArrayBuffer = function(mockFile) { |
| + this.result = mockFile; |
| + this.onloadend(); |
| + } |
| +} |
| + |
| +// Mock localFS handler |
| +var mockLocalFS = { |
| + root: { |
| + dirList: [], |
| + rootFileList: [], |
| + getDirectory: function(dir, isCreate, success, failure) { |
| + for(var i = 0; i < this.dirList.length; i++) { |
| + if (this.dirList[i].name == dir) { |
| + success(this.dirList[i]); |
| + return; |
| + } |
| + } |
| + if (!isCreate.create) { |
| + if (failure) { |
|
kevers
2014/10/30 14:17:36
No need for brackets on single line if.
Ran
2014/10/30 19:23:43
Done.
|
| + failure('DIR_NOT_FOUND'); |
| + } |
| + } else { |
| + this.dirList.push(new DirEntry(dir)); |
| + success(this.dirList[this.dirList.length - 1]); |
| + } |
| + }, |
| + getFile: function(fileName, isCreate, success, failure) { |
| + if (fileName[0] == '/') |
| + fileName = fileName.substr(1); |
| + if (fileName.split('/').length == 1) { |
| + for(var i = 0; i < this.rootFileList.length; i++) { |
| + if (fileName == this.rootFileList[i].name) { |
| + success(this.rootFileList[i]); |
| + return; |
| + } |
| + } |
| + if (!isCreate.create) { |
| + if (failure) |
| + failure('FILE_NOT_FOUND'); |
| + } else { |
| + this.rootFileList.push(new FileEntry(fileName)); |
| + success(this.rootFileList[this.rootFileList.length - 1]); |
| + } |
| + } else if (fileName.split('/').length == 2) { |
| + var realDirName = fileName.split('/')[0]; |
| + var realFileName = fileName.split('/')[1]; |
| + var getDirSuccess = function(dirEntry) { |
| + dirEntry.getFile(realFileName, isCreate, success, failure); |
| + }; |
| + this.getDirectory(realDirName, {create: false}, |
| + getDirSuccess, failure); |
| + } else { |
| + console.error('Only support one level deep subdirectory') |
| + } |
| + } |
| + }, |
| + mockTestFile: function(fileName) { |
| + var mockFile; |
| + if (fileName[0] == '/') |
| + fileName = fileName.substr(1); |
| + if (fileName.split('/').length == 1) { |
| + mockFile = new FileEntry(fileName); |
| + this.root.rootFileList.push(mockFile); |
| + } else if (fileName.split('/').length == 2) { |
| + var realDirName = fileName.split('/')[0]; |
| + var realFileName = fileName.split('/')[1]; |
| + var getDirSuccess = function(dirEntry) { |
| + dirEntry.getFile(realFileName, {create: true}, |
| + function(fe) {mockFile = fe;} ); |
| + }; |
| + this.root.getDirectory(realDirName, {create: true}, getDirSuccess); |
| + } else { |
| + console.error('Only support one-level fileSystem mock') |
| + } |
| + return mockFile; |
| + }, |
| + reset: function() { |
| + this.root.dirList = []; |
| + this.root.rootFileList = []; |
| + } |
| +}; |
| + |
| +function DirEntry(dirname) { |
| + this.name = dirname; |
| + this.fileList = []; |
| + this.getFile = function(fileName, isCreate, success, failure) { |
| + for(var i = 0; i < this.fileList.length; i++) { |
| + if (fileName == this.fileList[i].name) { |
| + success(this.fileList[i]); |
| + return; |
| + } |
| + } |
| + if (!isCreate.create) { |
| + if (failure) { |
|
kevers
2014/10/30 14:17:36
Remove brackets on single line if.
Ran
2014/10/30 19:23:43
Done.
|
| + failure('FILE_NOT_FOUND'); |
| + } |
| + } else { |
| + this.fileList.push( new FileEntry(fileName) ); |
| + success(this.fileList[this.fileList.length - 1]); |
| + } |
| + } |
| +} |
| + |
| +window.webkitRequestFileSystem = function(type, size, callback) { |
| + callback(mockLocalFS); |
| +} |
| + |
| +function Blob(arg) { |
| + var data = arg[0]; |
| + this.content = ''; |
| + if (typeof data == 'string') { |
|
kevers
2014/10/30 14:17:36
Remove brackets on single line if-else.
Ran
2014/10/30 19:23:43
Done.
|
| + this.content = data; |
| + } else { |
| + this.content = Array.prototype.join.call(data); |
| + } |
| +} |
| + |
| +var mockWriter = { |
| + write: function(blobData) { |
| + } |
| +}; |
| + |
| +function FileEntry(filename) { |
| + this.name = filename; |
| + this.file = function(callback) { |
| + callback(TestConstants.fileString); |
| + }; |
| + this.createWriter = function(callback) { |
| + callback(mockWriter); |
| + }; |
| + this.remove = function(success, failure) { |
| + }; |
| +} |
| + |
| +// Mock chrome syncFS handler |
| +var mockSyncFS = { |
| + root: { |
| + fileList: [], |
| + getFile: function(fileName, isCreate, success, failure) { |
| + for(var i = 0; i < this.fileList.length; i++) { |
| + if (fileName == this.fileList[i].name) { |
| + success(this.fileList[i]); |
| + return; |
| + } |
| + } |
| + if (!isCreate.create) { |
| + if (failure) |
| + failure('FILE_NOT_FOUND'); |
| + } else { |
| + this.fileList.push(new FileEntry(fileName)); |
| + success(this.fileList[this.fileList.length - 1]); |
| + } |
| + }, |
| + }, |
| + mockTestFile: function(fileName) { |
| + var mockFile = new FileEntry(fileName); |
| + this.root.fileList.push(mockFile); |
| + return mockFile; |
| + }, |
| + reset: function() { |
| + this.root.fileList = []; |
| + } |
| }; |
| // Mock a few chrome apis. |
| @@ -20,7 +191,7 @@ var chrome = { |
| items[Constants.AccessLocalWallpaperInfoKey] = { |
| 'url': 'dummy', |
| 'layout': 'dummy', |
| - 'source': 'dummy' |
| + 'source': Constants.WallpaperSourceEnum.Custom |
| }; |
| } |
| callback(items); |
| @@ -41,7 +212,8 @@ var chrome = { |
| } |
| }, |
| syncFileSystem: { |
| - requestFileSystem: function(fs) { |
| + requestFileSystem: function(callback) { |
| + callback(mockSyncFS); |
| }, |
| onFileStatusChanged: { |
| addListener: function(listener) { |
| @@ -66,7 +238,13 @@ var chrome = { |
| wallpaperPrivate: { |
| getStrings: function(callback) { |
| callback({isExperimental: false}); |
| + }, |
| + setCustomWallpaper: function(data, layout, isGenerateThumbnail, fileName, |
| + callback) { |
| } |
| + }, |
| + runtime: { |
| + lastError: null |
| } |
| }; |