| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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; | 5 package org.chromium.chrome.browser; |
| 6 | 6 |
| 7 import android.test.InstrumentationTestCase; | |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 7 import android.test.suitebuilder.annotation.SmallTest; |
| 9 | 8 |
| 10 import org.chromium.base.test.util.Feature; | 9 import org.chromium.base.test.util.Feature; |
| 10 import org.chromium.content.browser.test.NativeLibraryTestBase; |
| 11 | 11 |
| 12 import java.net.URI; | 12 import java.net.URI; |
| 13 | 13 |
| 14 public class UrlUtilitiesTest extends InstrumentationTestCase { | 14 public class UrlUtilitiesTest extends NativeLibraryTestBase { |
| 15 @SmallTest | 15 @SmallTest |
| 16 public void testIsAcceptedScheme() { | 16 public void testIsAcceptedScheme() { |
| 17 assertTrue(UrlUtilities.isAcceptedScheme("about:awesome")); | 17 assertTrue(UrlUtilities.isAcceptedScheme("about:awesome")); |
| 18 assertTrue(UrlUtilities.isAcceptedScheme("data:data")); | 18 assertTrue(UrlUtilities.isAcceptedScheme("data:data")); |
| 19 assertTrue(UrlUtilities.isAcceptedScheme( | 19 assertTrue(UrlUtilities.isAcceptedScheme( |
| 20 "https://user:pass@:awesome.com:9000/bad-scheme:#fake:")); | 20 "https://user:pass@:awesome.com:9000/bad-scheme:#fake:")); |
| 21 assertTrue(UrlUtilities.isAcceptedScheme("http://awesome.example.com/"))
; | 21 assertTrue(UrlUtilities.isAcceptedScheme("http://awesome.example.com/"))
; |
| 22 assertTrue(UrlUtilities.isAcceptedScheme("file://awesome.example.com/"))
; | 22 assertTrue(UrlUtilities.isAcceptedScheme("file://awesome.example.com/"))
; |
| 23 assertTrue(UrlUtilities.isAcceptedScheme("inline:skates.co.uk")); | 23 assertTrue(UrlUtilities.isAcceptedScheme("inline:skates.co.uk")); |
| 24 assertTrue(UrlUtilities.isAcceptedScheme("javascript:alert(1)")); | 24 assertTrue(UrlUtilities.isAcceptedScheme("javascript:alert(1)")); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 assertTrue(UrlUtilities.isValidForIntentFallbackNavigation( | 66 assertTrue(UrlUtilities.isValidForIntentFallbackNavigation( |
| 67 "https://user:pass@:awesome.com:9000/bad-scheme:#fake:")); | 67 "https://user:pass@:awesome.com:9000/bad-scheme:#fake:")); |
| 68 assertTrue(UrlUtilities.isValidForIntentFallbackNavigation("http://aweso
me.example.com/")); | 68 assertTrue(UrlUtilities.isValidForIntentFallbackNavigation("http://aweso
me.example.com/")); |
| 69 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("inline:skat
es.co.uk")); | 69 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("inline:skat
es.co.uk")); |
| 70 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("javascript:
alert(1)")); | 70 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("javascript:
alert(1)")); |
| 71 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("")); | 71 assertFalse(UrlUtilities.isValidForIntentFallbackNavigation("")); |
| 72 } | 72 } |
| 73 | 73 |
| 74 @SmallTest | 74 @SmallTest |
| 75 @Feature({"Webapps"}) | 75 @Feature({"Webapps"}) |
| 76 public void testGetOriginForDisplay() { | 76 public void testFormatUrlForSecurityDisplay() { |
| 77 loadNativeLibraryNoBrowserProcess(); |
| 78 |
| 77 URI uri; | 79 URI uri; |
| 78 | 80 |
| 79 uri = URI.create("http://chopped.com/is/awesome"); | 81 uri = URI.create("http://chopped.com/is/awesome"); |
| 80 assertEquals("http://chopped.com", UrlUtilities.getOriginForDisplay(uri,
true)); | 82 assertEquals("http://chopped.com", UrlUtilities.formatUrlForSecurityDisp
lay(uri, true)); |
| 81 assertEquals("chopped.com", UrlUtilities.getOriginForDisplay(uri, false)
); | 83 assertEquals("chopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri
, false)); |
| 82 | 84 |
| 83 uri = URI.create("http://lopped.com"); | 85 uri = URI.create("http://lopped.com"); |
| 84 assertEquals("http://lopped.com", UrlUtilities.getOriginForDisplay(uri,
true)); | 86 assertEquals("http://lopped.com", UrlUtilities.formatUrlForSecurityDispl
ay(uri, true)); |
| 85 assertEquals("lopped.com", UrlUtilities.getOriginForDisplay(uri, false))
; | 87 assertEquals("lopped.com", UrlUtilities.formatUrlForSecurityDisplay(uri,
false)); |
| 86 | 88 |
| 87 uri = URI.create("http://dropped.com?things"); | 89 uri = URI.create("http://dropped.com?things"); |
| 88 assertEquals("http://dropped.com", UrlUtilities.getOriginForDisplay(uri,
true)); | 90 assertEquals("http://dropped.com", UrlUtilities.formatUrlForSecurityDisp
lay(uri, true)); |
| 89 assertEquals("dropped.com", UrlUtilities.getOriginForDisplay(uri, false)
); | 91 assertEquals("dropped.com", UrlUtilities.formatUrlForSecurityDisplay(uri
, false)); |
| 90 | 92 |
| 91 uri = URI.create("http://dfalcant@stopped.com:1234"); | 93 uri = URI.create("http://dfalcant@stopped.com:1234"); |
| 92 assertEquals("http://stopped.com:1234", UrlUtilities.getOriginForDisplay
(uri, true)); | 94 assertEquals( |
| 93 assertEquals("stopped.com:1234", UrlUtilities.getOriginForDisplay(uri, f
alse)); | 95 "http://stopped.com:1234", UrlUtilities.formatUrlForSecurityDisp
lay(uri, true)); |
| 96 assertEquals("stopped.com:1234", UrlUtilities.formatUrlForSecurityDispla
y(uri, false)); |
| 94 | 97 |
| 95 uri = URI.create("http://dfalcant:secret@stopped.com:9999"); | 98 uri = URI.create("http://dfalcant:secret@stopped.com:9999"); |
| 96 assertEquals("http://stopped.com:9999", UrlUtilities.getOriginForDisplay
(uri, true)); | 99 assertEquals( |
| 97 assertEquals("stopped.com:9999", UrlUtilities.getOriginForDisplay(uri, f
alse)); | 100 "http://stopped.com:9999", UrlUtilities.formatUrlForSecurityDisp
lay(uri, true)); |
| 101 assertEquals("stopped.com:9999", UrlUtilities.formatUrlForSecurityDispla
y(uri, false)); |
| 98 | 102 |
| 99 uri = URI.create("chrome://settings:443"); | 103 uri = URI.create("chrome://settings:443"); |
| 100 assertEquals("chrome://settings:443", UrlUtilities.getOriginForDisplay(u
ri, true)); | 104 assertEquals("chrome://settings:443", UrlUtilities.formatUrlForSecurityD
isplay(uri, true)); |
| 101 assertEquals("settings:443", UrlUtilities.getOriginForDisplay(uri, false
)); | 105 assertEquals("chrome://settings:443", UrlUtilities.formatUrlForSecurityD
isplay(uri, false)); |
| 102 | 106 |
| 103 uri = URI.create("about:blank"); | 107 uri = URI.create("about:blank"); |
| 104 assertEquals("about:blank", UrlUtilities.getOriginForDisplay(uri, true))
; | 108 assertEquals("about:blank", UrlUtilities.formatUrlForSecurityDisplay(uri
, true)); |
| 105 assertEquals("about:blank", UrlUtilities.getOriginForDisplay(uri, false)
); | 109 assertEquals("about:blank", UrlUtilities.formatUrlForSecurityDisplay(uri
, false)); |
| 106 } | 110 } |
| 107 | 111 |
| 108 @SmallTest | 112 @SmallTest |
| 109 public void testValidateIntentUrl() { | 113 public void testValidateIntentUrl() { |
| 110 // Valid action, hostname, and (empty) path. | 114 // Valid action, hostname, and (empty) path. |
| 111 assertTrue(UrlUtilities.validateIntentUrl( | 115 assertTrue(UrlUtilities.validateIntentUrl( |
| 112 "intent://10010#Intent;scheme=tel;action=com.google.android.apps
." | 116 "intent://10010#Intent;scheme=tel;action=com.google.android.apps
." |
| 113 + "authenticator.AUTHENTICATE;end")); | 117 + "authenticator.AUTHENTICATE;end")); |
| 114 // Valid package, scheme, hostname, and path. | 118 // Valid package, scheme, hostname, and path. |
| 115 assertTrue(UrlUtilities.validateIntentUrl( | 119 assertTrue(UrlUtilities.validateIntentUrl( |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 "intent://wump-hey.example.com/#Intent;package=com.example.wump;
" | 171 "intent://wump-hey.example.com/#Intent;package=com.example.wump;
" |
| 168 + "category=42%_by_volume;end")); | 172 + "category=42%_by_volume;end")); |
| 169 // Incorrectly URL-encoded. | 173 // Incorrectly URL-encoded. |
| 170 assertFalse(UrlUtilities.validateIntentUrl( | 174 assertFalse(UrlUtilities.validateIntentUrl( |
| 171 "intent://testing/#Intent;package=cybergoat.noodle.crumpet;" | 175 "intent://testing/#Intent;package=cybergoat.noodle.crumpet;" |
| 172 + "component=wump.noodle/Crumpet;i.pumpkinCount%%3D=42;" | 176 + "component=wump.noodle/Crumpet;i.pumpkinCount%%3D=42;" |
| 173 + "S.goat=⋚end")); | 177 + "S.goat=⋚end")); |
| 174 } | 178 } |
| 175 | 179 |
| 176 } | 180 } |
| OLD | NEW |