summaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
authorEarl Ou <shunhsingou@google.com>2012-10-18 17:08:21 +0800
committerEarl Ou <shunhsingou@google.com>2012-10-24 11:13:21 +0800
commit9cf0bba7e618f9a4831c3b02e255997191a50b5d (patch)
tree574462e950e7bcab46c24d8b94f64b9a87783290 /tests/src
parent120cdf4530bb3dc61643ab700caeefd4f9190793 (diff)
downloadandroid_packages_apps_Snap-9cf0bba7e618f9a4831c3b02e255997191a50b5d.tar.gz
android_packages_apps_Snap-9cf0bba7e618f9a4831c3b02e255997191a50b5d.tar.bz2
android_packages_apps_Snap-9cf0bba7e618f9a4831c3b02e255997191a50b5d.zip
Use List to store duplicated exif tag
Use List so the number of tags can be calculated. Change-Id: I5dfb085fccadab4f0febf2944b64d4dfe9ecbd63
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifParserTest.java9
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifReaderTest.java7
-rw-r--r--tests/src/com/android/gallery3d/exif/ExifXmlReader.java22
3 files changed, 21 insertions, 17 deletions
diff --git a/tests/src/com/android/gallery3d/exif/ExifParserTest.java b/tests/src/com/android/gallery3d/exif/ExifParserTest.java
index eb5a5742a..422d12717 100644
--- a/tests/src/com/android/gallery3d/exif/ExifParserTest.java
+++ b/tests/src/com/android/gallery3d/exif/ExifParserTest.java
@@ -21,7 +21,6 @@ import android.graphics.BitmapFactory;
import java.util.List;
import java.util.Map;
-import java.util.Set;
public class ExifParserTest extends ExifXmlDataTestCase {
private static final String TAG = "ExifParserTest";
@@ -34,7 +33,7 @@ public class ExifParserTest extends ExifXmlDataTestCase {
super(imgPath, xmlPath);
}
- private List<Map<Short, Set<String>>> mGroundTruth;
+ private List<Map<Short, List<String>>> mGroundTruth;
@Override
public void setUp() throws Exception {
@@ -76,7 +75,7 @@ public class ExifParserTest extends ExifXmlDataTestCase {
}
private void checkTag(ExifTag tag) {
- Set<String> truth = mGroundTruth.get(tag.getIfd()).get(tag.getTagId());
+ List<String> truth = mGroundTruth.get(tag.getIfd()).get(tag.getTagId());
if (truth == null) {
fail(String.format("Unknown Tag %02x", tag.getTagId()) + ", " + getImageTitle());
@@ -93,7 +92,7 @@ public class ExifParserTest extends ExifXmlDataTestCase {
private void parseOneIfd(int ifd, int options) throws Exception {
try {
- Map<Short, Set<String>> expectedResult = mGroundTruth.get(ifd);
+ Map<Short, List<String>> expectedResult = mGroundTruth.get(ifd);
int numOfTag = 0;
ExifParser parser = ExifParser.parse(getImageInputStream(), options);
int event = parser.next();
@@ -127,7 +126,7 @@ public class ExifParserTest extends ExifXmlDataTestCase {
}
event = parser.next();
}
- assertEquals(expectedResult.size(), numOfTag);
+ assertEquals(getImageTitle(), ExifXmlReader.getTrueTagNumber(expectedResult), numOfTag);
} catch (Exception e) {
throw new Exception(getImageTitle(), e);
}
diff --git a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java b/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
index 82dcdc7b1..404946252 100644
--- a/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
+++ b/tests/src/com/android/gallery3d/exif/ExifReaderTest.java
@@ -20,7 +20,6 @@ import android.graphics.BitmapFactory;
import java.util.List;
import java.util.Map;
-import java.util.Set;
public class ExifReaderTest extends ExifXmlDataTestCase {
private static final String TAG = "ExifReaderTest";
@@ -37,7 +36,7 @@ public class ExifReaderTest extends ExifXmlDataTestCase {
try {
ExifReader reader = new ExifReader();
ExifData exifData = reader.read(getImageInputStream());
- List<Map<Short, Set<String>>> groundTruth = ExifXmlReader.readXml(getXmlParser());
+ List<Map<Short, List<String>>> groundTruth = ExifXmlReader.readXml(getXmlParser());
for (int i = 0; i < IfdId.TYPE_IFD_COUNT; i++) {
checkIfd(exifData.getIfdData(i), groundTruth.get(i));
}
@@ -105,14 +104,14 @@ public class ExifReaderTest extends ExifXmlDataTestCase {
}
}
- private void checkIfd(IfdData ifd, Map<Short, Set<String>> ifdValue) {
+ 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) {
- Set<String> truth = ifdValue.get(tag.getTagId());
+ 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(),
diff --git a/tests/src/com/android/gallery3d/exif/ExifXmlReader.java b/tests/src/com/android/gallery3d/exif/ExifXmlReader.java
index 5d1970988..bb08ccd1c 100644
--- a/tests/src/com/android/gallery3d/exif/ExifXmlReader.java
+++ b/tests/src/com/android/gallery3d/exif/ExifXmlReader.java
@@ -22,10 +22,8 @@ import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
public class ExifXmlReader {
private static final String TAG_EXIF = "exif";
@@ -48,13 +46,13 @@ public class ExifXmlReader {
* @throws XmlPullParserException
* @throws IOException
*/
- static public List<Map<Short, Set<String>>> readXml(XmlPullParser parser)
+ static public List<Map<Short, List<String>>> readXml(XmlPullParser parser)
throws XmlPullParserException, IOException {
- List<Map<Short, Set<String>>> exifData =
- new ArrayList<Map<Short, Set<String>>>(IfdId.TYPE_IFD_COUNT);
+ List<Map<Short, List<String>>> exifData =
+ new ArrayList<Map<Short, List<String>>>(IfdId.TYPE_IFD_COUNT);
for (int i = 0; i < IfdId.TYPE_IFD_COUNT; i++) {
- exifData.add(new HashMap<Short, Set<String>>());
+ exifData.add(new HashMap<Short, List<String>>());
}
while (parser.next() != XmlPullParser.END_DOCUMENT) {
@@ -83,9 +81,9 @@ public class ExifXmlReader {
if (ifdId < 0) {
// TODO: the MarkerNote segment.
} else {
- Set<String> tagData = exifData.get(ifdId).get(id);
+ List<String> tagData = exifData.get(ifdId).get(id);
if (tagData == null) {
- tagData = new HashSet<String>();
+ tagData = new ArrayList<String>();
exifData.get(ifdId).put(id, tagData);
}
if (NO_VALUE.equals(value)) {
@@ -116,4 +114,12 @@ public class ExifXmlReader {
return -1;
}
}
+
+ static public int getTrueTagNumber(Map<Short, List<String>> ifdData) {
+ int size = 0;
+ for (List<String> tag: ifdData.values()) {
+ size += tag.size();
+ }
+ return size;
+ }
}