OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 'use strict'; | 4 'use strict'; |
5 | 5 |
6 var mockController; | 6 var mockController; |
7 | 7 |
| 8 WallpaperUtil.enabledExperimentalFeatureCallback = function(callback) { |
| 9 callback(); |
| 10 }; |
| 11 |
| 12 WallpaperUtil.enabledSyncThemesCallback = function(callback) { |
| 13 callback(); |
| 14 }; |
| 15 |
8 function setUp() { | 16 function setUp() { |
9 mockController = new MockController(); | 17 mockController = new MockController(); |
10 installMockXMLHttpRequest(); | 18 installMockXMLHttpRequest(); |
11 } | 19 } |
12 | 20 |
13 function tearDown() { | 21 function tearDown() { |
14 mockController.verifyMocks(); | 22 mockController.verifyMocks(); |
15 mockController.reset(); | 23 mockController.reset(); |
16 uninstallMockXMLHttpRequest(); | 24 uninstallMockXMLHttpRequest(); |
| 25 mockSyncFS.reset(); |
| 26 mockLocalFS.reset(); |
| 27 } |
| 28 |
| 29 // Test set custom wallpaper from syncFS. When local wallpaper name is different |
| 30 // with the name in server, wallpaper should use the one in server. |
| 31 function testSyncCustomWallpaperSet() { |
| 32 var mockSetCustomWallpaper = mockController.createFunctionMock( |
| 33 chrome.wallpaperPrivate, 'setCustomWallpaper'); |
| 34 mockSetCustomWallpaper.addExpectation(TestConstants.fileString, |
| 35 'dummy', |
| 36 true, |
| 37 'dummy'); |
| 38 var syncFSChanges = {}; |
| 39 syncFSChanges.status = 'synced'; |
| 40 syncFSChanges.direction = 'remote_to_local'; |
| 41 syncFSChanges.action = 'added'; |
| 42 syncFSChanges.fileEntry = mockSyncFS.mockTestFile('dummy'); |
| 43 chrome.syncFileSystem.onFileStatusChanged.dispatch(syncFSChanges); |
| 44 } |
| 45 |
| 46 // Test store historical custom wallpaper. When receive a historical wallpaper |
| 47 // from syncFS, we store it to local. |
| 48 function testSyncCustoWallpapermStore() { |
| 49 var syncFSChanges = {}; |
| 50 syncFSChanges.status = 'synced'; |
| 51 syncFSChanges.direction = 'remote_to_local'; |
| 52 syncFSChanges.action = 'added'; |
| 53 syncFSChanges.fileEntry = mockSyncFS.mockTestFile('historicalwallpaper'); |
| 54 |
| 55 // TODO(ranj): support two callbacks with success and failure? |
| 56 var mockWrite = mockController.createFunctionMock(mockWriter, 'write'); |
| 57 mockWrite.addExpectation(new Blob([new Int8Array(TestConstants.fileString)])); |
| 58 chrome.syncFileSystem.onFileStatusChanged.dispatch(syncFSChanges); |
| 59 } |
| 60 |
| 61 // Test delete custom wallpaper from local. When receive a syncFS delete file |
| 62 // event, delete the file in localFS as well. |
| 63 function testSyncCustomWallpaperDelete() { |
| 64 var localOriginalPath = Constants.WallpaperDirNameEnum.ORIGINAL + '/' + |
| 65 'deletewallpapername'; |
| 66 var localThumbnailPath = Constants.WallpaperDirNameEnum.THUMBNAIL + '/' + |
| 67 'deletewallpapername'; |
| 68 var originalFE = mockLocalFS.mockTestFile(localOriginalPath); |
| 69 var thumbnailFE = mockLocalFS.mockTestFile(localThumbnailPath); |
| 70 var syncFSChanges = {}; |
| 71 syncFSChanges.status = 'synced'; |
| 72 syncFSChanges.direction = 'remote_to_local'; |
| 73 syncFSChanges.action = 'deleted'; |
| 74 syncFSChanges.fileEntry = new FileEntry('deletewallpapername'); |
| 75 var mockRemoveOriginal = mockController.createFunctionMock(originalFE, |
| 76 'remove'); |
| 77 mockRemoveOriginal.addExpectation(function() {}, null); |
| 78 var mockRemoveThumbnail = mockController.createFunctionMock(thumbnailFE, |
| 79 'remove'); |
| 80 mockRemoveThumbnail.addExpectation(function() {}, null); |
| 81 chrome.syncFileSystem.onFileStatusChanged.dispatch(syncFSChanges); |
17 } | 82 } |
18 | 83 |
19 // Test sync online wallpaper. When the synced wallpaper info is not the same as | 84 // Test sync online wallpaper. When the synced wallpaper info is not the same as |
20 // the local wallpaper info, wallpaper should set to the synced one. | 85 // the local wallpaper info, wallpaper should set to the synced one. |
21 function testSyncOnlineWallpaper() { | 86 function testSyncOnlineWallpaper() { |
22 // Setup sync value. | 87 // Setup sync value. |
23 var changes = {}; | 88 var changes = {}; |
24 changes[Constants.AccessSyncWallpaperInfoKey] = {}; | 89 changes[Constants.AccessSyncWallpaperInfoKey] = {}; |
25 changes[Constants.AccessSyncWallpaperInfoKey].newValue = { | 90 changes[Constants.AccessSyncWallpaperInfoKey].newValue = { |
26 'url': TestConstants.wallpaperURL, | 91 'url': TestConstants.wallpaperURL, |
(...skipping 10 matching lines...) Expand all Loading... |
37 | 102 |
38 var mockSetWallpaper = mockController.createFunctionMock( | 103 var mockSetWallpaper = mockController.createFunctionMock( |
39 chrome.wallpaperPrivate, 'setWallpaper'); | 104 chrome.wallpaperPrivate, 'setWallpaper'); |
40 mockSetWallpaper.addExpectation( | 105 mockSetWallpaper.addExpectation( |
41 TestConstants.image, | 106 TestConstants.image, |
42 changes[Constants.AccessSyncWallpaperInfoKey].newValue.layout, | 107 changes[Constants.AccessSyncWallpaperInfoKey].newValue.layout, |
43 changes[Constants.AccessSyncWallpaperInfoKey].newValue.url); | 108 changes[Constants.AccessSyncWallpaperInfoKey].newValue.url); |
44 | 109 |
45 chrome.storage.onChanged.dispatch(changes); | 110 chrome.storage.onChanged.dispatch(changes); |
46 } | 111 } |
OLD | NEW |