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 |