Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninHelperTest.java

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.signin;
6
7 import android.content.Context;
8 import android.test.InstrumentationTestCase;
9 import android.test.suitebuilder.annotation.SmallTest;
10
11 import org.chromium.base.test.util.AdvancedMockContext;
12 import org.chromium.sync.signin.ChromeSigninController;
13
14 import java.util.ArrayList;
15 import java.util.HashMap;
16 import java.util.List;
17 import java.util.Map;
18
19 /**
20 * Instrumentation tests for {@link SigninHelper}.
21 */
22 public class SigninHelperTest extends InstrumentationTestCase {
23 private AdvancedMockContext mContext;
24 private MockChangeEventChecker mEventChecker;
25
26 @Override
27 public void setUp() {
28 mContext = new AdvancedMockContext(getInstrumentation().getTargetContext ());
29 mEventChecker = new MockChangeEventChecker();
30 }
31
32 @SmallTest
33 public void testAccountsChangedPref() {
34 assertEquals("Should never return true before the pref has ever been set .",
35 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
36 assertEquals("Should never return true before the pref has ever been set .",
37 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
38
39 // Mark the pref as set.
40 SigninHelper.markAccountsChangedPref(mContext);
41
42 assertEquals("Should return true first time after marking accounts chang ed",
43 true, SigninHelper.checkAndClearAccountsChangedPref(mContext));
44 assertEquals("Should only return true first time after marking accounts changed",
45 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
46 assertEquals("Should only return true first time after marking accounts changed",
47 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
48
49 // Mark the pref as set again.
50 SigninHelper.markAccountsChangedPref(mContext);
51
52 assertEquals("Should return true first time after marking accounts chang ed",
53 true, SigninHelper.checkAndClearAccountsChangedPref(mContext));
54 assertEquals("Should only return true first time after marking accounts changed",
55 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
56 assertEquals("Should only return true first time after marking accounts changed",
57 false, SigninHelper.checkAndClearAccountsChangedPref(mContext));
58 }
59
60 @SmallTest
61 public void testSimpleAccountRename() {
62 setSignedInAccountName("A");
63 mEventChecker.insertRenameEvent("A", "B");
64 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
65 assertEquals("B", getNewSignedInAccountName());
66 }
67
68 @SmallTest
69 public void testNotSignedInAccountRename() {
70 setSignedInAccountName("A");
71 mEventChecker.insertRenameEvent("B", "C");
72 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
73 assertEquals(null, getNewSignedInAccountName());
74 }
75
76 @SmallTest
77 public void testSimpleAccountRenameTwice() {
78 setSignedInAccountName("A");
79 mEventChecker.insertRenameEvent("A", "B");
80 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
81 assertEquals("B", getNewSignedInAccountName());
82 mEventChecker.insertRenameEvent("B", "C");
83 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
84 assertEquals("C", getNewSignedInAccountName());
85 }
86
87 @SmallTest
88 public void testNotSignedInAccountRename2() {
89 setSignedInAccountName("A");
90 mEventChecker.insertRenameEvent("B", "C");
91 mEventChecker.insertRenameEvent("C", "D");
92 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
93 assertEquals(null, getNewSignedInAccountName());
94 }
95
96 @SmallTest
97 public void testChainedAccountRename2() {
98 setSignedInAccountName("A");
99 mEventChecker.insertRenameEvent("Z", "Y"); // Unrelated.
100 mEventChecker.insertRenameEvent("A", "B");
101 mEventChecker.insertRenameEvent("Y", "X"); // Unrelated.
102 mEventChecker.insertRenameEvent("B", "C");
103 mEventChecker.insertRenameEvent("C", "D");
104 SigninHelper.updateAccountRenameData(mContext, mEventChecker);
105 assertEquals("D", getNewSignedInAccountName());
106 }
107
108 private void setSignedInAccountName(String account) {
109 ChromeSigninController.get(mContext).setSignedInAccountName(account);
110 }
111
112 private String getSignedInAccountName() {
113 return ChromeSigninController.get(mContext).getSignedInAccountName();
114 }
115
116 private String getNewSignedInAccountName() {
117 return SigninHelper.getNewSignedInAccountName(mContext);
118 }
119
120 private static final class MockChangeEventChecker
121 implements SigninHelper.AccountChangeEventChecker {
122 private Map<String, List<String>> mEvents =
123 new HashMap<String, List<String>>();
124
125 @Override
126 public List<String> getAccountChangeEvents(
127 Context context, int index, String accountName) {
128 List<String> eventsList = getEventList(accountName);
129 return eventsList.subList(index, eventsList.size());
130 }
131
132 private void insertRenameEvent(String from, String to) {
133 List<String> eventsList = getEventList(from);
134 eventsList.add(to);
135 }
136
137 private List<String> getEventList(String account) {
138 List<String> eventsList = mEvents.get(account);
139 if (eventsList == null) {
140 eventsList = new ArrayList<String>();
141 mEvents.put(account, eventsList);
142 }
143 return eventsList;
144 }
145 }
146 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698