summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/gallery3d/exif/ExifTagTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/gallery3d/exif/ExifTagTest.java')
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifTagTest.java219
1 files changed, 0 insertions, 219 deletions
diff --git a/tests/src/com/android/gallery3d/exif/ExifTagTest.java b/tests/src/com/android/gallery3d/exif/ExifTagTest.java
deleted file mode 100644
index e6a41ecfa..000000000
--- a/tests/src/com/android/gallery3d/exif/ExifTagTest.java
+++ /dev/null
@@ -1,219 +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.SmallTest;
-
-import junit.framework.TestCase;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ExifTagTest extends TestCase {
-
- private static long MAX_UNSIGNED_LONG = (1L << 32) - 1;
- private static int MAX_LONG = Integer.MAX_VALUE;
- private static int MIN_LONG = Integer.MIN_VALUE;
-
- Map<Integer, ExifTag> mTestTags;
- ExifInterface mInterface;
- private ExifTag mVersionTag;
- private ExifTag mGpsVersionTag;
- private ExifTag mModelTag;
- private ExifTag mDateTimeTag;
- private ExifTag mCompressionTag;
- private ExifTag mThumbnailFormatTag;
- private ExifTag mLongitudeTag;
- private ExifTag mShutterTag;
- private ExifTag mInteropIndex;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mInterface = new ExifInterface();
-
- // TYPE_UNDEFINED with 4 components
- mVersionTag = mInterface.buildTag(ExifInterface.TAG_EXIF_VERSION, new byte[] {
- 5, 4, 3, 2
- });
- // TYPE_UNSIGNED_BYTE with 4 components
- mGpsVersionTag = mInterface.buildTag(ExifInterface.TAG_GPS_VERSION_ID, new byte[] {
- 6, 7, 8, 9
- });
- // TYPE ASCII with arbitrary length
- mModelTag = mInterface.buildTag(ExifInterface.TAG_MODEL, "helloworld");
- // TYPE_ASCII with 20 components
- mDateTimeTag = mInterface.buildTag(ExifInterface.TAG_DATE_TIME, "2013:02:11 20:20:20");
- // TYPE_UNSIGNED_SHORT with 1 components
- mCompressionTag = mInterface.buildTag(ExifInterface.TAG_COMPRESSION, 100);
- // TYPE_UNSIGNED_LONG with 1 components
- mThumbnailFormatTag =
- mInterface.buildTag(ExifInterface.TAG_JPEG_INTERCHANGE_FORMAT, 100);
- // TYPE_UNSIGNED_RATIONAL with 3 components
- mLongitudeTag = mInterface.buildTag(ExifInterface.TAG_GPS_LONGITUDE, new Rational[] {
- new Rational(2, 2), new Rational(11, 11),
- new Rational(102, 102)
- });
- // TYPE_RATIONAL with 1 components
- mShutterTag = mInterface
- .buildTag(ExifInterface.TAG_SHUTTER_SPEED_VALUE, new Rational(4, 6));
- // TYPE_ASCII with arbitrary length
- mInteropIndex = mInterface.buildTag(ExifInterface.TAG_INTEROPERABILITY_INDEX, "foo");
-
- mTestTags = new HashMap<Integer, ExifTag>();
-
- mTestTags.put(ExifInterface.TAG_EXIF_VERSION, mVersionTag);
- mTestTags.put(ExifInterface.TAG_GPS_VERSION_ID, mGpsVersionTag);
- mTestTags.put(ExifInterface.TAG_MODEL, mModelTag);
- mTestTags.put(ExifInterface.TAG_DATE_TIME, mDateTimeTag);
- mTestTags.put(ExifInterface.TAG_COMPRESSION, mCompressionTag);
- mTestTags.put(ExifInterface.TAG_JPEG_INTERCHANGE_FORMAT, mThumbnailFormatTag);
- mTestTags.put(ExifInterface.TAG_GPS_LONGITUDE, mLongitudeTag);
- mTestTags.put(ExifInterface.TAG_SHUTTER_SPEED_VALUE, mShutterTag);
- mTestTags.put(ExifInterface.TAG_INTEROPERABILITY_INDEX, mInteropIndex);
- }
-
- @Override
- public void tearDown() throws Exception {
- super.tearDown();
- mInterface = null;
- mTestTags = null;
- }
-
- @SmallTest
- public void testValueType() {
- for (ExifTag tag : mTestTags.values()) {
- assertTrue(tag != null);
- int count = tag.getComponentCount();
- int intBuf[] = new int[count];
- long longBuf[] = new long[count];
- byte byteBuf[] = new byte[count];
- Rational rationalBuf[] = new Rational[count];
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < count; i++) {
- intBuf[i] = 0;
- longBuf[i] = 0;
- byteBuf[i] = 0;
- rationalBuf[i] = new Rational(0, 0);
- // The string size should equal to component count - 1
- if (i != count - 1) {
- sb.append("*");
- } else {
- sb.append("\0");
- }
- }
- String strBuf = sb.toString();
-
- checkTypeByte(tag, byteBuf);
- checkTypeAscii(tag, strBuf);
- checkTypeUnsignedShort(tag, intBuf);
- checkTypeUnsignedLong(tag, intBuf, longBuf);
- checkTypeLong(tag, intBuf);
- checkTypeRational(tag, rationalBuf);
- checkTypeUnsignedRational(tag, rationalBuf);
- }
- }
-
- private void checkTypeByte(ExifTag tag, byte[] buf) {
- short type = tag.getDataType();
- assertFalse("\nTag: " + tag.toString(), tag.setValue(buf)
- ^ (type == ExifTag.TYPE_UNDEFINED || type == ExifTag.TYPE_UNSIGNED_BYTE));
- }
-
- private void checkTypeAscii(ExifTag tag, String str) {
- short type = tag.getDataType();
- assertFalse("\nTag: " + tag.toString(), tag.setValue(str)
- ^ (type == ExifTag.TYPE_ASCII || type == ExifTag.TYPE_UNDEFINED));
- }
-
- private void checkTypeUnsignedShort(ExifTag tag, int[] intBuf) {
- short type = tag.getDataType();
- assertFalse("\nTag: " + tag.toString(),
- tag.setValue(intBuf)
- ^ (type == ExifTag.TYPE_UNSIGNED_SHORT
- || type == ExifTag.TYPE_UNSIGNED_LONG
- || type == ExifTag.TYPE_LONG));
- }
-
- private void checkTypeUnsignedLong(ExifTag tag, int[] intBuf, long[] longBuf) {
-
- // Test value only for unsigned long.
- int count = intBuf.length;
- intBuf[count - 1] = MAX_LONG;
- tag.setValue(intBuf);
- longBuf[count - 1] = MAX_UNSIGNED_LONG;
-
- assertFalse("\nTag: " + tag.toString(), tag.setValue(longBuf)
- ^ (tag.getDataType() == ExifTag.TYPE_UNSIGNED_LONG));
-
- intBuf[count - 1] = 0;
- // Test invalid value for all type.
- longBuf[count - 1] = MAX_UNSIGNED_LONG + 1;
- assertFalse(tag.setValue(longBuf));
- longBuf[count - 1] = 0;
- }
-
- private void checkTypeLong(ExifTag tag, int[] intBuf) {
- int count = intBuf.length;
- intBuf[count - 1] = MAX_LONG;
- tag.setValue(intBuf);
- intBuf[count - 1] = MIN_LONG;
-
- assertFalse("\nTag: " + tag.toString(), tag.setValue(intBuf)
- ^ (tag.getDataType() == ExifTag.TYPE_LONG));
- intBuf[count - 1] = 0;
- }
-
- private void checkTypeRational(ExifTag tag, Rational rationalBuf[]) {
- int count = rationalBuf.length;
- Rational r = rationalBuf[count - 1];
- rationalBuf[count - 1] = new Rational(MAX_LONG, MIN_LONG);
-
- assertFalse("\nTag: " + tag.toString(), tag.setValue(rationalBuf)
- ^ (tag.getDataType() == ExifTag.TYPE_RATIONAL));
-
- if (tag.getDataType() == ExifTag.TYPE_RATIONAL) {
- // check overflow
-
- rationalBuf[count - 1] = new Rational(MAX_LONG + 1L, MIN_LONG);
- assertFalse(tag.setValue(rationalBuf));
-
- rationalBuf[count - 1] = new Rational(MAX_LONG, MIN_LONG - 1L);
- assertFalse(tag.setValue(rationalBuf));
- }
- rationalBuf[count - 1] = r;
- }
-
- private void checkTypeUnsignedRational(ExifTag tag, Rational rationalBuf[]) {
- int count = rationalBuf.length;
- Rational r = rationalBuf[count - 1];
- rationalBuf[count - 1] = new Rational(MAX_UNSIGNED_LONG, MAX_UNSIGNED_LONG);
-
- assertFalse("\nTag: " + tag.toString(), tag.setValue(rationalBuf)
- ^ (tag.getDataType() == ExifTag.TYPE_UNSIGNED_RATIONAL));
-
- if (tag.getDataType() == ExifTag.TYPE_UNSIGNED_RATIONAL) {
- // check overflow
- rationalBuf[count - 1] = new Rational(MAX_UNSIGNED_LONG + 1, 0);
- assertFalse(tag.setValue(rationalBuf));
-
- rationalBuf[count - 1] = new Rational(MAX_UNSIGNED_LONG, -1);
- assertFalse(tag.setValue(rationalBuf));
- }
- rationalBuf[count - 1] = r;
- }
-}