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

Side by Side Diff: chrome/test/data/extensions/api_test/media_galleries/media_metadata/test.js

Issue 250143002: Media Galleries API: Audio/Video attached pictures support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix linux_chromium_chromeos_rel argument evaluation order bug Created 6 years, 6 months 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 | Annotate | Revision Log
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 4
5 var mediaGalleries = chrome.mediaGalleries; 5 var mediaGalleries = chrome.mediaGalleries;
6 6
7 function RunMetadataTest(filename, callOptions, verifyMetadataFunction) { 7 function RunMetadataTest(filename, callOptions, verifyMetadataFunction) {
8 function getMediaFileSystemsCallback(results) { 8 function getMediaFileSystemsCallback(results) {
9 chrome.test.assertEq(1, results.length); 9 chrome.test.assertEq(1, results.length);
10 var gallery = results[0]; 10 var gallery = results[0];
11 gallery.root.getFile(filename, {create: false}, verifyFileEntry, 11 gallery.root.getFile(filename, {create: false}, verifyFileEntry,
12 chrome.test.fail); 12 chrome.test.fail);
13 } 13 }
14 14
15 function verifyFileEntry(fileEntry) { 15 function verifyFileEntry(fileEntry) {
16 fileEntry.file(verifyFile, chrome.test.fail) 16 fileEntry.file(verifyFile, chrome.test.fail)
17 } 17 }
18 18
19 function verifyFile(file) { 19 function verifyFile(file) {
20 mediaGalleries.getMetadata(file, callOptions, verifyMetadataFunction); 20 mediaGalleries.getMetadata(file, callOptions, verifyMetadataFunction);
21 } 21 }
22 22
23 mediaGalleries.getMediaFileSystems(getMediaFileSystemsCallback); 23 mediaGalleries.getMediaFileSystems(getMediaFileSystemsCallback);
24 } 24 }
25 25
26 function ImageMIMETypeOnlyTest() { 26 function ImageMIMETypeOnlyTest() {
27 function verifyMetadata(metadata) { 27 function verifyMetadata(metadata) {
28 chrome.test.assertEq("image/jpeg", metadata.mimeType); 28 chrome.test.assertEq("image/jpeg", metadata.mimeType);
29
30 chrome.test.assertEq(0, metadata.attachedImages.length);
31
29 chrome.test.succeed(); 32 chrome.test.succeed();
30 } 33 }
31 34
32 RunMetadataTest("test.jpg", {metadataType: 'mimeTypeOnly'}, verifyMetadata); 35 RunMetadataTest("test.jpg", {metadataType: 'mimeTypeOnly'}, verifyMetadata);
33 } 36 }
34 37
35 function ImageTagsTest() { 38 function ImageTagsTest() {
36 function verifyMetadata(metadata) { 39 function verifyMetadata(metadata) {
37 chrome.test.assertEq("image/jpeg", metadata.mimeType); 40 chrome.test.assertEq("image/jpeg", metadata.mimeType);
38 chrome.test.assertEq(5616, metadata.width); 41 chrome.test.assertEq(5616, metadata.width);
39 chrome.test.assertEq(3744, metadata.height); 42 chrome.test.assertEq(3744, metadata.height);
40 chrome.test.assertEq(0, metadata.rotation); 43 chrome.test.assertEq(0, metadata.rotation);
41 chrome.test.assertEq(300.0, metadata.xResolution); 44 chrome.test.assertEq(300.0, metadata.xResolution);
42 chrome.test.assertEq(300.0, metadata.yResolution); 45 chrome.test.assertEq(300.0, metadata.yResolution);
43 chrome.test.assertEq("Canon", metadata.cameraMake); 46 chrome.test.assertEq("Canon", metadata.cameraMake);
44 chrome.test.assertEq("Canon EOS 5D Mark II", metadata.cameraModel); 47 chrome.test.assertEq("Canon EOS 5D Mark II", metadata.cameraModel);
45 chrome.test.assertEq(0.01, metadata.exposureTimeSeconds); 48 chrome.test.assertEq(0.01, metadata.exposureTimeSeconds);
46 chrome.test.assertFalse(metadata.flashFired); 49 chrome.test.assertFalse(metadata.flashFired);
47 chrome.test.assertEq(3.2, metadata.fNumber); 50 chrome.test.assertEq(3.2, metadata.fNumber);
48 chrome.test.assertEq(100, metadata.focalLengthMm); 51 chrome.test.assertEq(100, metadata.focalLengthMm);
49 chrome.test.assertEq(1600, metadata.isoEquivalent); 52 chrome.test.assertEq(1600, metadata.isoEquivalent);
53
54 chrome.test.assertEq(0, metadata.attachedImages.length);
55
50 chrome.test.succeed(); 56 chrome.test.succeed();
51 } 57 }
52 58
53 RunMetadataTest("test.jpg", {}, verifyMetadata); 59 RunMetadataTest("test.jpg", {}, verifyMetadata);
54 } 60 }
55 61
56 function MP3MIMETypeOnlyTest() { 62 function MP3MIMETypeOnlyTest() {
57 function verifyMetadata(metadata) { 63 function verifyMetadata(metadata) {
58 chrome.test.assertEq("audio/mpeg", metadata.mimeType); 64 chrome.test.assertEq("audio/mpeg", metadata.mimeType);
59 chrome.test.assertEq(undefined, metadata.title); 65 chrome.test.assertEq(undefined, metadata.title);
66
67 chrome.test.assertEq(0, metadata.attachedImages.length);
68
60 chrome.test.succeed(); 69 chrome.test.succeed();
61 } 70 }
62 71
63 RunMetadataTest("id3_png_test.mp3", {metadataType: 'mimeTypeOnly'}, 72 RunMetadataTest("id3_png_test.mp3", {metadataType: 'mimeTypeOnly'},
64 verifyMetadata); 73 verifyMetadata);
65 } 74 }
66 75
67 function MP3TagsTest() { 76 function MP3TagsTest() {
68 function verifyMetadata(metadata) { 77 function verifyMetadata(metadata) {
69 chrome.test.assertEq("audio/mpeg", metadata.mimeType); 78 chrome.test.assertEq("audio/mpeg", metadata.mimeType);
(...skipping 11 matching lines...) Expand all
81 chrome.test.assertEq("1997", metadata.rawTags[0].tags["date"]); 90 chrome.test.assertEq("1997", metadata.rawTags[0].tags["date"]);
82 chrome.test.assertEq("Lavf54.4.100", metadata.rawTags[0].tags["encoder"]); 91 chrome.test.assertEq("Lavf54.4.100", metadata.rawTags[0].tags["encoder"]);
83 chrome.test.assertEq("Alternative", metadata.rawTags[0].tags["genre"]); 92 chrome.test.assertEq("Alternative", metadata.rawTags[0].tags["genre"]);
84 chrome.test.assertEq("Airbag", metadata.rawTags[0].tags["title"]); 93 chrome.test.assertEq("Airbag", metadata.rawTags[0].tags["title"]);
85 chrome.test.assertEq("1", metadata.rawTags[0].tags["track"]); 94 chrome.test.assertEq("1", metadata.rawTags[0].tags["track"]);
86 95
87 chrome.test.assertEq("mp3", metadata.rawTags[1].type); 96 chrome.test.assertEq("mp3", metadata.rawTags[1].type);
88 97
89 chrome.test.assertEq("png", metadata.rawTags[2].type); 98 chrome.test.assertEq("png", metadata.rawTags[2].type);
90 99
100 chrome.test.assertEq(0, metadata.attachedImages.length);
101
91 chrome.test.succeed(); 102 chrome.test.succeed();
92 } 103 }
93 104
105 return RunMetadataTest("id3_png_test.mp3", {metadataType: 'mimeTypeAndTags'},
106 verifyMetadata);
107 }
108
109 function MP3AttachedImageTest() {
110 function verifyMetadata(metadata) {
111 chrome.test.assertEq("audio/mpeg", metadata.mimeType);
112 chrome.test.assertEq("Airbag", metadata.title);
113 chrome.test.assertEq("Radiohead", metadata.artist);
114 chrome.test.assertEq("OK Computer", metadata.album);
115 chrome.test.assertEq(1, metadata.track);
116 chrome.test.assertEq("Alternative", metadata.genre);
117
118 chrome.test.assertEq(1, metadata.attachedImages.length);
119 chrome.test.assertEq('image/png', metadata.attachedImages[0].type);
120 chrome.test.assertEq(155752, metadata.attachedImages[0].size);
121
122 var reader = new FileReader();
123 reader.onload = function verifyBlobContents(event) {
124 var first = new Uint8Array(reader.result, 0, 8);
125 var last = new Uint8Array(reader.result, reader.result.byteLength - 8, 8);
126 chrome.test.assertEq("\x89PNG\r\n\x1a\n",
127 String.fromCharCode.apply(null, first));
128 chrome.test.assertEq("IEND\xae\x42\x60\x82",
129 String.fromCharCode.apply(null, last));
130
131 chrome.test.succeed();
132 }
133 reader.readAsArrayBuffer(metadata.attachedImages[0]);
134 }
135
94 return RunMetadataTest("id3_png_test.mp3", {}, verifyMetadata); 136 return RunMetadataTest("id3_png_test.mp3", {}, verifyMetadata);
95 } 137 }
96 138
97 function RotatedVideoTest() { 139 function RotatedVideoTest() {
98 function verifyMetadata(metadata) { 140 function verifyMetadata(metadata) {
99 chrome.test.assertEq("video/mp4", metadata.mimeType); 141 chrome.test.assertEq("video/mp4", metadata.mimeType);
100 chrome.test.assertEq(90, metadata.rotation); 142 chrome.test.assertEq(90, metadata.rotation);
101 143
102 chrome.test.assertEq(3, metadata.rawTags.length); 144 chrome.test.assertEq(3, metadata.rawTags.length);
103 145
(...skipping 13 matching lines...) Expand all
117 chrome.test.assertEq("eng", metadata.rawTags[1].tags["language"]); 159 chrome.test.assertEq("eng", metadata.rawTags[1].tags["language"]);
118 chrome.test.assertEq("90", metadata.rawTags[1].tags["rotate"]); 160 chrome.test.assertEq("90", metadata.rawTags[1].tags["rotate"]);
119 161
120 chrome.test.assertEq("aac", metadata.rawTags[2].type); 162 chrome.test.assertEq("aac", metadata.rawTags[2].type);
121 chrome.test.assertEq("2014-02-11 00:39:25", 163 chrome.test.assertEq("2014-02-11 00:39:25",
122 metadata.rawTags[2].tags["creation_time"]); 164 metadata.rawTags[2].tags["creation_time"]);
123 chrome.test.assertEq("SoundHandle", 165 chrome.test.assertEq("SoundHandle",
124 metadata.rawTags[2].tags["handler_name"]); 166 metadata.rawTags[2].tags["handler_name"]);
125 chrome.test.assertEq("eng", metadata.rawTags[2].tags["language"]); 167 chrome.test.assertEq("eng", metadata.rawTags[2].tags["language"]);
126 168
169 chrome.test.assertEq(0, metadata.attachedImages.length);
170
127 chrome.test.succeed(); 171 chrome.test.succeed();
128 } 172 }
129 173
130 return RunMetadataTest("90rotation.mp4", {}, verifyMetadata); 174 return RunMetadataTest("90rotation.mp4", {}, verifyMetadata);
131 } 175 }
132 176
133 chrome.test.getConfig(function(config) { 177 chrome.test.getConfig(function(config) {
134 var customArg = JSON.parse(config.customArg); 178 var customArg = JSON.parse(config.customArg);
135 var useProprietaryCodecs = customArg[0]; 179 var useProprietaryCodecs = customArg[0];
136 180
137 // Should still be able to sniff MP3 MIME type without proprietary codecs. 181 // Should still be able to sniff MP3 MIME type without proprietary codecs.
138 var testsToRun = [ 182 var testsToRun = [
139 ImageMIMETypeOnlyTest, 183 ImageMIMETypeOnlyTest,
140 ImageTagsTest 184 ImageTagsTest
141 ]; 185 ];
142 186
143 if (useProprietaryCodecs) { 187 if (useProprietaryCodecs) {
144 testsToRun = testsToRun.concat([ 188 testsToRun = testsToRun.concat([
145 MP3MIMETypeOnlyTest, 189 MP3MIMETypeOnlyTest,
146 MP3TagsTest, 190 MP3TagsTest,
191 MP3AttachedImageTest,
147 RotatedVideoTest 192 RotatedVideoTest
148 ]); 193 ]);
149 } 194 }
150 195
151 chrome.test.runTests(testsToRun); 196 chrome.test.runTests(testsToRun);
152 }); 197 });
OLDNEW
« no previous file with comments | « chrome/renderer/resources/extensions/media_galleries_custom_bindings.js ('k') | extensions/browser/blob_holder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698