diff options
Diffstat (limited to 'tests/src')
| -rw-r--r-- | tests/src/cgeo/geocaching/files/FileTypeDetectorTest.java | 51 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java | 7 |
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/files/FileTypeDetectorTest.java b/tests/src/cgeo/geocaching/files/FileTypeDetectorTest.java new file mode 100644 index 0000000..ec7b3a8 --- /dev/null +++ b/tests/src/cgeo/geocaching/files/FileTypeDetectorTest.java @@ -0,0 +1,51 @@ +package cgeo.geocaching.files; + +import static org.assertj.core.api.Assertions.assertThat; + +import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase; +import cgeo.geocaching.test.R; + +import org.eclipse.jdt.annotation.NonNull; + +import android.content.ContentResolver; +import android.net.Uri; + +public class FileTypeDetectorTest extends AbstractResourceInstrumentationTestCase { + + private static class FileContentProvider extends ContentResolver { + + public FileContentProvider() { + super(null); + } + + } + + public void testUnknown() throws Exception { + assertFileType(R.raw.gc2cjpf_html, FileType.UNKNOWN); + assertFileType(R.raw.map1, FileType.UNKNOWN); + } + + public void testLoc() throws Exception { + assertFileType(R.raw.gc1bkp3_loc, FileType.LOC); + assertFileType(R.raw.oc5952_loc, FileType.LOC); + assertFileType(R.raw.waymarking_loc, FileType.LOC); + } + + public void testGpx() throws Exception { + assertFileType(R.raw.gc1bkp3_gpx100, FileType.GPX); + assertFileType(R.raw.gc1bkp3_gpx101, FileType.GPX); + assertFileType(R.raw.oc5952_gpx, FileType.GPX); + assertFileType(R.raw.renamed_waypoints_wpts, FileType.GPX); + assertFileType(R.raw.waymarking_gpx, FileType.GPX); + } + + public void testZip() throws Exception { + assertFileType(R.raw.pq_error, FileType.ZIP); + assertFileType(R.raw.pq7545915, FileType.ZIP); + } + + private void assertFileType(final int resourceId, final @NonNull FileType fileType) { + final Uri resourceURI = getResourceURI(resourceId); + assertThat(new FileTypeDetector(resourceURI, new FileContentProvider()).getFileType()).isEqualTo(fileType); + } +} diff --git a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java index df8dc1f..cbad794 100644 --- a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java +++ b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java @@ -12,7 +12,9 @@ import cgeo.geocaching.files.GPX10Parser; import cgeo.geocaching.files.ParserException; import cgeo.geocaching.list.StoredList; +import android.content.ContentResolver; import android.content.res.Resources; +import android.net.Uri; import android.test.InstrumentationTestCase; import java.io.File; @@ -102,4 +104,9 @@ public abstract class AbstractResourceInstrumentationTestCase extends Instrument instream.close(); } } + + protected Uri getResourceURI(int resId) { + Resources resources = getInstrumentation().getContext().getResources(); + return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + resources.getResourcePackageName(resId) + '/' + resources.getResourceTypeName(resId) + '/' + resources.getResourceEntryName(resId)); + } } |
