OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 4 |
5 // wallpaperPrivate api test | 5 // wallpaperPrivate api test |
6 // browser_tests --gtest_filter=ExtensionApiTest.wallpaperPrivate | 6 // browser_tests --gtest_filter=ExtensionApiTest.wallpaperPrivate |
7 | 7 |
8 var pass = chrome.test.callbackPass; | 8 var pass = chrome.test.callbackPass; |
9 var fail = chrome.test.callbackFail; | 9 var fail = chrome.test.callbackFail; |
10 | 10 |
11 chrome.test.getConfig(function(config) { | 11 chrome.test.getConfig(function(config) { |
12 var wallpaper; | 12 var wallpaperJpeg; |
| 13 var wallpaperPng; |
13 var wallpaperStrings; | 14 var wallpaperStrings; |
14 var requestImage = function(url, onLoadCallback) { | 15 var requestImage = function(url, onLoadCallback) { |
15 var wallpaperRequest = new XMLHttpRequest(); | 16 var wallpaperRequest = new XMLHttpRequest(); |
16 wallpaperRequest.open('GET', url, true); | 17 wallpaperRequest.open('GET', url, true); |
17 wallpaperRequest.responseType = 'arraybuffer'; | 18 wallpaperRequest.responseType = 'arraybuffer'; |
18 try { | 19 try { |
19 wallpaperRequest.send(null); | 20 wallpaperRequest.send(null); |
20 wallpaperRequest.onloadend = function(e) { | 21 wallpaperRequest.onloadend = function(e) { |
21 onLoadCallback(wallpaperRequest.status, wallpaperRequest.response); | 22 onLoadCallback(wallpaperRequest.status, wallpaperRequest.response); |
22 }; | 23 }; |
23 } catch (e) { | 24 } catch (e) { |
24 console.error(e); | 25 console.error(e); |
25 chrome.test.fail('An error thrown when requesting wallpaper.'); | 26 chrome.test.fail('An error thrown when requesting wallpaper.'); |
26 }; | 27 }; |
27 }; | 28 }; |
28 chrome.test.runTests([ | 29 chrome.test.runTests([ |
29 function getWallpaperStrings() { | 30 function getWallpaperStrings() { |
30 chrome.wallpaperPrivate.getStrings(pass(function(strings) { | 31 chrome.wallpaperPrivate.getStrings(pass(function(strings) { |
31 wallpaperStrings = strings; | 32 wallpaperStrings = strings; |
32 })); | 33 })); |
33 }, | 34 }, |
34 function setOnlineJpegWallpaper() { | 35 function setOnlineJpegWallpaper() { |
35 var url = "http://a.com:PORT/files/extensions/api_test" + | 36 var url = "http://a.com:PORT/files/extensions/api_test" + |
36 "/wallpaper_manager/test.jpg"; | 37 "/wallpaper_manager/test.jpg"; |
37 url = url.replace(/PORT/, config.testServer.port); | 38 url = url.replace(/PORT/, config.testServer.port); |
38 requestImage(url, function(requestStatus, response) { | 39 requestImage(url, function(requestStatus, response) { |
39 if (requestStatus === 200) { | 40 if (requestStatus === 200) { |
40 wallpaper = response; | 41 wallpaperJpeg = response; |
41 chrome.wallpaperPrivate.setWallpaper(wallpaper, | 42 chrome.wallpaperPrivate.setWallpaper(wallpaperJpeg, |
42 'CENTER_CROPPED', | 43 'CENTER_CROPPED', |
43 url, | 44 url, |
44 pass(function() { | 45 pass(function() { |
45 chrome.wallpaperPrivate.setCustomWallpaperLayout('CENTER', | 46 chrome.wallpaperPrivate.setCustomWallpaperLayout('CENTER', |
46 fail('Only custom wallpaper can change layout.')); | 47 fail('Only custom wallpaper can change layout.')); |
47 })); | 48 })); |
48 } else { | 49 } else { |
49 chrome.test.fail('Failed to load test.jpg from local server.'); | 50 chrome.test.fail('Failed to load test.jpg from local server.'); |
50 } | 51 } |
51 }); | 52 }); |
52 }, | 53 }, |
53 function setCustomJpegWallpaper() { | 54 function setCustomJpegWallpaper() { |
54 chrome.wallpaperPrivate.setCustomWallpaper(wallpaper, | 55 chrome.wallpaperPrivate.setCustomWallpaper(wallpaperJpeg, |
55 'CENTER_CROPPED', | 56 'CENTER_CROPPED', |
56 true, | 57 true, |
57 '123', | 58 '123', |
58 pass(function(thumbnail) { | 59 pass(function(thumbnail) { |
59 chrome.wallpaperPrivate.setCustomWallpaperLayout('CENTER', | 60 chrome.wallpaperPrivate.setCustomWallpaperLayout('CENTER', |
60 pass(function() { | 61 pass(function() { |
61 chrome.wallpaperPrivate.setCustomWallpaperLayout('STRETCH', pass()); | 62 chrome.wallpaperPrivate.setCustomWallpaperLayout('STRETCH', pass()); |
62 })); | 63 })); |
63 })); | 64 })); |
64 }, | 65 }, |
65 function getCustomWallpaperThumbnail() { | 66 function setCustomPngWallpaper() { |
66 chrome.wallpaperPrivate.getOfflineWallpaperList('CUSTOM', | 67 var url = "http://a.com:PORT/files/extensions/api_test" + |
67 pass(function(lists) { | 68 "/wallpaper_manager/test.png"; |
68 chrome.test.assertEq(1, lists.length); | 69 url = url.replace(/PORT/, config.testServer.port); |
69 chrome.wallpaperPrivate.getThumbnail(lists[0], 'CUSTOM', | 70 requestImage(url, function(requestStatus, response) { |
70 pass(function(data) { | 71 if (requestStatus === 200) { |
71 chrome.test.assertNoLastError(); | 72 wallpaperPng = response; |
72 })); | 73 chrome.wallpaperPrivate.setCustomWallpaper(wallpaperPng, |
73 })); | 74 'CENTER_CROPPED', |
| 75 true, |
| 76 '123', |
| 77 pass(function(thumbnail) { |
| 78 chrome.wallpaperPrivate.setCustomWallpaperLayout('CENTER', |
| 79 pass(function() { |
| 80 chrome.wallpaperPrivate.setCustomWallpaperLayout('STRETCH', |
| 81 pass()); |
| 82 })); |
| 83 })); |
| 84 } else { |
| 85 chrome.test.fail('Failed to load test.png from local server.'); |
| 86 } |
| 87 }); |
74 }, | 88 }, |
75 function setCustomJepgBadWallpaper() { | 89 function setCustomJepgBadWallpaper() { |
76 var url = "http://a.com:PORT/files/extensions/api_test" + | 90 var url = "http://a.com:PORT/files/extensions/api_test" + |
77 "/wallpaper_manager/test_bad.jpg"; | 91 "/wallpaper_manager/test_bad.jpg"; |
78 url = url.replace(/PORT/, config.testServer.port); | 92 url = url.replace(/PORT/, config.testServer.port); |
79 requestImage(url, function(requestStatus, response) { | 93 requestImage(url, function(requestStatus, response) { |
80 if (requestStatus === 200) { | 94 if (requestStatus === 200) { |
81 var badWallpaper = response; | 95 var badWallpaper = response; |
82 chrome.wallpaperPrivate.setCustomWallpaper(badWallpaper, | 96 chrome.wallpaperPrivate.setCustomWallpaper(badWallpaper, |
83 'CENTER_CROPPED', false, '123', | 97 'CENTER_CROPPED', false, '123', |
(...skipping 19 matching lines...) Expand all Loading... |
103 function getAndSetThumbnail() { | 117 function getAndSetThumbnail() { |
104 var url = "http://a.com:PORT/files/extensions/api_test" + | 118 var url = "http://a.com:PORT/files/extensions/api_test" + |
105 "/wallpaper_manager/test.jpg"; | 119 "/wallpaper_manager/test.jpg"; |
106 url = url.replace(/PORT/, config.testServer.port); | 120 url = url.replace(/PORT/, config.testServer.port); |
107 chrome.wallpaperPrivate.getThumbnail(url, 'ONLINE', pass(function(data) { | 121 chrome.wallpaperPrivate.getThumbnail(url, 'ONLINE', pass(function(data) { |
108 chrome.test.assertNoLastError(); | 122 chrome.test.assertNoLastError(); |
109 if (data) { | 123 if (data) { |
110 chrome.test.fail('Thumbnail is not found. getThumbnail should not ' + | 124 chrome.test.fail('Thumbnail is not found. getThumbnail should not ' + |
111 'return any data.'); | 125 'return any data.'); |
112 } | 126 } |
113 chrome.wallpaperPrivate.saveThumbnail(url, wallpaper, pass(function() { | 127 chrome.wallpaperPrivate.saveThumbnail(url, wallpaperJpeg, |
| 128 pass(function() { |
114 chrome.test.assertNoLastError(); | 129 chrome.test.assertNoLastError(); |
115 chrome.wallpaperPrivate.getThumbnail(url, 'ONLINE', | 130 chrome.wallpaperPrivate.getThumbnail(url, 'ONLINE', |
116 pass(function(data) { | 131 pass(function(data) { |
117 chrome.test.assertNoLastError(); | 132 chrome.test.assertNoLastError(); |
118 // Thumbnail should already be saved to thumbnail directory. | 133 // Thumbnail should already be saved to thumbnail directory. |
119 chrome.test.assertEq(wallpaper, data); | 134 chrome.test.assertEq(wallpaperJpeg, data); |
120 })); | 135 })); |
121 })); | 136 })); |
122 })); | 137 })); |
123 }, | 138 }, |
124 function getOfflineWallpaperList() { | 139 function getOfflineWallpaperList() { |
125 chrome.wallpaperPrivate.getOfflineWallpaperList('ONLINE', | 140 chrome.wallpaperPrivate.getOfflineWallpaperList('ONLINE', |
126 pass(function(list) { | 141 pass(function(list) { |
127 // We have previously saved test.jpg in wallpaper directory. | 142 // We have previously saved test.jpg in wallpaper directory. |
128 chrome.test.assertEq('test.jpg', list[0]); | 143 chrome.test.assertEq('test.jpg', list[0]); |
129 // Saves the same wallpaper to wallpaper directory but name it as | 144 // Saves the same wallpaper to wallpaper directory but name it as |
130 // test1.jpg. | 145 // test1.jpg. |
131 chrome.wallpaperPrivate.setWallpaper(wallpaper, | 146 chrome.wallpaperPrivate.setWallpaper(wallpaperJpeg, |
132 'CENTER_CROPPED', | 147 'CENTER_CROPPED', |
133 'http://dummyurl/test1.jpg', | 148 'http://dummyurl/test1.jpg', |
134 pass(function() { | 149 pass(function() { |
135 chrome.wallpaperPrivate.getOfflineWallpaperList('ONLINE', | 150 chrome.wallpaperPrivate.getOfflineWallpaperList('ONLINE', |
136 pass(function(list) { | 151 pass(function(list) { |
137 chrome.test.assertEq('test.jpg', list[0]); | 152 chrome.test.assertEq('test.jpg', list[0]); |
138 chrome.test.assertEq('test1.jpg', list[1]); | 153 chrome.test.assertEq('test1.jpg', list[1]); |
139 })); | 154 })); |
140 })); | 155 })); |
141 })); | 156 })); |
142 } | 157 } |
143 ]); | 158 ]); |
144 }); | 159 }); |
OLD | NEW |