summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/gallery3d/exif/ExifReaderTest.java')
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifReaderTest.java165
1 files changed, 0 insertions, 165 deletions
diff --git a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java b/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
deleted file mode 100644
index 4b5c02941..000000000
--- a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.gallery3d.exif;
-
-import android.test.suitebuilder.annotation.MediumTest;
-
-import android.graphics.BitmapFactory;
-
-import java.util.List;
-import java.util.Map;
-
-public class ExifReaderTest extends ExifXmlDataTestCase {
- private static final String TAG = "ExifReaderTest";
-
- private ExifInterface mInterface;
- private List<Map<Short, List<String>>> mGroundTruth;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mGroundTruth = ExifXmlReader.readXml(getXmlParser());
- }
-
- public ExifReaderTest(int imgRes, int xmlRes) {
- super(imgRes, xmlRes);
- mInterface = new ExifInterface();
- }
-
- public ExifReaderTest(String imgPath, String xmlPath) {
- super(imgPath, xmlPath);
- mInterface = new ExifInterface();
- }
-
- @MediumTest
- public void testRead() throws Exception {
- try {
- ExifReader reader = new ExifReader(mInterface);
- ExifData exifData = reader.read(getImageInputStream());
- for (int i = 0; i < IfdId.TYPE_IFD_COUNT; i++) {
- checkIfd(exifData.getIfdData(i), mGroundTruth.get(i));
- }
- checkThumbnail(exifData);
- } catch (Exception e) {
- throw new Exception(getImageTitle(), e);
- }
- }
-
- private void checkThumbnail(ExifData exifData) {
- Map<Short, List<String>> ifd1Truth = mGroundTruth.get(IfdId.TYPE_IFD_1);
-
- List<String> typeTagValue = ifd1Truth.get(ExifInterface.TAG_COMPRESSION);
- if (typeTagValue == null)
- return;
-
- IfdData ifd1 = exifData.getIfdData(IfdId.TYPE_IFD_1);
- if (ifd1 == null)
- fail(getImageTitle() + ": failed to find IFD1");
-
- String typeTagTruth = typeTagValue.get(0);
-
- int type = (int) ifd1.getTag(ExifInterface.getTrueTagKey(ExifInterface.TAG_COMPRESSION))
- .getValueAt(0);
-
- if (String.valueOf(ExifInterface.Compression.JPEG).equals(typeTagTruth)) {
- assertTrue(getImageTitle(), type == ExifInterface.Compression.JPEG);
- assertTrue(getImageTitle(), exifData.hasCompressedThumbnail());
- byte[] thumbnail = exifData.getCompressedThumbnail();
- assertTrue(getImageTitle(),
- BitmapFactory.decodeByteArray(thumbnail, 0, thumbnail.length) != null);
- } else if (String.valueOf(ExifInterface.Compression.UNCOMPRESSION).equals(typeTagTruth)) {
- assertTrue(getImageTitle(), type == ExifInterface.Compression.UNCOMPRESSION);
- // Try to check the strip count with the formula provided by EXIF spec.
- int planarType = ExifInterface.PlanarConfiguration.CHUNKY;
- ExifTag planarTag = ifd1.getTag(ExifInterface
- .getTrueTagKey(ExifInterface.TAG_PLANAR_CONFIGURATION));
- if (planarTag != null) {
- planarType = (int) planarTag.getValueAt(0);
- }
-
- if (!ifd1Truth.containsKey(ExifInterface.TAG_IMAGE_LENGTH) ||
- !ifd1Truth.containsKey(ExifInterface.TAG_ROWS_PER_STRIP)) {
- return;
- }
-
- ExifTag heightTag = ifd1.getTag(ExifInterface
- .getTrueTagKey(ExifInterface.TAG_IMAGE_LENGTH));
- ExifTag rowPerStripTag = ifd1.getTag(ExifInterface
- .getTrueTagKey(ExifInterface.TAG_ROWS_PER_STRIP));
-
- // Fail the test if required tags are missing
- if (heightTag == null || rowPerStripTag == null) {
- fail(getImageTitle());
- }
-
- int imageLength = (int) heightTag.getValueAt(0);
- int rowsPerStrip = (int) rowPerStripTag.getValueAt(0);
- int stripCount = ifd1.getTag(
- ExifInterface.getTrueTagKey(ExifInterface.TAG_STRIP_OFFSETS))
- .getComponentCount();
-
- if (planarType == ExifInterface.PlanarConfiguration.CHUNKY) {
- assertTrue(getImageTitle(),
- stripCount == (imageLength + rowsPerStrip - 1) / rowsPerStrip);
- } else {
- if (!ifd1Truth.containsKey(ExifInterface.TAG_SAMPLES_PER_PIXEL)) {
- return;
- }
- ExifTag samplePerPixelTag = ifd1.getTag(ExifInterface
- .getTrueTagKey(ExifInterface.TAG_SAMPLES_PER_PIXEL));
- int samplePerPixel = (int) samplePerPixelTag.getValueAt(0);
- assertTrue(getImageTitle(),
- stripCount ==
- (imageLength + rowsPerStrip - 1) / rowsPerStrip * samplePerPixel);
- }
-
- if (!ifd1Truth.containsKey(ExifInterface.TAG_STRIP_BYTE_COUNTS)) {
- return;
- }
- ExifTag byteCountTag = ifd1.getTag(ExifInterface
- .getTrueTagKey(ExifInterface.TAG_STRIP_BYTE_COUNTS));
- short byteCountDataType = byteCountTag.getDataType();
- for (int i = 0; i < stripCount; i++) {
- if (byteCountDataType == ExifTag.TYPE_UNSIGNED_SHORT) {
- assertEquals(getImageTitle(),
- byteCountTag.getValueAt(i), exifData.getStrip(i).length);
- } else {
- assertEquals(getImageTitle(),
- byteCountTag.getValueAt(i), exifData.getStrip(i).length);
- }
- }
- }
- }
-
- private void checkIfd(IfdData ifd, Map<Short, List<String>> ifdValue) {
- if (ifd == null) {
- assertEquals(getImageTitle(), 0, ifdValue.size());
- return;
- }
- ExifTag[] tags = ifd.getAllTags();
- for (ExifTag tag : tags) {
- List<String> truth = ifdValue.get(tag.getTagId());
- assertNotNull(String.format("Tag %x, ", tag.getTagId()) + getImageTitle(), truth);
- if (truth.contains(null)) {
- continue;
- }
- assertTrue(String.format("Tag %x, ", tag.getTagId()) + getImageTitle(),
- truth.contains(Util.tagValueToString(tag).trim()));
- }
- assertEquals(getImageTitle(), ifdValue.size(), tags.length);
- }
-}