diff options
Diffstat (limited to 'ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java')
| -rw-r--r-- | ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java b/ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java index 14866cd15..2fb5b5cad 100644 --- a/ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java +++ b/ime/app/src/test/java/com/anysoftkeyboard/prefs/GlobalPrefsBackupTest.java @@ -2,6 +2,7 @@ package com.anysoftkeyboard.prefs; import static androidx.test.core.app.ApplicationProvider.getApplicationContext; +import android.os.Environment; import android.support.annotation.Nullable; import android.support.v4.util.Pair; import com.anysoftkeyboard.AnySoftKeyboardRobolectricTestRunner; @@ -11,6 +12,7 @@ import com.anysoftkeyboard.prefs.backup.PrefsRoot; import com.anysoftkeyboard.test.TestUtils; import com.menny.android.anysoftkeyboard.AnyApplication; import com.menny.android.anysoftkeyboard.R; +import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -53,6 +55,43 @@ public class GlobalPrefsBackupTest { } @Test + public void testBackupRestoreCustomPath() throws Exception { + File customFile = new File(Environment.getExternalStorageDirectory() + "/testBackup.xml"); + final FakePrefsProvider fakePrefsProvider = new FakePrefsProvider("id1"); + List<GlobalPrefsBackup.ProviderDetails> fakeDetails = + Collections.singletonList( + new GlobalPrefsBackup.ProviderDetails( + fakePrefsProvider, R.string.pop_text_type_title)); + + final AtomicReference<List<GlobalPrefsBackup.ProviderDetails>> hits = + new AtomicReference<>(new ArrayList<>()); + + GlobalPrefsBackup.updateCustomFilename(customFile); + + GlobalPrefsBackup.backup(Pair.create(fakeDetails, new Boolean[] {true})) + .blockingSubscribe(p -> hits.get().add(p)); + + Assert.assertEquals(1, hits.get().size()); + Assert.assertSame(fakePrefsProvider, hits.get().get(0).provider); + + hits.get().clear(); + + Assert.assertTrue(customFile.exists()); + Assert.assertTrue(customFile.length() > 0); + + Assert.assertNull(fakePrefsProvider.storedPrefsRoot); + + GlobalPrefsBackup.updateCustomFilename(customFile); + + GlobalPrefsBackup.restore(Pair.create(fakeDetails, new Boolean[] {true})) + .blockingSubscribe(p -> hits.get().add(p)); + + Assert.assertEquals(1, hits.get().size()); + Assert.assertSame(fakePrefsProvider, hits.get().get(0).provider); + Assert.assertNotNull(fakePrefsProvider.storedPrefsRoot); + } + + @Test public void testGetAllPrefsProviders() { final List<GlobalPrefsBackup.ProviderDetails> allPrefsProviders = GlobalPrefsBackup.getAllPrefsProviders(getApplicationContext()); |
