| Index: chrome/test/data/extensions/api_test/wallpaper/test.js
|
| diff --git a/chrome/test/data/extensions/api_test/wallpaper/test.js b/chrome/test/data/extensions/api_test/wallpaper/test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3cb3cc63a8c274fb9858f9e6c0eb06b6854a8b44
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/wallpaper/test.js
|
| @@ -0,0 +1,104 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +var pass = chrome.test.callbackPass;
|
| +var fail = chrome.test.callbackFail;
|
| +
|
| +chrome.test.getConfig(function(config) {
|
| +
|
| + var baseURL = "http://a.com:" + config.testServer.port +
|
| + "/extensions/api_test/wallpaper/";
|
| +
|
| + /*
|
| + * Calls chrome.wallpaper.setWallpaper using an arraybuffer.
|
| + * @param {string} filePath An extension relative file path.
|
| + */
|
| + var testSetWallpaperFromArrayBuffer = function (filePath) {
|
| + // Loads an extension local file to an arraybuffer.
|
| + var url = chrome.runtime.getURL(filePath);
|
| + var wallpaperRequest = new XMLHttpRequest();
|
| + wallpaperRequest.open('GET', url, true);
|
| + wallpaperRequest.responseType = 'arraybuffer';
|
| + try {
|
| + wallpaperRequest.send(null);
|
| + wallpaperRequest.onloadend = function(e) {
|
| + if (wallpaperRequest.status === 200) {
|
| + chrome.wallpaper.setWallpaper(
|
| + {'wallpaperData': wallpaperRequest.response,
|
| + 'layout': 'CENTER_CROPPED',
|
| + 'name': 'test'},
|
| + // Set wallpaper directly with an arraybuffer should pass.
|
| + pass()
|
| + );
|
| + } else {
|
| + chrome.test.fail('Failed to load local file: ' + filePath + '.');
|
| + }
|
| + };
|
| + } catch (e) {
|
| + console.error(e);
|
| + chrome.test.fail('An error thrown when requesting wallpaper.');
|
| + }
|
| + };
|
| +
|
| + /*
|
| + * Calls chrome.wallpaper.setWallpaper using an URL.
|
| + * @param {string} relativeURL The relative URL of an online image.
|
| + * @param {boolean} success True if expecting the API call success.
|
| + * @param {string=} optExpectedError The expected error string if API call
|
| + * failed. An error string must be provided if success is set to false.
|
| + */
|
| + var testSetWallpaperFromURL = function (relativeURL,
|
| + success,
|
| + optExpectedError) {
|
| + var url = baseURL + relativeURL;
|
| + if (success) {
|
| + chrome.wallpaper.setWallpaper(
|
| + {'url': url,
|
| + 'layout': 'CENTER_CROPPED',
|
| + 'name': 'test'},
|
| + // A valid url should set wallpaper correctly.
|
| + pass()
|
| + );
|
| + } else {
|
| + if (optExpectedError == undefined) {
|
| + chrome.test.fail('No expected error string is provided.');
|
| + return;
|
| + }
|
| + chrome.wallpaper.setWallpaper(
|
| + {'url': url,
|
| + 'layout': 'CENTER_CROPPED',
|
| + 'name': 'test'},
|
| + // Expect a failure.
|
| + fail(optExpectedError));
|
| + }
|
| + };
|
| +
|
| + chrome.test.runTests([
|
| + function setJpgWallpaperFromAppLocalFile() {
|
| + testSetWallpaperFromArrayBuffer('test.jpg');
|
| + },
|
| + function setPngWallpaperFromAppLocalFile() {
|
| + testSetWallpaperFromArrayBuffer('test.png');
|
| + },
|
| + function setJpgWallpaperFromURL () {
|
| + testSetWallpaperFromURL('test.jpg', true);
|
| + },
|
| + function setPngWallpaperFromURL () {
|
| + testSetWallpaperFromURL('test.png', true);
|
| + },
|
| + function setNoExistingWallpaperFromURL () {
|
| + // test1.jpg doesn't exist. Expect Chrome cannot set wallpaper failure.
|
| + testSetWallpaperFromURL('test1.jpg',
|
| + false,
|
| + 'Chrome cannot set wallpaper.');
|
| + },
|
| + function newRequestCancelPreviousRequest() {
|
| + // The first request should be canceled.
|
| + testSetWallpaperFromURL('test.png',
|
| + false,
|
| + 'Downloading wallpaper test.png is canceled.');
|
| + testSetWallpaperFromURL('test.jpg', true);
|
| + }
|
| + ]);
|
| +});
|
|
|