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 |