| 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; | 5 package org.chromium.chrome.browser; |
| 6 | 6 |
| 7 import static org.chromium.content.browser.test.NativeLibraryTestRule.NativeLibr
aryInitializationOption.INIT_BROWSER_PROCESS; |
| 8 |
| 7 import android.content.Context; | 9 import android.content.Context; |
| 8 import android.content.Intent; | 10 import android.content.Intent; |
| 9 import android.net.Uri; | 11 import android.net.Uri; |
| 10 import android.os.Bundle; | 12 import android.os.Bundle; |
| 11 import android.os.SystemClock; | 13 import android.os.SystemClock; |
| 12 import android.provider.Browser; | 14 import android.provider.Browser; |
| 13 import android.speech.RecognizerResultsIntent; | 15 import android.speech.RecognizerResultsIntent; |
| 16 import android.support.test.InstrumentationRegistry; |
| 17 import android.support.test.annotation.UiThreadTest; |
| 14 import android.support.test.filters.MediumTest; | 18 import android.support.test.filters.MediumTest; |
| 15 import android.support.test.filters.SmallTest; | 19 import android.support.test.filters.SmallTest; |
| 16 import android.test.UiThreadTest; | 20 import android.support.test.rule.UiThreadTestRule; |
| 21 |
| 22 import org.junit.Assert; |
| 23 import org.junit.Before; |
| 24 import org.junit.Rule; |
| 25 import org.junit.Test; |
| 26 import org.junit.rules.RuleChain; |
| 27 import org.junit.runner.RunWith; |
| 17 | 28 |
| 18 import org.chromium.base.CollectionUtil; | 29 import org.chromium.base.CollectionUtil; |
| 19 import org.chromium.base.CommandLine; | 30 import org.chromium.base.test.BaseJUnit4ClassRunner; |
| 20 import org.chromium.base.test.util.Feature; | 31 import org.chromium.base.test.util.Feature; |
| 21 import org.chromium.content.browser.test.NativeLibraryTestBase; | 32 import org.chromium.content.browser.test.NativeLibraryTestRule; |
| 22 | 33 |
| 23 import java.util.Vector; | 34 import java.util.Vector; |
| 24 | 35 |
| 25 /** | 36 /** |
| 26 * Tests for IntentHandler. | 37 * Tests for IntentHandler. |
| 27 * TODO(nileshagrawal): Add tests for onNewIntent. | 38 * TODO(nileshagrawal): Add tests for onNewIntent. |
| 28 */ | 39 */ |
| 29 public class IntentHandlerTest extends NativeLibraryTestBase { | 40 @RunWith(BaseJUnit4ClassRunner.class) |
| 41 public class IntentHandlerTest { |
| 42 @Rule |
| 43 public RuleChain mAllRules = |
| 44 RuleChain.outerRule(new ChromeTestCommandLineInitRule().shouldSetUp(
true)) |
| 45 .around(new NativeLibraryTestRule() |
| 46 .setInitOption(INIT_BROWSER_PROCESS) |
| 47 .shouldSetUp(true)) |
| 48 .around(new UiThreadTestRule()); |
| 49 |
| 30 private static final String VOICE_SEARCH_QUERY = "VOICE_QUERY"; | 50 private static final String VOICE_SEARCH_QUERY = "VOICE_QUERY"; |
| 31 private static final String VOICE_SEARCH_QUERY_URL = "http://www.google.com/
?q=VOICE_QUERY"; | 51 private static final String VOICE_SEARCH_QUERY_URL = "http://www.google.com/
?q=VOICE_QUERY"; |
| 32 | 52 |
| 33 private static final String VOICE_URL_QUERY = "www.google.com"; | 53 private static final String VOICE_URL_QUERY = "www.google.com"; |
| 34 private static final String VOICE_URL_QUERY_URL = "INVALID_URLZ"; | 54 private static final String VOICE_URL_QUERY_URL = "INVALID_URLZ"; |
| 35 | 55 |
| 36 private static final String[] ACCEPTED_INTENT_URLS = {"http://www.google.com
", | 56 private static final String[] ACCEPTED_INTENT_URLS = {"http://www.google.com
", |
| 37 "http://movies.nytimes.com/movie/review?" | 57 "http://movies.nytimes.com/movie/review?" |
| 38 + "res=9405EFDB1E3BE23BBC4153DFB7678382659EDE&partner=Rotten
Tomatoes", | 58 + "res=9405EFDB1E3BE23BBC4153DFB7678382659EDE&partner=Rotten
Tomatoes", |
| 39 "chrome://newtab", "file://foo.txt", "ftp://www.foo.com", "https://w
ww.gmail.com", "", | 59 "chrome://newtab", "file://foo.txt", "ftp://www.foo.com", "https://w
ww.gmail.com", "", |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 96 |
| 77 private void processUrls(String[] urls, boolean isValid) { | 97 private void processUrls(String[] urls, boolean isValid) { |
| 78 Vector<String> failedTests = new Vector<String>(); | 98 Vector<String> failedTests = new Vector<String>(); |
| 79 | 99 |
| 80 for (String url : urls) { | 100 for (String url : urls) { |
| 81 mIntent.setData(Uri.parse(url)); | 101 mIntent.setData(Uri.parse(url)); |
| 82 if (mIntentHandler.intentHasValidUrl(mIntent) != isValid) { | 102 if (mIntentHandler.intentHasValidUrl(mIntent) != isValid) { |
| 83 failedTests.add(url); | 103 failedTests.add(url); |
| 84 } | 104 } |
| 85 } | 105 } |
| 86 assertTrue(failedTests.toString(), failedTests.isEmpty()); | 106 Assert.assertTrue(failedTests.toString(), failedTests.isEmpty()); |
| 87 } | 107 } |
| 88 | 108 |
| 89 @Override | 109 @Before |
| 90 public void setUp() throws Exception { | 110 public void setUp() throws Exception { |
| 91 super.setUp(); | |
| 92 | |
| 93 CommandLine.init(null); | |
| 94 loadNativeLibraryAndInitBrowserProcess(); | |
| 95 IntentHandler.setTestIntentsEnabled(false); | 111 IntentHandler.setTestIntentsEnabled(false); |
| 96 mIntentHandler = new IntentHandler(null, null); | 112 mIntentHandler = new IntentHandler(null, null); |
| 97 mIntent = new Intent(); | 113 mIntent = new Intent(); |
| 98 } | 114 } |
| 99 | 115 |
| 116 @Test |
| 100 @SmallTest | 117 @SmallTest |
| 101 @Feature({"Android-AppBase"}) | 118 @Feature({"Android-AppBase"}) |
| 102 public void testAcceptedUrls() { | 119 public void testAcceptedUrls() { |
| 103 processUrls(ACCEPTED_INTENT_URLS, true); | 120 processUrls(ACCEPTED_INTENT_URLS, true); |
| 104 } | 121 } |
| 105 | 122 |
| 123 @Test |
| 106 @SmallTest | 124 @SmallTest |
| 107 @Feature({"Android-AppBase"}) | 125 @Feature({"Android-AppBase"}) |
| 108 public void testRejectedUrls() { | 126 public void testRejectedUrls() { |
| 109 processUrls(REJECTED_INTENT_URLS, false); | 127 processUrls(REJECTED_INTENT_URLS, false); |
| 110 } | 128 } |
| 111 | 129 |
| 130 @Test |
| 112 @SmallTest | 131 @SmallTest |
| 113 @Feature({"Android-AppBase"}) | 132 @Feature({"Android-AppBase"}) |
| 114 public void testAcceptedGoogleChromeSchemeNavigateUrls() { | 133 public void testAcceptedGoogleChromeSchemeNavigateUrls() { |
| 115 // Test all of the accepted URLs after prepending googlechrome://navigat
e?url. | 134 // Test all of the accepted URLs after prepending googlechrome://navigat
e?url. |
| 116 String[] expectedAccepts = new String[ACCEPTED_INTENT_URLS.length]; | 135 String[] expectedAccepts = new String[ACCEPTED_INTENT_URLS.length]; |
| 117 for (int i = 0; i < ACCEPTED_INTENT_URLS.length; ++i) { | 136 for (int i = 0; i < ACCEPTED_INTENT_URLS.length; ++i) { |
| 118 expectedAccepts[i] = | 137 expectedAccepts[i] = |
| 119 IntentHandler.GOOGLECHROME_NAVIGATE_PREFIX + ACCEPTED_INTENT
_URLS[i]; | 138 IntentHandler.GOOGLECHROME_NAVIGATE_PREFIX + ACCEPTED_INTENT
_URLS[i]; |
| 120 } | 139 } |
| 121 processUrls(expectedAccepts, true); | 140 processUrls(expectedAccepts, true); |
| 122 } | 141 } |
| 123 | 142 |
| 143 @Test |
| 124 @SmallTest | 144 @SmallTest |
| 125 @Feature({"Android-AppBase"}) | 145 @Feature({"Android-AppBase"}) |
| 126 public void testRejectedGoogleChromeSchemeNavigateUrls() { | 146 public void testRejectedGoogleChromeSchemeNavigateUrls() { |
| 127 // Test all of the rejected URLs after prepending googlechrome://navigat
e?url. | 147 // Test all of the rejected URLs after prepending googlechrome://navigat
e?url. |
| 128 String[] expectedRejections = new String[REJECTED_INTENT_URLS.length]; | 148 String[] expectedRejections = new String[REJECTED_INTENT_URLS.length]; |
| 129 for (int i = 0; i < REJECTED_INTENT_URLS.length; ++i) { | 149 for (int i = 0; i < REJECTED_INTENT_URLS.length; ++i) { |
| 130 expectedRejections[i] = | 150 expectedRejections[i] = |
| 131 IntentHandler.GOOGLECHROME_NAVIGATE_PREFIX + REJECTED_INTENT
_URLS[i]; | 151 IntentHandler.GOOGLECHROME_NAVIGATE_PREFIX + REJECTED_INTENT
_URLS[i]; |
| 132 } | 152 } |
| 133 processUrls(expectedRejections, false); | 153 processUrls(expectedRejections, false); |
| 134 } | 154 } |
| 135 | 155 |
| 156 @Test |
| 136 @SmallTest | 157 @SmallTest |
| 137 @Feature({"Android-AppBase"}) | 158 @Feature({"Android-AppBase"}) |
| 138 public void testRejectedGoogleChromeSchemeUrls() { | 159 public void testRejectedGoogleChromeSchemeUrls() { |
| 139 Vector<String> failedTests = new Vector<String>(); | 160 Vector<String> failedTests = new Vector<String>(); |
| 140 | 161 |
| 141 for (String url : REJECTED_GOOGLECHROME_URLS) { | 162 for (String url : REJECTED_GOOGLECHROME_URLS) { |
| 142 mIntent.setData(Uri.parse(url)); | 163 mIntent.setData(Uri.parse(url)); |
| 143 if (IntentHandler.getUrlFromIntent(mIntent) != null) { | 164 if (IntentHandler.getUrlFromIntent(mIntent) != null) { |
| 144 failedTests.add(url); | 165 failedTests.add(url); |
| 145 } | 166 } |
| 146 } | 167 } |
| 147 assertTrue(failedTests.toString(), failedTests.isEmpty()); | 168 Assert.assertTrue(failedTests.toString(), failedTests.isEmpty()); |
| 148 } | 169 } |
| 149 | 170 |
| 171 @Test |
| 150 @SmallTest | 172 @SmallTest |
| 151 @Feature({"Android-AppBase"}) | 173 @Feature({"Android-AppBase"}) |
| 152 public void testNullUrlIntent() { | 174 public void testNullUrlIntent() { |
| 153 mIntent.setData(null); | 175 mIntent.setData(null); |
| 154 assertTrue( | 176 Assert.assertTrue( |
| 155 "Intent with null data should be valid", mIntentHandler.intentHa
sValidUrl(mIntent)); | 177 "Intent with null data should be valid", mIntentHandler.intentHa
sValidUrl(mIntent)); |
| 156 } | 178 } |
| 157 | 179 |
| 180 @Test |
| 158 @UiThreadTest | 181 @UiThreadTest |
| 159 @MediumTest | 182 @MediumTest |
| 160 @Feature({"Android-AppBase"}) | 183 @Feature({"Android-AppBase"}) |
| 161 public void testGetQueryFromVoiceSearchResultIntent_validVoiceQuery() { | 184 public void testGetQueryFromVoiceSearchResultIntent_validVoiceQuery() { |
| 162 Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_R
ESULTS); | 185 Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_R
ESULTS); |
| 163 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_STRINGS, | 186 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_STRINGS, |
| 164 CollectionUtil.newArrayList(VOICE_SEARCH_QUERY)); | 187 CollectionUtil.newArrayList(VOICE_SEARCH_QUERY)); |
| 165 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_URLS, | 188 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_URLS, |
| 166 CollectionUtil.newArrayList(VOICE_SEARCH_QUERY_URL)); | 189 CollectionUtil.newArrayList(VOICE_SEARCH_QUERY_URL)); |
| 167 String query = IntentHandler.getUrlFromVoiceSearchResult(intent); | 190 String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| 168 assertEquals(VOICE_SEARCH_QUERY_URL, query); | 191 Assert.assertEquals(VOICE_SEARCH_QUERY_URL, query); |
| 169 } | 192 } |
| 170 | 193 |
| 194 @Test |
| 171 @UiThreadTest | 195 @UiThreadTest |
| 172 @MediumTest | 196 @MediumTest |
| 173 @Feature({"Android-AppBase"}) | 197 @Feature({"Android-AppBase"}) |
| 174 public void testGetQueryFromVoiceSearchResultIntent_validUrlQuery() { | 198 public void testGetQueryFromVoiceSearchResultIntent_validUrlQuery() { |
| 175 Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_R
ESULTS); | 199 Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_R
ESULTS); |
| 176 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_STRINGS, | 200 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_STRINGS, |
| 177 CollectionUtil.newArrayList(VOICE_URL_QUERY)); | 201 CollectionUtil.newArrayList(VOICE_URL_QUERY)); |
| 178 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_URLS, | 202 intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARC
H_RESULT_URLS, |
| 179 CollectionUtil.newArrayList(VOICE_URL_QUERY_URL)); | 203 CollectionUtil.newArrayList(VOICE_URL_QUERY_URL)); |
| 180 String query = IntentHandler.getUrlFromVoiceSearchResult(intent); | 204 String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| 181 assertTrue(String.format("Expected qualified URL: %s, to start " | 205 Assert.assertTrue(String.format("Expected qualified URL: %s, to start " |
| 182 + "with http://www.google.com", | 206 + "with http://www.google.com", |
| 183 query), | 207 query), |
| 184 query.indexOf("http://www.google.com") == 0); | 208 query.indexOf("http://www.google.com") == 0); |
| 185 } | 209 } |
| 186 | 210 |
| 211 @Test |
| 187 @UiThreadTest | 212 @UiThreadTest |
| 188 @SmallTest | 213 @SmallTest |
| 189 @Feature({"Android-AppBase"}) | 214 @Feature({"Android-AppBase"}) |
| 190 public void testRefererUrl_extraReferrer() { | 215 public void testRefererUrl_extraReferrer() { |
| 191 // Check that EXTRA_REFERRER is not accepted with a random URL. | 216 // Check that EXTRA_REFERRER is not accepted with a random URL. |
| 192 Intent foreignIntent = new Intent(Intent.ACTION_VIEW); | 217 Intent foreignIntent = new Intent(Intent.ACTION_VIEW); |
| 193 foreignIntent.putExtra(Intent.EXTRA_REFERRER, GOOGLE_URL); | 218 foreignIntent.putExtra(Intent.EXTRA_REFERRER, GOOGLE_URL); |
| 194 assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(foreignInte
nt)); | 219 Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(fore
ignIntent)); |
| 195 | 220 |
| 196 // Check that EXTRA_REFERRER with android-app URL works. | 221 // Check that EXTRA_REFERRER with android-app URL works. |
| 197 final String appUrl = "android-app://com.application/http/www.applicatio
n.com"; | 222 final String appUrl = "android-app://com.application/http/www.applicatio
n.com"; |
| 198 Intent appIntent = new Intent(Intent.ACTION_VIEW); | 223 Intent appIntent = new Intent(Intent.ACTION_VIEW); |
| 199 appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); | 224 appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); |
| 200 assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(a
ppIntent)); | 225 Assert.assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHe
aders(appIntent)); |
| 201 | 226 |
| 202 // Check that EXTRA_REFERRER_NAME with android-app works. | 227 // Check that EXTRA_REFERRER_NAME with android-app works. |
| 203 Intent nameIntent = new Intent(Intent.ACTION_VIEW); | 228 Intent nameIntent = new Intent(Intent.ACTION_VIEW); |
| 204 nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); | 229 nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); |
| 205 assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(n
ameIntent)); | 230 Assert.assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHe
aders(nameIntent)); |
| 206 } | 231 } |
| 207 | 232 |
| 233 @Test |
| 208 @UiThreadTest | 234 @UiThreadTest |
| 209 @SmallTest | 235 @SmallTest |
| 210 @Feature({"Android-AppBase"}) | 236 @Feature({"Android-AppBase"}) |
| 211 public void testRefererUrl_extraHeadersInclReferer() { | 237 public void testRefererUrl_extraHeadersInclReferer() { |
| 212 // Check that invalid header specified in EXTRA_HEADERS isn't used. | 238 // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| 213 Bundle bundle = new Bundle(); | 239 Bundle bundle = new Bundle(); |
| 214 bundle.putString("X-custom-header", "X-custom-value"); | 240 bundle.putString("X-custom-header", "X-custom-value"); |
| 215 bundle.putString("Referer", GOOGLE_URL); | 241 bundle.putString("Referer", GOOGLE_URL); |
| 216 Intent headersIntent = new Intent(Intent.ACTION_VIEW); | 242 Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| 217 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); | 243 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| 218 assertEquals("X-custom-header: X-custom-value", | 244 Assert.assertEquals("X-custom-header: X-custom-value", |
| 219 IntentHandler.getExtraHeadersFromIntent(headersIntent)); | 245 IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| 220 assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersInte
nt)); | 246 Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(head
ersIntent)); |
| 221 } | 247 } |
| 222 | 248 |
| 249 @Test |
| 223 @UiThreadTest | 250 @UiThreadTest |
| 224 @SmallTest | 251 @SmallTest |
| 225 @Feature({"Android-AppBase"}) | 252 @Feature({"Android-AppBase"}) |
| 226 public void testRefererUrl_extraHeadersInclRefererMultiple() { | 253 public void testRefererUrl_extraHeadersInclRefererMultiple() { |
| 227 // Check that invalid header specified in EXTRA_HEADERS isn't used. | 254 // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| 228 Bundle bundle = new Bundle(); | 255 Bundle bundle = new Bundle(); |
| 229 bundle.putString("X-custom-header", "X-custom-value"); | 256 bundle.putString("X-custom-header", "X-custom-value"); |
| 230 bundle.putString("X-custom-header-2", "X-custom-value-2"); | 257 bundle.putString("X-custom-header-2", "X-custom-value-2"); |
| 231 bundle.putString("Referer", GOOGLE_URL); | 258 bundle.putString("Referer", GOOGLE_URL); |
| 232 Intent headersIntent = new Intent(Intent.ACTION_VIEW); | 259 Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| 233 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); | 260 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| 234 assertEquals("X-custom-header-2: X-custom-value-2\nX-custom-header: X-cu
stom-value", | 261 Assert.assertEquals("X-custom-header-2: X-custom-value-2\nX-custom-heade
r: X-custom-value", |
| 235 IntentHandler.getExtraHeadersFromIntent(headersIntent)); | 262 IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| 236 assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersInte
nt)); | 263 Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(head
ersIntent)); |
| 237 } | 264 } |
| 238 | 265 |
| 266 @Test |
| 239 @UiThreadTest | 267 @UiThreadTest |
| 240 @SmallTest | 268 @SmallTest |
| 241 @Feature({"Android-AppBase"}) | 269 @Feature({"Android-AppBase"}) |
| 242 public void testRefererUrl_extraHeadersOnlyReferer() { | 270 public void testRefererUrl_extraHeadersOnlyReferer() { |
| 243 // Check that invalid header specified in EXTRA_HEADERS isn't used. | 271 // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| 244 Bundle bundle = new Bundle(); | 272 Bundle bundle = new Bundle(); |
| 245 bundle.putString("Referer", GOOGLE_URL); | 273 bundle.putString("Referer", GOOGLE_URL); |
| 246 Intent headersIntent = new Intent(Intent.ACTION_VIEW); | 274 Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| 247 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); | 275 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| 248 assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersInte
nt)); | 276 Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(head
ersIntent)); |
| 249 } | 277 } |
| 250 | 278 |
| 279 @Test |
| 251 @UiThreadTest | 280 @UiThreadTest |
| 252 @SmallTest | 281 @SmallTest |
| 253 @Feature({"Android-AppBase"}) | 282 @Feature({"Android-AppBase"}) |
| 254 public void testRefererUrl_extraHeadersAndExtraReferrer() { | 283 public void testRefererUrl_extraHeadersAndExtraReferrer() { |
| 255 String validReferer = "android-app://package/http/url"; | 284 String validReferer = "android-app://package/http/url"; |
| 256 Bundle bundle = new Bundle(); | 285 Bundle bundle = new Bundle(); |
| 257 bundle.putString("Referer", GOOGLE_URL); | 286 bundle.putString("Referer", GOOGLE_URL); |
| 258 Intent headersIntent = new Intent(Intent.ACTION_VIEW); | 287 Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| 259 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); | 288 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| 260 headersIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(validReferer)); | 289 headersIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(validReferer)); |
| 261 assertEquals(validReferer, | 290 Assert.assertEquals( |
| 262 IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)
); | 291 validReferer, IntentHandler.getReferrerUrlIncludingExtraHeaders(
headersIntent)); |
| 263 assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); | 292 Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)
); |
| 264 } | 293 } |
| 265 | 294 |
| 295 @Test |
| 266 @UiThreadTest | 296 @UiThreadTest |
| 267 @SmallTest | 297 @SmallTest |
| 268 @Feature({"Android-AppBase"}) | 298 @Feature({"Android-AppBase"}) |
| 269 public void testRefererUrl_extraHeadersValidReferrer() { | 299 public void testRefererUrl_extraHeadersValidReferrer() { |
| 270 String validReferer = "android-app://package/http/url"; | 300 String validReferer = "android-app://package/http/url"; |
| 271 Bundle bundle = new Bundle(); | 301 Bundle bundle = new Bundle(); |
| 272 bundle.putString("Referer", validReferer); | 302 bundle.putString("Referer", validReferer); |
| 273 Intent headersIntent = new Intent(Intent.ACTION_VIEW); | 303 Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| 274 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); | 304 headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| 275 assertEquals(validReferer, | 305 Assert.assertEquals( |
| 276 IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)
); | 306 validReferer, IntentHandler.getReferrerUrlIncludingExtraHeaders(
headersIntent)); |
| 277 assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); | 307 Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)
); |
| 278 } | 308 } |
| 279 | 309 |
| 310 @Test |
| 280 @SmallTest | 311 @SmallTest |
| 281 @Feature({"Android-AppBase"}) | 312 @Feature({"Android-AppBase"}) |
| 282 public void testAddTimestampToIntent() { | 313 public void testAddTimestampToIntent() { |
| 283 Intent intent = new Intent(); | 314 Intent intent = new Intent(); |
| 284 assertEquals(-1, IntentHandler.getTimestampFromIntent(intent)); | 315 Assert.assertEquals(-1, IntentHandler.getTimestampFromIntent(intent)); |
| 285 // Check both before and after to make sure that the returned value is | 316 // Check both before and after to make sure that the returned value is |
| 286 // really from {@link SystemClock#elapsedRealtime()}. | 317 // really from {@link SystemClock#elapsedRealtime()}. |
| 287 long before = SystemClock.elapsedRealtime(); | 318 long before = SystemClock.elapsedRealtime(); |
| 288 IntentHandler.addTimestampToIntent(intent); | 319 IntentHandler.addTimestampToIntent(intent); |
| 289 long after = SystemClock.elapsedRealtime(); | 320 long after = SystemClock.elapsedRealtime(); |
| 290 assertTrue("Time should be increasing", | 321 Assert.assertTrue("Time should be increasing", |
| 291 before <= IntentHandler.getTimestampFromIntent(intent)); | 322 before <= IntentHandler.getTimestampFromIntent(intent)); |
| 292 assertTrue("Time should be increasing", | 323 Assert.assertTrue( |
| 293 IntentHandler.getTimestampFromIntent(intent) <= after); | 324 "Time should be increasing", IntentHandler.getTimestampFromInten
t(intent) <= after); |
| 294 } | 325 } |
| 295 | 326 |
| 327 @Test |
| 296 @SmallTest | 328 @SmallTest |
| 297 @Feature({"Android-AppBase"}) | 329 @Feature({"Android-AppBase"}) |
| 298 public void testGeneratedReferrer() { | 330 public void testGeneratedReferrer() { |
| 299 Context context = getInstrumentation().getTargetContext(); | 331 Context context = InstrumentationRegistry.getInstrumentation().getTarget
Context(); |
| 300 String packageName = context.getPackageName(); | 332 String packageName = context.getPackageName(); |
| 301 String referrer = IntentHandler.constructValidReferrerForAuthority(packa
geName).getUrl(); | 333 String referrer = IntentHandler.constructValidReferrerForAuthority(packa
geName).getUrl(); |
| 302 assertEquals("android-app://" + packageName, referrer); | 334 Assert.assertEquals("android-app://" + packageName, referrer); |
| 303 } | 335 } |
| 304 } | 336 } |
| OLD | NEW |