OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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.chrome.browser.tab; | 5 package org.chromium.chrome.browser.tab; |
6 | 6 |
7 import android.content.Intent; | 7 import android.content.Intent; |
8 import android.content.pm.ActivityInfo; | 8 import android.content.pm.ActivityInfo; |
9 import android.content.pm.PackageManager; | 9 import android.content.pm.PackageManager; |
10 import android.content.pm.ResolveInfo; | 10 import android.content.pm.ResolveInfo; |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 SystemClock.sleep(1); | 251 SystemClock.sleep(1); |
252 handler.updateNewUrlLoading(PageTransition.LINK, false, SystemClock.elap
sedRealtime(), 2); | 252 handler.updateNewUrlLoading(PageTransition.LINK, false, SystemClock.elap
sedRealtime(), 2); |
253 assertFalse(handler.shouldStayInChrome()); | 253 assertFalse(handler.shouldStayInChrome()); |
254 | 254 |
255 assertTrue(handler.isOnNavigation()); | 255 assertTrue(handler.isOnNavigation()); |
256 assertEquals(2, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); | 256 assertEquals(2, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); |
257 } | 257 } |
258 | 258 |
259 @SmallTest | 259 @SmallTest |
260 @Feature({"IntentHandling"}) | 260 @Feature({"IntentHandling"}) |
261 public void testRedirectFromCurrentNavigationShouldStayInChrome() { | 261 public void testRedirectFromCurrentNavigationShouldNotOverrideUrlLoading() { |
262 ///////////////////////////////////////////////////// | 262 ///////////////////////////////////////////////////// |
263 // 1. 3XX redirection should stay in Chrome. | 263 // 1. 3XX redirection should not override URL loading. |
264 ///////////////////////////////////////////////////// | 264 ///////////////////////////////////////////////////// |
265 TabRedirectHandler handler = new TabRedirectHandler(mContext); | 265 TabRedirectHandler handler = new TabRedirectHandler(mContext); |
266 handler.updateIntent(sYtIntent); | 266 handler.updateIntent(sYtIntent); |
267 assertFalse(handler.shouldStayInChrome()); | 267 assertFalse(handler.shouldNotOverrideUrlLoading()); |
268 | 268 |
269 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 0); | 269 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 0); |
270 handler.setShouldStayInChromeUntilNewUrlLoading(); | 270 handler.setShouldNotOverrideUrlLoadingUntilNewUrlLoading(); |
271 | 271 |
272 handler.updateNewUrlLoading(PageTransition.LINK, true, 0, 0); | 272 handler.updateNewUrlLoading(PageTransition.LINK, true, 0, 0); |
273 assertTrue(handler.shouldStayInChrome()); | 273 assertTrue(handler.shouldNotOverrideUrlLoading()); |
274 assertEquals(0, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); | 274 assertEquals(0, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); |
275 | 275 |
276 ///////////////////////////////////////////////////// | 276 ///////////////////////////////////////////////////// |
277 // 2. Effective redirection should stay in Chrome. | 277 // 2. Effective redirection should not override URL loading. |
278 ///////////////////////////////////////////////////// | 278 ///////////////////////////////////////////////////// |
279 handler = new TabRedirectHandler(mContext); | 279 handler = new TabRedirectHandler(mContext); |
280 handler.updateIntent(sYtIntent); | 280 handler.updateIntent(sYtIntent); |
281 assertFalse(handler.shouldStayInChrome()); | 281 assertFalse(handler.shouldNotOverrideUrlLoading()); |
282 | 282 |
283 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 0); | 283 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 0); |
284 handler.setShouldStayInChromeUntilNewUrlLoading(); | 284 handler.setShouldNotOverrideUrlLoadingUntilNewUrlLoading(); |
285 | 285 |
286 // Effective redirection should stay in Chrome. | 286 // Effective redirection occurred. |
287 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 1); | 287 handler.updateNewUrlLoading(PageTransition.LINK, false, 0, 1); |
288 assertTrue(handler.shouldStayInChrome()); | 288 assertTrue(handler.shouldNotOverrideUrlLoading()); |
289 assertEquals(0, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); | 289 assertEquals(0, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); |
290 | 290 |
291 ///////////////////////////////////////////////////// | 291 ///////////////////////////////////////////////////// |
292 // 3. New URL loading should not be affected. | 292 // 3. New URL loading should not be affected. |
293 ///////////////////////////////////////////////////// | 293 ///////////////////////////////////////////////////// |
294 SystemClock.sleep(1); | 294 SystemClock.sleep(1); |
295 handler.updateNewUrlLoading(PageTransition.LINK, false, SystemClock.elap
sedRealtime(), 2); | 295 handler.updateNewUrlLoading(PageTransition.LINK, false, SystemClock.elap
sedRealtime(), 2); |
296 assertFalse(handler.shouldStayInChrome()); | 296 assertFalse(handler.shouldNotOverrideUrlLoading()); |
297 assertEquals(2, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); | 297 assertEquals(2, handler.getLastCommittedEntryIndexBeforeStartingNavigati
on()); |
298 } | 298 } |
299 | 299 |
300 private static class TestPackageManager extends MockPackageManager { | 300 private static class TestPackageManager extends MockPackageManager { |
301 @Override | 301 @Override |
302 public List<ResolveInfo> queryIntentActivities(Intent intent, int flags)
{ | 302 public List<ResolveInfo> queryIntentActivities(Intent intent, int flags)
{ |
303 List<ResolveInfo> resolves = new ArrayList<ResolveInfo>(); | 303 List<ResolveInfo> resolves = new ArrayList<ResolveInfo>(); |
304 if (intent.getDataString().startsWith("http://m.youtube.com") | 304 if (intent.getDataString().startsWith("http://m.youtube.com") |
305 || intent.getDataString().startsWith("http://youtube.com"))
{ | 305 || intent.getDataString().startsWith("http://youtube.com"))
{ |
306 ResolveInfo youTubeApp = new ResolveInfo(); | 306 ResolveInfo youTubeApp = new ResolveInfo(); |
(...skipping 18 matching lines...) Expand all Loading... |
325 return new TestPackageManager(); | 325 return new TestPackageManager(); |
326 } | 326 } |
327 | 327 |
328 @Override | 328 @Override |
329 public String getPackageName() { | 329 public String getPackageName() { |
330 return TEST_PACKAGE_NAME; | 330 return TEST_PACKAGE_NAME; |
331 } | 331 } |
332 | 332 |
333 } | 333 } |
334 } | 334 } |
OLD | NEW |