OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 }); |
OLD | NEW |