Search in sources :

Example 16 with PeriodicSync

use of android.content.PeriodicSync in project robolectric by robolectric.

the class ShadowContentResolverTest method shouldGetPeriodSyncs.

@Test
public void shouldGetPeriodSyncs() {
    assertThat(ContentResolver.getPeriodicSyncs(a, AUTHORITY).size()).isEqualTo(0);
    ContentResolver.addPeriodicSync(a, AUTHORITY, new Bundle(), 6000L);
    List<PeriodicSync> syncs = ContentResolver.getPeriodicSyncs(a, AUTHORITY);
    assertThat(syncs.size()).isEqualTo(1);
    PeriodicSync first = syncs.get(0);
    assertThat(first.account).isEqualTo(a);
    assertThat(first.authority).isEqualTo(AUTHORITY);
    assertThat(first.period).isEqualTo(6000L);
    assertThat(first.extras).isNotNull();
}
Also used : Bundle(android.os.Bundle) PeriodicSync(android.content.PeriodicSync) Test(org.junit.Test)

Example 17 with PeriodicSync

use of android.content.PeriodicSync in project robolectric by robolectric.

the class ShadowContentResolver method addPeriodicSync.

@Implementation
protected static void addPeriodicSync(Account account, String authority, Bundle extras, long pollFrequency) {
    validateSyncExtrasBundle(extras);
    removePeriodicSync(account, authority, extras);
    getStatus(account, authority, true).syncs.add(new PeriodicSync(account, authority, extras, pollFrequency));
}
Also used : PeriodicSync(android.content.PeriodicSync) Implementation(org.robolectric.annotation.Implementation)

Example 18 with PeriodicSync

use of android.content.PeriodicSync in project YourAppIdea by Michenux.

the class AbstractSyncHelper method periodicSyncExists.

/**
 * Test if periodic sync is already configured
 *
 * @param intervalInMinute interval in minute
 * @return true if already exists
 */
private boolean periodicSyncExists(int intervalInMinute) {
    boolean exists = false;
    long syncInSecond = intervalInMinute * SECONDS_PER_MINUTE;
    List<PeriodicSync> periodicSyncs = ContentResolver.getPeriodicSyncs(mAccount, mAuthority);
    if (periodicSyncs != null && !periodicSyncs.isEmpty()) {
        for (PeriodicSync periodicSync : periodicSyncs) {
            if (periodicSync.period == syncInSecond) {
                exists = true;
            }
        }
    }
    return exists;
}
Also used : PeriodicSync(android.content.PeriodicSync)

Example 19 with PeriodicSync

use of android.content.PeriodicSync in project android_frameworks_base by ParanoidAndroid.

the class TestContext method testPeriodics.

/**
     * Test that we can create, remove and retrieve periodic syncs
     */
