package cgeo.geocaching.files;
import static org.assertj.core.api.Java6Assertions.assertThat;
import android.annotation.TargetApi;
import android.os.Looper;
import android.test.ActivityInstrumentationTestCase2;
@TargetApi(8)
public class GpxFileListActivityTest extends ActivityInstrumentationTestCase2<GpxFileListActivity> {
private final GpxFileListActivity importGpxActivity;
public GpxFileListActivityTest() {
super(GpxFileListActivity.class);
// This is necessary because the GpxFileListActivity class creates Handler instances (although
// we will never give them a chance to run).
try {
Looper.prepare();
} catch (final RuntimeException ignored) {
// Looper has already been created for this thread.
}
importGpxActivity = new GpxFileListActivity();
}
public void testPocketQueryCreator() {
assertImport("pocketquery_name.zip");
assertImport("pocketquery_รค.1. .zip");
assertImport("pocketquery_name.ZIP");
assertImport("pocketquery_name.gpx");
}
public void testDifferentFileTypes() {
assertImport("1234567.gpx");
assertImport("1234567.GPX");
assertImport(".gpx");
assertImport("1234567.loc");
assertImport("1234567.LOC");
assertImport("1234567.zip");
assertImport("1234567.ZIP");
}
public void testPocketQueries() {
assertImport("12345678.zip");
assertImport("1234567_query.zip");
assertImport("12345678_query.zip");
assertImport("12345678_my_query_1.zip");
assertImport("12345678_my query.zip");
denyImport("1234567.gpy");
denyImport("1234567.agpx");
denyImport("1234567");
denyImport("");
denyImport("gpx");
denyImport("test.zip");
denyImport("zip");
denyImport(".zip");
denyImport("123456.zip");
denyImport("1234567query.zip");
denyImport("1234567_.zip");
denyImport("1234567-wpts.gpx");
denyImport("1234567-wpts-1.gpx");
denyImport("1234567-wpts(1).gpx");
}
public void testOpenCachingExports() {
assertImport("ocde12345.zip");
assertImport("ocde12345678.zip");
denyImport("ocde_12345678.zip");
denyImport("acde12345678.zip");
}
private void assertImport(final String fileName) {
assertThat(importGpxActivity.filenameBelongsToList(fileName)).isTrue();
}
private void denyImport(final String fileName) {
assertThat(importGpxActivity.filenameBelongsToList(fileName)).isFalse();
}
}