diff options
author | maxbogue <maxbogue@chromium.org> | 2015-06-18 15:42:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-18 22:42:35 +0000 |
commit | 73564a5384e8ae088e72d120d7a92ba3683d6b8e (patch) | |
tree | 1d5e3b116f33b2b289acceabb992bb74a3bde36f | |
parent | bfa767842bd01af263ae0681a6748f5458fdfc8d (diff) | |
download | chromium_src-73564a5384e8ae088e72d120d7a92ba3683d6b8e.zip chromium_src-73564a5384e8ae088e72d120d7a92ba3683d6b8e.tar.gz chromium_src-73564a5384e8ae088e72d120d7a92ba3683d6b8e.tar.bz2 |
[Sync] Add tests for disabled data types on Android.
BUG=480604
Review URL: https://codereview.chromium.org/1181253004
Cr-Commit-Position: refs/heads/master@{#335148}
3 files changed, 50 insertions, 3 deletions
diff --git a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java index 0cbbe9c..7435ca8 100644 --- a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java +++ b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java @@ -64,7 +64,7 @@ public class AutofillTest extends SyncTestBase { @LargeTest @Feature({"Sync"}) public void testDownloadAutofill() throws Exception { - addServerAutofillProfile(STREET, CITY, STATE, ZIP); + addServerAutofillData(STREET, CITY, STATE, ZIP); assertServerAutofillCountWithName(1, STREET); SyncTestUtil.triggerSyncAndWaitForCompletion(mContext); @@ -84,7 +84,7 @@ public class AutofillTest extends SyncTestBase { @Feature({"Sync"}) public void testDownloadDeletedAutofill() throws Exception { // Add the entity to test deleting. - addServerAutofillProfile(STREET, CITY, STATE, ZIP); + addServerAutofillData(STREET, CITY, STATE, ZIP); SyncTestUtil.triggerSyncAndWaitForCompletion(mContext); assertServerAutofillCountWithName(1, STREET); assertClientAutofillCount(1); @@ -97,7 +97,19 @@ public class AutofillTest extends SyncTestBase { waitForClientAutofillCount(0); } - private void addServerAutofillProfile(String street, String city, String state, String zip) { + // Test that autofill entries don't get synced if the data type is disabled. + @LargeTest + @Feature({"Sync"}) + public void testDisabledNoDownloadAutofill() throws Exception { + disableDataType(ModelType.AUTOFILL); + addServerAutofillData(STREET, CITY, STATE, ZIP); + assertServerAutofillCountWithName(1, STREET); + SyncTestUtil.triggerSyncAndWaitForCompletion(mContext); + assertClientAutofillCount(0); + } + + // TODO(maxbogue): Switch to using specifics.autofill_profile instead. + private void addServerAutofillData(String street, String city, String state, String zip) { EntitySpecifics specifics = new EntitySpecifics(); specifics.autofill = new AutofillSpecifics(); AutofillProfileSpecifics profile = new AutofillProfileSpecifics(); diff --git a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java index 90e8875..f3b0fc1 100644 --- a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java +++ b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java @@ -137,6 +137,27 @@ public class BookmarksTest extends SyncTestBase { assertServerBookmarkCountWithName(0, MODIFIED_TITLE); } + // Test that bookmarks don't get downloaded if the data type is disabled. + @LargeTest + @Feature({"Sync"}) + public void testDisabledNoDownloadBookmark() throws Exception { + disableDataType(ModelType.BOOKMARK); + addServerBookmarkAndSync(TITLE, URL); + waitForServerBookmarkCountWithName(1, TITLE); + SyncTestUtil.triggerSyncAndWaitForCompletion(mContext); + assertClientBookmarkCount(0); + } + + // Test that bookmarks don't get uploaded if the data type is disabled. + @LargeTest + @Feature({"Sync"}) + public void testDisabledNoUploadBookmark() throws Exception { + disableDataType(ModelType.BOOKMARK); + addClientBookmark(TITLE, URL); + SyncTestUtil.triggerSyncAndWaitForCompletion(mContext); + assertServerBookmarkCountWithName(0, TITLE); + } + private BookmarkId addClientBookmark(final String title, final String url) { final AtomicReference<BookmarkId> id = new AtomicReference<BookmarkId>(); ThreadUtils.runOnUiThreadBlocking(new Runnable() { diff --git a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java index 05a3970..f967b31 100644 --- a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java +++ b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java @@ -16,11 +16,14 @@ import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.shell.ChromeShellTestBase; import org.chromium.chrome.test.util.browser.sync.SyncTestUtil; import org.chromium.sync.AndroidSyncSettings; +import org.chromium.sync.internal_api.pub.base.ModelType; import org.chromium.sync.signin.AccountManagerHelper; import org.chromium.sync.signin.ChromeSigninController; import org.chromium.sync.test.util.MockAccountManager; import org.chromium.sync.test.util.MockSyncContentResolverDelegate; +import java.util.Set; + /** * Base class for common functionality between sync tests. */ @@ -183,4 +186,15 @@ public class SyncTestBase extends ChromeShellTestBase { } }); } + + protected void disableDataType(final ModelType modelType) { + ThreadUtils.runOnUiThreadBlocking(new Runnable() { + @Override + public void run() { + Set<ModelType> preferredTypes = mProfileSyncService.getPreferredDataTypes(); + preferredTypes.remove(modelType); + mProfileSyncService.setPreferredDataTypes(false, preferredTypes); + } + }); + } } |