@MediumTest
public void testPeriodics() throws Exception {
    final Account account1 = new Account("a@example.com", "example.type");
    final Account account2 = new Account("b@example.com", "example.type.2");
    final String authority = "testprovider";
    final Bundle extras1 = new Bundle();
    extras1.putString("a", "1");
    final Bundle extras2 = new Bundle();
    extras2.putString("a", "2");
    final int period1 = 200;
    final int period2 = 1000;
    PeriodicSync sync1 = new PeriodicSync(account1, authority, extras1, period1);
    PeriodicSync sync2 = new PeriodicSync(account1, authority, extras2, period1);
    PeriodicSync sync3 = new PeriodicSync(account1, authority, extras2, period2);
    PeriodicSync sync4 = new PeriodicSync(account2, authority, extras2, period2);
    MockContentResolver mockResolver = new MockContentResolver();
    SyncStorageEngine engine = SyncStorageEngine.newTestInstance(new TestContext(mockResolver, getContext()));
    removePeriodicSyncs(engine, account1, 0, authority);
    removePeriodicSyncs(engine, account2, 0, authority);
    removePeriodicSyncs(engine, account1, 1, authority);
    // this should add two distinct periodic syncs for account1 and one for account2
    engine.addPeriodicSync(sync1.account, 0, sync1.authority, sync1.extras, sync1.period);
    engine.addPeriodicSync(sync2.account, 0, sync2.authority, sync2.extras, sync2.period);
    engine.addPeriodicSync(sync3.account, 0, sync3.authority, sync3.extras, sync3.period);
    engine.addPeriodicSync(sync4.account, 0, sync4.authority, sync4.extras, sync4.period);
    // add a second user
    engine.addPeriodicSync(sync2.account, 1, sync2.authority, sync2.extras, sync2.period);
    List<PeriodicSync> syncs = engine.getPeriodicSyncs(account1, 0, authority);
    assertEquals(2, syncs.size());
    assertEquals(sync1, syncs.get(0));
    assertEquals(sync3, syncs.get(1));
    engine.removePeriodicSync(sync1.account, 0, sync1.authority, sync1.extras);
    syncs = engine.getPeriodicSyncs(account1, 0, authority);
    assertEquals(1, syncs.size());
    assertEquals(sync3, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account2, 0, authority);
    assertEquals(1, syncs.size());
    assertEquals(sync4, syncs.get(0));
    syncs = engine.getPeriodicSyncs(sync2.account, 1, sync2.authority);
    assertEquals(1, syncs.size());
    assertEquals(sync2, syncs.get(0));
}
Also used : Account(android.accounts.Account) Bundle(android.os.Bundle) PeriodicSync(android.content.PeriodicSync) MockContentResolver(android.test.mock.MockContentResolver) MediumTest(android.test.suitebuilder.annotation.MediumTest)

Example 20 with PeriodicSync

use of android.content.PeriodicSync in project android_frameworks_base by ParanoidAndroid.

the class TestContext method testAuthorityParsing.

@MediumTest
public void testAuthorityParsing() throws Exception {
    final Account account = new Account("account1", "type1");
    final String authority1 = "auth1";
    final String authority2 = "auth2";
    final String authority3 = "auth3";
    final Bundle extras = new Bundle();
    PeriodicSync sync1 = new PeriodicSync(account, authority1, extras, (long) (60 * 60 * 24));
    PeriodicSync sync2 = new PeriodicSync(account, authority2, extras, (long) (60 * 60 * 24));
    PeriodicSync sync3 = new PeriodicSync(account, authority3, extras, (long) (60 * 60 * 24));
    PeriodicSync sync1s = new PeriodicSync(account, authority1, extras, 1000);
    PeriodicSync sync2s = new PeriodicSync(account, authority2, extras, 1000);
    PeriodicSync sync3s = new PeriodicSync(account, authority3, extras, 1000);
    MockContentResolver mockResolver = new MockContentResolver();
    final TestContext testContext = new TestContext(mockResolver, getContext());
    byte[] accountsFileData = ("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" + "<accounts>\n" + "<authority id=\"0\" user=\"0\" account=\"account1\" type=\"type1\" authority=\"auth1\" />\n" + "<authority id=\"1\" user=\"0\" account=\"account1\" type=\"type1\" authority=\"auth2\" />\n" + "<authority id=\"2\"            account=\"account1\" type=\"type1\" authority=\"auth3\" />\n" + "<authority id=\"3\" user=\"1\" account=\"account1\" type=\"type1\" authority=\"auth3\" />\n" + "</accounts>\n").getBytes();
    File syncDir = getSyncDir();
    syncDir.mkdirs();
    AtomicFile accountInfoFile = new AtomicFile(new File(syncDir, "accounts.xml"));
    FileOutputStream fos = accountInfoFile.startWrite();
    fos.write(accountsFileData);
    accountInfoFile.finishWrite(fos);
    SyncStorageEngine engine = SyncStorageEngine.newTestInstance(testContext);
    List<PeriodicSync> syncs = engine.getPeriodicSyncs(account, 0, authority1);
    assertEquals(1, syncs.size());
    assertEquals(sync1, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account, 0, authority2);
    assertEquals(1, syncs.size());
    assertEquals(sync2, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account, 0, authority3);
    assertEquals(1, syncs.size());
    assertEquals(sync3, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account, 1, authority3);
    assertEquals(1, syncs.size());
    assertEquals(sync3, syncs.get(0));
    accountsFileData = ("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" + "<accounts version=\"2\">\n" + "<authority id=\"0\" account=\"account1\" type=\"type1\" authority=\"auth1\" />\n" + "<authority id=\"1\" account=\"account1\" type=\"type1\" authority=\"auth2\" />\n" + "<authority id=\"2\" account=\"account1\" type=\"type1\" authority=\"auth3\" />\n" + "</accounts>\n").getBytes();
    accountInfoFile = new AtomicFile(new File(syncDir, "accounts.xml"));
    fos = accountInfoFile.startWrite();
    fos.write(accountsFileData);
    accountInfoFile.finishWrite(fos);
    engine.clearAndReadState();
    syncs = engine.getPeriodicSyncs(account, 0, authority1);
    assertEquals(0, syncs.size());
    syncs = engine.getPeriodicSyncs(account, 0, authority2);
    assertEquals(0, syncs.size());
    syncs = engine.getPeriodicSyncs(account, 0, authority3);
    assertEquals(0, syncs.size());
    accountsFileData = ("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" + "<accounts version=\"2\">\n" + "<authority id=\"0\" account=\"account1\" type=\"type1\" authority=\"auth1\">\n" + "<periodicSync period=\"1000\" />\n" + "</authority>" + "<authority id=\"1\" account=\"account1\" type=\"type1\" authority=\"auth2\">\n" + "<periodicSync period=\"1000\" />\n" + "</authority>" + "<authority id=\"2\" account=\"account1\" type=\"type1\" authority=\"auth3\">\n" + "<periodicSync period=\"1000\" />\n" + "</authority>" + "</accounts>\n").getBytes();
    accountInfoFile = new AtomicFile(new File(syncDir, "accounts.xml"));
    fos = accountInfoFile.startWrite();
    fos.write(accountsFileData);
    accountInfoFile.finishWrite(fos);
    engine.clearAndReadState();
    syncs = engine.getPeriodicSyncs(account, 0, authority1);
    assertEquals(1, syncs.size());
    assertEquals(sync1s, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account, 0, authority2);
    assertEquals(1, syncs.size());
    assertEquals(sync2s, syncs.get(0));
    syncs = engine.getPeriodicSyncs(account, 0, authority3);
    assertEquals(1, syncs.size());
    assertEquals(sync3s, syncs.get(0));
}
Also used : Account(android.accounts.Account) AtomicFile(com.android.internal.os.AtomicFile) Bundle(android.os.Bundle) FileOutputStream(java.io.FileOutputStream) PeriodicSync(android.content.PeriodicSync) MockContentResolver(android.test.mock.MockContentResolver) File(java.io.File) AtomicFile(com.android.internal.os.AtomicFile) MediumTest(android.test.suitebuilder.annotation.MediumTest)

Aggregations

PeriodicSync (android.content.PeriodicSync)31 Bundle (android.os.Bundle)11 FileInputStream (java.io.FileInputStream)5 ArrayList (java.util.ArrayList)5 Random (java.util.Random)5 XmlPullParser (org.xmlpull.v1.XmlPullParser)5 XmlPullParserException (org.xmlpull.v1.XmlPullParserException)5 Account (android.accounts.Account)4 MockContentResolver (android.test.mock.MockContentResolver)3 Test (org.junit.Test)3 MediumTest (android.test.suitebuilder.annotation.MediumTest)2 Implementation (org.robolectric.annotation.Implementation)2 LargeTest (android.test.suitebuilder.annotation.LargeTest)1 AtomicFile (com.android.internal.os.AtomicFile)1 File (java.io.File)1 FileOutputStream (java.io.FileOutputStream)1