Commit cde735f7 authored by François Degros's avatar François Degros Committed by Commit Bot

[Gallery app] Cleaned up test file exif_encoder_unittest.js

Used const/let instead of var.

Passed to ExitParser's constructor an object that actually implements
the expected interface MetadataParserLogger.

Bug: 778674
Change-Id: I788216a1cd835808550e5031ed96837e2f379786
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1647497Reviewed-by: default avatarLuciano Pacheco <lucmult@chromium.org>
Commit-Queue: Luciano Pacheco <lucmult@chromium.org>
Auto-Submit: François Degros <fdegros@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666601}
parent d652724d
...@@ -4,14 +4,28 @@ ...@@ -4,14 +4,28 @@
'use strict'; 'use strict';
/**
* @implements {MetadataParserLogger}
* @final
*/
class NoLogger {
constructor() {
this.verbose = false;
}
error() {}
log() {}
vlog() {}
}
/** /**
* Test case for ordinal exif encoding and decoding. * Test case for ordinal exif encoding and decoding.
*/ */
function testExifEncodeAndDecode() { function testExifEncodeAndDecode() {
var canvas = getSampleCanvas(); const canvas = getSampleCanvas();
var data = canvas.toDataURL('image/jpeg'); const data = canvas.toDataURL('image/jpeg');
var metadata = /** @type {!MetadataItem} */ ({ const metadata = /** @type {!MetadataItem} */ ({
mediaMimeType: 'image/jpeg', mediaMimeType: 'image/jpeg',
modificationTime: new Date(2015, 0, 7, 15, 30, 6), modificationTime: new Date(2015, 0, 7, 15, 30, 6),
ifd: { ifd: {
...@@ -30,8 +44,7 @@ function testExifEncodeAndDecode() { ...@@ -30,8 +44,7 @@ function testExifEncodeAndDecode() {
}, },
exif: { exif: {
// Lens model // Lens model
42036: 42036: {id: 0xa434, format: 2, componentCount: 10, value: 'LensModel\0'}
{id: 0xa434, format: 2, componentCount: 10, value: 'LensModel\0'}
}, },
gps: { gps: {
// GPS latitude ref // GPS latitude ref
...@@ -40,26 +53,17 @@ function testExifEncodeAndDecode() { ...@@ -40,26 +53,17 @@ function testExifEncodeAndDecode() {
} }
}); });
var encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1); const encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1);
// Assert that ExifEncoder is returned. // Assert that ExifEncoder is returned.
assertTrue(encoder instanceof ExifEncoder); assertTrue(encoder instanceof ExifEncoder);
var encodedResult = encoder.encode(); const encodedResult = encoder.encode();
// Decode encoded exif data. // Decode encoded exif data.
var exifParser = new ExifParser(this); const exifParser = new ExifParser(new NoLogger());
const parsedMetadata = {};
// Redirect .log and .vlog to console.log for debugging. const byteReader = new ByteReader(encodedResult);
exifParser.log = function(arg) {
console.log(arg);
};
exifParser.vlog = function(arg) {
console.log(arg);
};
var parsedMetadata = {};
var byteReader = new ByteReader(encodedResult);
byteReader.readString(2 + 2); // Skip marker and size. byteReader.readString(2 + 2); // Skip marker and size.
exifParser.parseExifSection(parsedMetadata, encodedResult, byteReader); exifParser.parseExifSection(parsedMetadata, encodedResult, byteReader);
...@@ -84,8 +88,8 @@ function testExifEncodeAndDecode() { ...@@ -84,8 +88,8 @@ function testExifEncodeAndDecode() {
assertEquals('N\0', parsedMetadata.ifd.gps[0x1].value); assertEquals('N\0', parsedMetadata.ifd.gps[0x1].value);
// Software should be set as the Gallery app // Software should be set as the Gallery app
assertEquals('Chrome OS Gallery App\0', assertEquals(
parsedMetadata.ifd.image[0x131].value); 'Chrome OS Gallery App\0', parsedMetadata.ifd.image[0x131].value);
// Datetime should be updated. // Datetime should be updated.
assertEquals('2015:01:07 15:30:06\0', parsedMetadata.ifd.image[0x132].value); assertEquals('2015:01:07 15:30:06\0', parsedMetadata.ifd.image[0x132].value);
...@@ -100,13 +104,13 @@ function testExifEncodeAndDecode() { ...@@ -100,13 +104,13 @@ function testExifEncodeAndDecode() {
* @return {number} Expected thumbnail size. * @return {number} Expected thumbnail size.
*/ */
function measureExpectedThumbnailSize_() { function measureExpectedThumbnailSize_() {
var canvas = getSampleCanvas(); const canvas = getSampleCanvas();
var metadata = /** @type {!MetadataItem} */ ({ const metadata = /** @type {!MetadataItem} */ ({
mediaMimeType: 'image/jpeg', mediaMimeType: 'image/jpeg',
modificationTime: new Date(2015, 0, 7, 15, 30, 6) modificationTime: new Date(2015, 0, 7, 15, 30, 6)
}); });
var encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1); const encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1);
/** @suppress {accessControls} */ /** @suppress {accessControls} */
function getThumbnailDataUrlForTest() { function getThumbnailDataUrlForTest() {
return encoder.thumbnailDataUrl; return encoder.thumbnailDataUrl;
...@@ -122,13 +126,13 @@ function measureExpectedThumbnailSize_() { ...@@ -122,13 +126,13 @@ function measureExpectedThumbnailSize_() {
* @param {boolean} expectThumbnail True if thumbnail is expected to be written. * @param {boolean} expectThumbnail True if thumbnail is expected to be written.
*/ */
function largeExifDataTestHelper_(largeFieldValueSize, expectThumbnail) { function largeExifDataTestHelper_(largeFieldValueSize, expectThumbnail) {
var canvas = getSampleCanvas(); const canvas = getSampleCanvas();
// Generate a long string. // Generate a long string.
var longString = '0'.repeat(largeFieldValueSize - 1); let longString = '0'.repeat(largeFieldValueSize - 1);
longString += '\0'; longString += '\0';
var metadata = /** @type{!MetadataItem} */ ({ const metadata = /** @type{!MetadataItem} */ ({
mediaMimeType: 'image/jpeg', mediaMimeType: 'image/jpeg',
modificationTime: new Date(2015, 0, 7, 15, 30, 6), modificationTime: new Date(2015, 0, 7, 15, 30, 6),
ifd: { ifd: {
...@@ -144,16 +148,15 @@ function largeExifDataTestHelper_(largeFieldValueSize, expectThumbnail) { ...@@ -144,16 +148,15 @@ function largeExifDataTestHelper_(largeFieldValueSize, expectThumbnail) {
} }
}); });
var encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1); const encoder = ImageEncoder.encodeMetadata(metadata, canvas, 1);
// For failure case, an error is thrown. // For failure case, an error is thrown.
var encodedResult = encoder.encode(); const encodedResult = encoder.encode();
// Decode encoded exif data and check thumbnail is written or not. // Decode encoded exif data and check thumbnail is written or not.
var exifParser = const exifParser = new ExifParser(new NoLogger());
new ExifParser(/** @type{MetadataParserLogger} */ ({verbose: false})); const parsedMetadata = {};
var parsedMetadata = {}; const byteReader = new ByteReader(encodedResult);
var byteReader = new ByteReader(encodedResult);
byteReader.readString(2 + 2); // Skip marker and size. byteReader.readString(2 + 2); // Skip marker and size.
exifParser.parseExifSection(parsedMetadata, encodedResult, byteReader); exifParser.parseExifSection(parsedMetadata, encodedResult, byteReader);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment