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

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerTest.java

Issue 131743020: [android_webivew] Refactor polling checks in test code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview.test; 5 package org.chromium.android_webview.test;
6 6
7 import android.test.MoreAsserts; 7 import android.test.MoreAsserts;
8 import android.test.suitebuilder.annotation.MediumTest; 8 import android.test.suitebuilder.annotation.MediumTest;
9 import android.test.suitebuilder.annotation.SmallTest; 9 import android.test.suitebuilder.annotation.SmallTest;
10 import android.util.Pair; 10 import android.util.Pair;
11 11
12 import org.chromium.android_webview.AwContents; 12 import org.chromium.android_webview.AwContents;
13 import org.chromium.android_webview.AwCookieManager; 13 import org.chromium.android_webview.AwCookieManager;
14 import org.chromium.android_webview.test.util.JSUtils; 14 import org.chromium.android_webview.test.util.JSUtils;
15 import org.chromium.base.test.util.Feature; 15 import org.chromium.base.test.util.Feature;
16 import org.chromium.content.browser.test.util.Criteria;
17 import org.chromium.content.browser.test.util.CriteriaHelper;
18 import org.chromium.net.test.util.TestWebServer; 16 import org.chromium.net.test.util.TestWebServer;
19 17
20 import java.util.ArrayList; 18 import java.util.ArrayList;
21 import java.util.Arrays; 19 import java.util.Arrays;
22 import java.util.Date; 20 import java.util.Date;
23 import java.util.HashSet; 21 import java.util.HashSet;
24 import java.util.List; 22 import java.util.List;
25 import java.util.Set; 23 import java.util.Set;
24 import java.util.concurrent.Callable;
26 25
27 /** 26 /**
28 * Tests for the CookieManager. 27 * Tests for the CookieManager.
29 */ 28 */
30 public class CookieManagerTest extends AwTestBase { 29 public class CookieManagerTest extends AwTestBase {
31 30
32 private AwCookieManager mCookieManager; 31 private AwCookieManager mCookieManager;
33 private TestAwContentsClient mContentsClient; 32 private TestAwContentsClient mContentsClient;
34 private AwContents mAwContents; 33 private AwContents mAwContents;
35 34
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 throws Throwable { 114 throws Throwable {
116 JSUtils.executeJavaScriptAndWaitForResult( 115 JSUtils.executeJavaScriptAndWaitForResult(
117 this, mAwContents, 116 this, mAwContents,
118 mContentsClient.getOnEvaluateJavaScriptResultHelper(), 117 mContentsClient.getOnEvaluateJavaScriptResultHelper(),
119 "var expirationDate = new Date();" + 118 "var expirationDate = new Date();" +
120 "expirationDate.setDate(expirationDate.getDate() + 5);" + 119 "expirationDate.setDate(expirationDate.getDate() + 5);" +
121 "document.cookie='" + name + "=" + value + 120 "document.cookie='" + name + "=" + value +
122 "; expires=' + expirationDate.toUTCString();"); 121 "; expires=' + expirationDate.toUTCString();");
123 } 122 }
124 123
125 private void waitForCookie(final String url) throws InterruptedException { 124 private void waitForCookie(final String url) throws Exception {
126 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 125 poll(new Callable<Boolean>() {
127 @Override 126 @Override
128 public boolean isSatisfied() { 127 public Boolean call() throws Exception {
129 return mCookieManager.getCookie(url) != null; 128 return mCookieManager.getCookie(url) != null;
130 } 129 }
131 })); 130 });
132 } 131 }
133 132
134 private void validateCookies(String responseCookie, String... expectedCookie Names) { 133 private void validateCookies(String responseCookie, String... expectedCookie Names) {
135 String[] cookies = responseCookie.split(";"); 134 String[] cookies = responseCookie.split(";");
136 Set<String> foundCookieNames = new HashSet<String>(); 135 Set<String> foundCookieNames = new HashSet<String>();
137 for (String cookie : cookies) { 136 for (String cookie : cookies) {
138 foundCookieNames.add(cookie.substring(0, cookie.indexOf("=")).trim() ); 137 foundCookieNames.add(cookie.substring(0, cookie.indexOf("=")).trim() );
139 } 138 }
140 MoreAsserts.assertEquals( 139 MoreAsserts.assertEquals(
141 foundCookieNames, new HashSet<String>(Arrays.asList(expectedCook ieNames))); 140 foundCookieNames, new HashSet<String>(Arrays.asList(expectedCook ieNames)));
142 } 141 }
143 142
144 @MediumTest 143 @MediumTest
145 @Feature({"AndroidWebView", "Privacy"}) 144 @Feature({"AndroidWebView", "Privacy"})
146 public void testRemoveAllCookie() throws InterruptedException { 145 public void testRemoveAllCookie() throws Exception {
147 // enable cookie 146 // enable cookie
148 mCookieManager.setAcceptCookie(true); 147 mCookieManager.setAcceptCookie(true);
149 assertTrue(mCookieManager.acceptCookie()); 148 assertTrue(mCookieManager.acceptCookie());
150 149
151 // first there should be no cookie stored 150 // first there should be no cookie stored
152 mCookieManager.removeAllCookie(); 151 mCookieManager.removeAllCookie();
153 mCookieManager.flushCookieStore(); 152 mCookieManager.flushCookieStore();
154 assertFalse(mCookieManager.hasCookies()); 153 assertFalse(mCookieManager.hasCookies());
155 154
156 String url = "http://www.example.com"; 155 String url = "http://www.example.com";
157 String cookie = "name=test"; 156 String cookie = "name=test";
158 mCookieManager.setCookie(url, cookie); 157 mCookieManager.setCookie(url, cookie);
159 assertEquals(cookie, mCookieManager.getCookie(url)); 158 assertEquals(cookie, mCookieManager.getCookie(url));
160 159
161 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 160 poll(new Callable<Boolean>() {
162 @Override 161 @Override
163 public boolean isSatisfied() { 162 public Boolean call() throws Exception {
164 return mCookieManager.hasCookies(); 163 return mCookieManager.hasCookies();
165 } 164 }
166 })); 165 });
167 166
168 // clean up all cookies 167 // clean up all cookies
169 mCookieManager.removeAllCookie(); 168 mCookieManager.removeAllCookie();
170 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 169 poll(new Callable<Boolean>() {
171 @Override 170 @Override
172 public boolean isSatisfied() { 171 public Boolean call() throws Exception {
173 return !mCookieManager.hasCookies(); 172 return !mCookieManager.hasCookies();
174 } 173 }
175 })); 174 });
176 } 175 }
177 176
178 @MediumTest 177 @MediumTest
179 @Feature({"AndroidWebView", "Privacy"}) 178 @Feature({"AndroidWebView", "Privacy"})
180 @SuppressWarnings("deprecation") 179 @SuppressWarnings("deprecation")
181 public void testCookieExpiration() throws InterruptedException { 180 public void testCookieExpiration() throws Exception {
182 // enable cookie 181 // enable cookie
183 mCookieManager.setAcceptCookie(true); 182 mCookieManager.setAcceptCookie(true);
184 assertTrue(mCookieManager.acceptCookie()); 183 assertTrue(mCookieManager.acceptCookie());
185 mCookieManager.removeAllCookie(); 184 mCookieManager.removeAllCookie();
186 assertFalse(mCookieManager.hasCookies()); 185 assertFalse(mCookieManager.hasCookies());
187 186
188 final String url = "http://www.example.com"; 187 final String url = "http://www.example.com";
189 final String cookie1 = "cookie1=peter"; 188 final String cookie1 = "cookie1=peter";
190 final String cookie2 = "cookie2=sue"; 189 final String cookie2 = "cookie2=sue";
191 final String cookie3 = "cookie3=marc"; 190 final String cookie3 = "cookie3=marc";
(...skipping 10 matching lines...) Expand all
202 date.setTime(date.getTime() + expiration); 201 date.setTime(date.getTime() + expiration);
203 String value3 = cookie3 + "; expires=" + date.toGMTString(); 202 String value3 = cookie3 + "; expires=" + date.toGMTString();
204 mCookieManager.setCookie(url, value3); // expires in 3s 203 mCookieManager.setCookie(url, value3); // expires in 3s
205 204
206 String allCookies = mCookieManager.getCookie(url); 205 String allCookies = mCookieManager.getCookie(url);
207 assertTrue(allCookies.contains(cookie1)); 206 assertTrue(allCookies.contains(cookie1));
208 assertTrue(allCookies.contains(cookie2)); 207 assertTrue(allCookies.contains(cookie2));
209 assertTrue(allCookies.contains(cookie3)); 208 assertTrue(allCookies.contains(cookie3));
210 209
211 mCookieManager.removeSessionCookie(); 210 mCookieManager.removeSessionCookie();
212 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 211 poll(new Callable<Boolean>() {
213 @Override 212 @Override
214 public boolean isSatisfied() { 213 public Boolean call() throws Exception {
215 String c = mCookieManager.getCookie(url); 214 String c = mCookieManager.getCookie(url);
216 return !c.contains(cookie1) && c.contains(cookie2) && c.contains (cookie3); 215 return !c.contains(cookie1) && c.contains(cookie2) && c.contains (cookie3);
217 } 216 }
218 })); 217 });
219 218
220 Thread.sleep(expiration + 1000); // wait for cookie to expire 219 Thread.sleep(expiration + 1000); // wait for cookie to expire
221 mCookieManager.removeExpiredCookie(); 220 mCookieManager.removeExpiredCookie();
222 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 221 poll(new Callable<Boolean>() {
223 @Override 222 @Override
224 public boolean isSatisfied() { 223 public Boolean call() throws Exception {
225 String c = mCookieManager.getCookie(url); 224 String c = mCookieManager.getCookie(url);
226 return !c.contains(cookie1) && c.contains(cookie2) && !c.contain s(cookie3); 225 return !c.contains(cookie1) && c.contains(cookie2) && !c.contain s(cookie3);
227 } 226 }
228 })); 227 });
229 228
230 mCookieManager.removeAllCookie(); 229 mCookieManager.removeAllCookie();
231 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 230 poll(new Callable<Boolean>() {
232 @Override 231 @Override
233 public boolean isSatisfied() { 232 public Boolean call() throws Exception {
234 return mCookieManager.getCookie(url) == null; 233 return mCookieManager.getCookie(url) == null;
235 } 234 }
236 })); 235 });
237 } 236 }
238 } 237 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698