clearOldFiles() test must run on the emulator

It seems that Robolectric does not implement android.system.Os so the
atime checking code cannot be tested there.  Works fine on the emulator.
This commit is contained in:
Hans-Christoph Steiner 2016-08-16 11:19:42 +02:00
parent c9e3643712
commit 40541fadfe

View File

@ -1,12 +1,10 @@
package org.fdroid.fdroid; package org.fdroid.fdroid;
import android.support.test.runner.AndroidJUnit4;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.fdroid.fdroid.BuildConfig;
import org.fdroid.fdroid.CleanCacheService;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -14,11 +12,11 @@ import java.io.IOException;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
// TODO: Use sdk=24 when Robolectric supports this @RunWith(AndroidJUnit4.class)
@Config(constants = BuildConfig.class, sdk = 23)
@RunWith(RobolectricGradleTestRunner.class)
public class CleanCacheServiceTest { public class CleanCacheServiceTest {
public static final String TAG = "CleanCacheServiceTest";
@Test @Test
public void testClearOldFiles() throws IOException, InterruptedException { public void testClearOldFiles() throws IOException, InterruptedException {
File tempDir = new File(System.getProperty("java.io.tmpdir")); File tempDir = new File(System.getProperty("java.io.tmpdir"));
@ -46,13 +44,18 @@ public class CleanCacheServiceTest {
assertTrue(second.createNewFile()); assertTrue(second.createNewFile());
assertTrue(second.exists()); assertTrue(second.exists());
CleanCacheService.clearOldFiles(dir, 3000); CleanCacheService.clearOldFiles(dir, 3000); // check all in dir
assertFalse(first.exists()); assertFalse(first.exists());
assertTrue(second.exists()); assertTrue(second.exists());
Thread.sleep(7000); Thread.sleep(7000);
CleanCacheService.clearOldFiles(dir, 3000); CleanCacheService.clearOldFiles(second, 3000); // check just second file
assertFalse(first.exists()); assertFalse(first.exists());
assertFalse(second.exists()); assertFalse(second.exists());
// make sure it doesn't freak out on a non-existant file
File nonexistant = new File(tempDir, "nonexistant");
CleanCacheService.clearOldFiles(nonexistant, 1);
CleanCacheService.clearOldFiles(null, 1);
} }
} }