OLD | NEW |
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.util.Pair; | 9 import android.util.Pair; |
10 import android.webkit.ValueCallback; | 10 import android.webkit.ValueCallback; |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 @Feature({"AndroidWebView", "Privacy"}) | 192 @Feature({"AndroidWebView", "Privacy"}) |
193 public void testSetCookieNullCallback() throws Throwable { | 193 public void testSetCookieNullCallback() throws Throwable { |
194 mCookieManager.setAcceptCookie(true); | 194 mCookieManager.setAcceptCookie(true); |
195 assertTrue(mCookieManager.acceptCookie()); | 195 assertTrue(mCookieManager.acceptCookie()); |
196 | 196 |
197 final String url = "http://www.example.com"; | 197 final String url = "http://www.example.com"; |
198 final String cookie = "name=test"; | 198 final String cookie = "name=test"; |
199 | 199 |
200 mCookieManager.setCookie(url, cookie, null); | 200 mCookieManager.setCookie(url, cookie, null); |
201 | 201 |
202 poll(new Callable<Boolean>() { | 202 pollInstrumentationThread(new Callable<Boolean>() { |
203 @Override | 203 @Override |
204 public Boolean call() throws Exception { | 204 public Boolean call() throws Exception { |
205 return mCookieManager.hasCookies(); | 205 return mCookieManager.hasCookies(); |
206 } | 206 } |
207 }); | 207 }); |
208 } | 208 } |
209 | 209 |
210 @MediumTest | 210 @MediumTest |
211 @Feature({"AndroidWebView", "Privacy"}) | 211 @Feature({"AndroidWebView", "Privacy"}) |
212 public void testRemoveAllCookiesCallback() throws Throwable { | 212 public void testRemoveAllCookiesCallback() throws Throwable { |
(...skipping 17 matching lines...) Expand all Loading... |
230 } | 230 } |
231 | 231 |
232 @MediumTest | 232 @MediumTest |
233 @Feature({"AndroidWebView", "Privacy"}) | 233 @Feature({"AndroidWebView", "Privacy"}) |
234 public void testRemoveAllCookiesNullCallback() throws Throwable { | 234 public void testRemoveAllCookiesNullCallback() throws Throwable { |
235 mCookieManager.setCookie("http://www.example.com", "name=test"); | 235 mCookieManager.setCookie("http://www.example.com", "name=test"); |
236 | 236 |
237 mCookieManager.removeAllCookies(null); | 237 mCookieManager.removeAllCookies(null); |
238 | 238 |
239 // Eventually the cookies are removed. | 239 // Eventually the cookies are removed. |
240 poll(new Callable<Boolean>() { | 240 pollInstrumentationThread(new Callable<Boolean>() { |
241 @Override | 241 @Override |
242 public Boolean call() throws Exception { | 242 public Boolean call() throws Exception { |
243 return !mCookieManager.hasCookies(); | 243 return !mCookieManager.hasCookies(); |
244 } | 244 } |
245 }); | 245 }); |
246 } | 246 } |
247 | 247 |
248 @MediumTest | 248 @MediumTest |
249 @Feature({"AndroidWebView", "Privacy"}) | 249 @Feature({"AndroidWebView", "Privacy"}) |
250 public void testRemoveSessionCookiesCallback() throws Throwable { | 250 public void testRemoveSessionCookiesCallback() throws Throwable { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 | 283 |
284 mCookieManager.setCookie(url, sessionCookie); | 284 mCookieManager.setCookie(url, sessionCookie); |
285 mCookieManager.setCookie(url, makeExpiringCookie(normalCookie, 600)); | 285 mCookieManager.setCookie(url, makeExpiringCookie(normalCookie, 600)); |
286 String allCookies = mCookieManager.getCookie(url); | 286 String allCookies = mCookieManager.getCookie(url); |
287 assertTrue(allCookies.contains(sessionCookie)); | 287 assertTrue(allCookies.contains(sessionCookie)); |
288 assertTrue(allCookies.contains(normalCookie)); | 288 assertTrue(allCookies.contains(normalCookie)); |
289 | 289 |
290 mCookieManager.removeSessionCookies(null); | 290 mCookieManager.removeSessionCookies(null); |
291 | 291 |
292 // Eventually the session cookie is removed. | 292 // Eventually the session cookie is removed. |
293 poll(new Callable<Boolean>() { | 293 pollInstrumentationThread(new Callable<Boolean>() { |
294 @Override | 294 @Override |
295 public Boolean call() throws Exception { | 295 public Boolean call() throws Exception { |
296 String c = mCookieManager.getCookie(url); | 296 String c = mCookieManager.getCookie(url); |
297 return !c.contains(sessionCookie) && c.contains(normalCookie); | 297 return !c.contains(sessionCookie) && c.contains(normalCookie); |
298 } | 298 } |
299 }); | 299 }); |
300 } | 300 } |
301 | 301 |
302 @MediumTest | 302 @MediumTest |
303 @Feature({"AndroidWebView", "Privacy"}) | 303 @Feature({"AndroidWebView", "Privacy"}) |
(...skipping 10 matching lines...) Expand all Loading... |
314 public void testCookiesExpire() throws Exception { | 314 public void testCookiesExpire() throws Exception { |
315 final String url = "http://www.example.com"; | 315 final String url = "http://www.example.com"; |
316 final String cookie = "cookie1=peter"; | 316 final String cookie = "cookie1=peter"; |
317 | 317 |
318 mCookieManager.setCookie(url, makeExpiringCookieMs(cookie, 1200)); | 318 mCookieManager.setCookie(url, makeExpiringCookieMs(cookie, 1200)); |
319 | 319 |
320 // The cookie exists: | 320 // The cookie exists: |
321 assertTrue(mCookieManager.hasCookies()); | 321 assertTrue(mCookieManager.hasCookies()); |
322 | 322 |
323 // But eventually expires: | 323 // But eventually expires: |
324 poll(new Callable<Boolean>() { | 324 pollInstrumentationThread(new Callable<Boolean>() { |
325 @Override | 325 @Override |
326 public Boolean call() throws Exception { | 326 public Boolean call() throws Exception { |
327 return !mCookieManager.hasCookies(); | 327 return !mCookieManager.hasCookies(); |
328 } | 328 } |
329 }); | 329 }); |
330 } | 330 } |
331 | 331 |
332 @MediumTest | 332 @MediumTest |
333 @Feature({"AndroidWebView", "Privacy"}) | 333 @Feature({"AndroidWebView", "Privacy"}) |
334 public void testCookieExpiration() throws Exception { | 334 public void testCookieExpiration() throws Exception { |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 } | 657 } |
658 | 658 |
659 /** | 659 /** |
660 * Clears all cookies synchronously. | 660 * Clears all cookies synchronously. |
661 */ | 661 */ |
662 private void clearCookies() throws Throwable { | 662 private void clearCookies() throws Throwable { |
663 CookieUtils.clearCookies(this, mCookieManager); | 663 CookieUtils.clearCookies(this, mCookieManager); |
664 } | 664 } |
665 | 665 |
666 private void waitForCookie(final String url) throws Exception { | 666 private void waitForCookie(final String url) throws Exception { |
667 poll(new Callable<Boolean>() { | 667 pollInstrumentationThread(new Callable<Boolean>() { |
668 @Override | 668 @Override |
669 public Boolean call() throws Exception { | 669 public Boolean call() throws Exception { |
670 return mCookieManager.getCookie(url) != null; | 670 return mCookieManager.getCookie(url) != null; |
671 } | 671 } |
672 }); | 672 }); |
673 } | 673 } |
674 | 674 |
675 private void validateCookies(String responseCookie, String... expectedCookie
Names) { | 675 private void validateCookies(String responseCookie, String... expectedCookie
Names) { |
676 String[] cookies = responseCookie.split(";"); | 676 String[] cookies = responseCookie.split(";"); |
677 Set<String> foundCookieNames = new HashSet<String>(); | 677 Set<String> foundCookieNames = new HashSet<String>(); |
678 for (String cookie : cookies) { | 678 for (String cookie : cookies) { |
679 foundCookieNames.add(cookie.substring(0, cookie.indexOf("=")).trim()
); | 679 foundCookieNames.add(cookie.substring(0, cookie.indexOf("=")).trim()
); |
680 } | 680 } |
681 MoreAsserts.assertEquals( | 681 MoreAsserts.assertEquals( |
682 foundCookieNames, new HashSet<String>(Arrays.asList(expectedCook
ieNames))); | 682 foundCookieNames, new HashSet<String>(Arrays.asList(expectedCook
ieNames))); |
683 } | 683 } |
684 | 684 |
685 private String makeExpiringCookie(String cookie, int secondsTillExpiry) { | 685 private String makeExpiringCookie(String cookie, int secondsTillExpiry) { |
686 return makeExpiringCookieMs(cookie, secondsTillExpiry * 1000); | 686 return makeExpiringCookieMs(cookie, secondsTillExpiry * 1000); |
687 } | 687 } |
688 | 688 |
689 @SuppressWarnings("deprecation") | 689 @SuppressWarnings("deprecation") |
690 private String makeExpiringCookieMs(String cookie, int millisecondsTillExpir
y) { | 690 private String makeExpiringCookieMs(String cookie, int millisecondsTillExpir
y) { |
691 Date date = new Date(); | 691 Date date = new Date(); |
692 date.setTime(date.getTime() + millisecondsTillExpiry); | 692 date.setTime(date.getTime() + millisecondsTillExpiry); |
693 return cookie + "; expires=" + date.toGMTString(); | 693 return cookie + "; expires=" + date.toGMTString(); |
694 } | 694 } |
695 } | 695 } |
OLD | NEW |