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

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: Created 6 years, 8 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.attachedPictures.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.attachedPictures.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.attachedPictures.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.attachedPictures.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.attachedPictures.length);
119 chrome.test.assertEq('image/png', metadata.attachedPictures[0].type);
120 chrome.test.assertEq(155752, metadata.attachedPictures[0].size);
vandebo (ex-Chrome) 2014/04/23 23:22:45 Maybe check a few bytes at the start and end as we
tommycli 2014/04/29 00:15:51 Done.
121
122 chrome.test.succeed();
123 }
124
94 return RunMetadataTest("id3_png_test.mp3", {}, verifyMetadata); 125 return RunMetadataTest("id3_png_test.mp3", {}, verifyMetadata);
95 } 126 }
96 127
97 function RotatedVideoTest() { 128 function RotatedVideoTest() {
98 function verifyMetadata(metadata) { 129 function verifyMetadata(metadata) {
99 chrome.test.assertEq("video/mp4", metadata.mimeType); 130 chrome.test.assertEq("video/mp4", metadata.mimeType);
100 chrome.test.assertEq(90, metadata.rotation); 131 chrome.test.assertEq(90, metadata.rotation);
101 132
102 chrome.test.assertEq(3, metadata.rawTags.length); 133 chrome.test.assertEq(3, metadata.rawTags.length);
103 134
(...skipping 13 matching lines...) Expand all
117 chrome.test.assertEq("eng", metadata.rawTags[1].tags["language"]); 148 chrome.test.assertEq("eng", metadata.rawTags[1].tags["language"]);
118 chrome.test.assertEq("90", metadata.rawTags[1].tags["rotate"]); 149 chrome.test.assertEq("90", metadata.rawTags[1].tags["rotate"]);
119 150
120 chrome.test.assertEq("aac", metadata.rawTags[2].type); 151 chrome.test.assertEq("aac", metadata.rawTags[2].type);
121 chrome.test.assertEq("2014-02-11 00:39:25", 152 chrome.test.assertEq("2014-02-11 00:39:25",
122 metadata.rawTags[2].tags["creation_time"]); 153 metadata.rawTags[2].tags["creation_time"]);
123 chrome.test.assertEq("SoundHandle", 154 chrome.test.assertEq("SoundHandle",
124 metadata.rawTags[2].tags["handler_name"]); 155 metadata.rawTags[2].tags["handler_name"]);
125 chrome.test.assertEq("eng", metadata.rawTags[2].tags["language"]); 156 chrome.test.assertEq("eng", metadata.rawTags[2].tags["language"]);
126 157
158 chrome.test.assertEq(0, metadata.attachedPictures.length);
159
127 chrome.test.succeed(); 160 chrome.test.succeed();
128 } 161 }
129 162
130 return RunMetadataTest("90rotation.mp4", {}, verifyMetadata); 163 return RunMetadataTest("90rotation.mp4", {}, verifyMetadata);
131 } 164 }
132 165
133 chrome.test.getConfig(function(config) { 166 chrome.test.getConfig(function(config) {
134 var customArg = JSON.parse(config.customArg); 167 var customArg = JSON.parse(config.customArg);
135 var useProprietaryCodecs = customArg[0]; 168 var useProprietaryCodecs = customArg[0];
136 169
137 // Should still be able to sniff MP3 MIME type without proprietary codecs. 170 // Should still be able to sniff MP3 MIME type without proprietary codecs.
138 var testsToRun = [ 171 var testsToRun = [
139 ImageMIMETypeOnlyTest, 172 ImageMIMETypeOnlyTest,
140 ImageTagsTest 173 ImageTagsTest
141 ]; 174 ];
142 175
143 if (useProprietaryCodecs) { 176 if (useProprietaryCodecs) {
144 testsToRun = testsToRun.concat([ 177 testsToRun = testsToRun.concat([
145 MP3MIMETypeOnlyTest, 178 MP3MIMETypeOnlyTest,
146 MP3TagsTest, 179 MP3TagsTest,
180 MP3AttachedImageTest,
147 RotatedVideoTest 181 RotatedVideoTest
148 ]); 182 ]);
149 } 183 }
150 184
151 chrome.test.runTests(testsToRun); 185 chrome.test.runTests(testsToRun);
152 }); 186 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698