OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 var pass = chrome.test.callbackPass; | |
6 var fail = chrome.test.callbackFail; | |
7 | |
8 chrome.test.getConfig(function(config) { | |
9 | |
10 var baseURL = "http://a.com:" + config.testServer.port + | |
11 "/extensions/api_test/wallpaper/"; | |
12 | |
13 /* | |
14 * Calls chrome.wallpaper.setWallpaper using an arraybuffer. | |
15 * @param {string} filePath An extension relative file path. | |
16 */ | |
17 var testSetWallpaperFromArrayBuffer = function (filePath) { | |
18 // Loads an extension local file to an arraybuffer. | |
19 var url = chrome.runtime.getURL(filePath); | |
20 var wallpaperRequest = new XMLHttpRequest(); | |
21 wallpaperRequest.open('GET', url, true); | |
22 wallpaperRequest.responseType = 'arraybuffer'; | |
23 try { | |
24 wallpaperRequest.send(null); | |
25 wallpaperRequest.onloadend = function(e) { | |
26 if (wallpaperRequest.status === 200) { | |
27 chrome.wallpaper.setWallpaper( | |
28 {'wallpaperData': wallpaperRequest.response, | |
29 'layout': 'CENTER_CROPPED', | |
30 'name': 'test'}, | |
31 // Set wallpaper directly with an arraybuffer should pass. | |
32 pass() | |
33 ); | |
34 } else { | |
35 chrome.test.fail('Failed to load local file: ' + filePath + '.'); | |
36 } | |
37 }; | |
38 } catch (e) { | |
39 console.error(e); | |
40 chrome.test.fail('An error thrown when requesting wallpaper.'); | |
41 } | |
42 }; | |
43 | |
44 /* | |
45 * Calls chrome.wallpaper.setWallpaper using an URL. | |
46 * @param {string} relativeURL The relative URL of an online image. | |
47 * @param {boolean} success True if expecting the API call success. | |
48 * @param {string=} optExpectedError The expected error string if API call | |
49 * failed. An error string must be provided if success is set to false. | |
50 */ | |
51 var testSetWallpaperFromURL = function (relativeURL, | |
52 success, | |
53 optExpectedError) { | |
54 var url = baseURL + relativeURL; | |
55 if (success) { | |
56 chrome.wallpaper.setWallpaper( | |
57 {'url': url, | |
58 'layout': 'CENTER_CROPPED', | |
59 'name': 'test'}, | |
60 // A valid url should set wallpaper correctly. | |
61 pass() | |
62 ); | |
63 } else { | |
64 if (optExpectedError == undefined) { | |
65 chrome.test.fail('No expected error string is provided.'); | |
66 return; | |
67 } | |
68 chrome.wallpaper.setWallpaper( | |
69 {'url': url, | |
70 'layout': 'CENTER_CROPPED', | |
71 'name': 'test'}, | |
72 // Expect a failure. | |
73 fail(optExpectedError)); | |
74 } | |
75 }; | |
76 | |
77 chrome.test.runTests([ | |
78 function setJpgWallpaperFromAppLocalFile() { | |
79 testSetWallpaperFromArrayBuffer('test.jpg'); | |
80 }, | |
81 function setPngWallpaperFromAppLocalFile() { | |
82 testSetWallpaperFromArrayBuffer('test.png'); | |
83 }, | |
84 function setJpgWallpaperFromURL () { | |
85 testSetWallpaperFromURL('test.jpg', true); | |
86 }, | |
87 function setPngWallpaperFromURL () { | |
88 testSetWallpaperFromURL('test.png', true); | |
89 }, | |
90 function setNoExistingWallpaperFromURL () { | |
91 // test1.jpg doesn't exist. Expect Chrome cannot set wallpaper failure. | |
92 testSetWallpaperFromURL('test1.jpg', | |
93 false, | |
94 'Chrome cannot set wallpaper.'); | |
95 }, | |
96 function newRequestCancelPreviousRequest() { | |
97 // The first request should be canceled. | |
98 testSetWallpaperFromURL('test.png', | |
99 false, | |
100 'Downloading wallpaper test.png is canceled.'); | |
101 testSetWallpaperFromURL('test.jpg', true); | |
102 } | |
103 ]); | |
104 }); | |
OLD | NEW |