Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Side by Side Diff: chrome/test/data/chromeos/wallpaper_manager/unit_tests/event_page_unittest.js

Issue 642943002: Add tests for sync custom wallpaper feature (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix issues from 2nd code review Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
bshe 2014/10/28 22:34:57 Is it possible to add a test that a new custom wal
Ran 2014/10/29 19:13:13 Not possible for now as the FS operations takes tw
bshe 2014/10/30 12:51:36 never mind. you can do it in a separate CL.
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,
27 'layout': 'custom', 92 'layout': 'custom',
28 'source': Constants.WallpaperSourceEnum.Online 93 'source': Constants.WallpaperSourceEnum.Online
29 }; 94 };
30 95
31 var mockSetWallpaperIfExists = mockController.createFunctionMock( 96 var mockSetWallpaperIfExists = mockController.createFunctionMock(
32 chrome.wallpaperPrivate, 'setWallpaperIfExists'); 97 chrome.wallpaperPrivate, 'setWallpaperIfExists');
33 mockSetWallpaperIfExists.addExpectation( 98 mockSetWallpaperIfExists.addExpectation(
34 changes[Constants.AccessSyncWallpaperInfoKey].newValue.url, 99 changes[Constants.AccessSyncWallpaperInfoKey].newValue.url,
35 changes[Constants.AccessSyncWallpaperInfoKey].newValue.layout); 100 changes[Constants.AccessSyncWallpaperInfoKey].newValue.layout);
36 mockSetWallpaperIfExists.callbackData = [false]; 101 mockSetWallpaperIfExists.callbackData = [false];
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698