Index: chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java |
deleted file mode 100644 |
index 6ce272fb76915bf96e9943686fef8bc5e7926f73..0000000000000000000000000000000000000000 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java |
+++ /dev/null |
@@ -1,413 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.omnibox; |
- |
-import android.content.res.Resources; |
-import android.test.UiThreadTest; |
-import android.test.suitebuilder.annotation.MediumTest; |
-import android.text.Spannable; |
-import android.text.SpannableStringBuilder; |
- |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.base.test.util.Feature; |
-import org.chromium.chrome.R; |
-import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer.UrlEmphasisColorSpan; |
-import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer.UrlEmphasisSecurityErrorSpan; |
-import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer.UrlEmphasisSpan; |
-import org.chromium.chrome.browser.profiles.Profile; |
-import org.chromium.chrome.browser.ui.toolbar.ToolbarModelSecurityLevel; |
-import org.chromium.chrome.shell.ChromeShellActivity; |
-import org.chromium.chrome.shell.ChromeShellTab; |
-import org.chromium.chrome.shell.ChromeShellTestBase; |
- |
-/** |
- * Unit tests for OmniboxUrlEmphasizer that ensure various types of URLs are |
- * emphasized and colored correctly. |
- */ |
-public class OmniboxUrlEmphasizerTest extends ChromeShellTestBase { |
- private ChromeShellActivity mActivity; |
- private Profile mProfile; |
- private Resources mResources; |
- |
- @Override |
- public void setUp() throws Exception { |
- super.setUp(); |
- mActivity = launchChromeShellWithBlankPage(); |
- assertTrue(waitForActiveShellToBeDoneLoading()); |
- ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
- @Override |
- public void run() { |
- ChromeShellTab tab = mActivity.getActiveTab(); |
- mProfile = tab.getProfile(); |
- mResources = mActivity.getResources(); |
- } |
- }); |
- } |
- |
- /** |
- * Convenience class for testing a URL emphasized by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- private static class EmphasizedUrlSpanHelper { |
- UrlEmphasisSpan mSpan; |
- Spannable mParent; |
- |
- private EmphasizedUrlSpanHelper(UrlEmphasisSpan span, Spannable parent) { |
- mSpan = span; |
- mParent = parent; |
- } |
- |
- private String getContents() { |
- return mParent.subSequence(getStartIndex(), getEndIndex()).toString(); |
- } |
- |
- private int getStartIndex() { |
- return mParent.getSpanStart(mSpan); |
- } |
- |
- private int getEndIndex() { |
- return mParent.getSpanEnd(mSpan); |
- } |
- |
- private String getClassName() { |
- return mSpan.getClass().getSimpleName(); |
- } |
- |
- private int getColorForColoredSpan() { |
- return ((UrlEmphasisColorSpan) mSpan).getForegroundColor(); |
- } |
- |
- public static EmphasizedUrlSpanHelper[] getSpansForEmphasizedUrl(Spannable emphasizedUrl) { |
- UrlEmphasisSpan[] existingSpans = OmniboxUrlEmphasizer.getEmphasisSpans(emphasizedUrl); |
- EmphasizedUrlSpanHelper[] helperSpans = |
- new EmphasizedUrlSpanHelper[existingSpans.length]; |
- for (int i = 0; i < existingSpans.length; i++) { |
- helperSpans[i] = new EmphasizedUrlSpanHelper(existingSpans[i], emphasizedUrl); |
- } |
- return helperSpans; |
- } |
- |
- public void assertIsColoredSpan(String contents, int startIndex, int color) { |
- assertEquals("Unexpected span contents:", contents, getContents()); |
- assertEquals("Unexpected starting index for '" + contents + "' span:", startIndex, |
- getStartIndex()); |
- assertEquals("Unexpected ending index for '" + contents + "' span:", |
- startIndex + contents.length(), |
- getEndIndex()); |
- assertEquals("Unexpected class for '" + contents + "' span:", |
- UrlEmphasisColorSpan.class.getSimpleName(), |
- getClassName()); |
- assertEquals("Unexpected color for '" + contents + "' span:", color, |
- getColorForColoredSpan()); |
- } |
- |
- public void assertIsStrikethroughSpan(String contents, int startIndex) { |
- assertEquals("Unexpected span contents:", contents, getContents()); |
- assertEquals("Unexpected starting index for '" + contents + "' span:", startIndex, |
- getStartIndex()); |
- assertEquals("Unexpected ending index for '" + contents + "' span:", |
- startIndex + contents.length(), |
- getEndIndex()); |
- assertEquals("Unexpected class for '" + contents + "' span:", |
- UrlEmphasisSecurityErrorSpan.class.getSimpleName(), |
- getClassName()); |
- } |
- } |
- |
- /** |
- * Verify that a short, secure HTTPS URL is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testShortSecureHTTPSUrl() { |
- Spannable url = new SpannableStringBuilder("https://www.google.com/"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.SECURE, false, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 4, spans.length); |
- spans[0].assertIsColoredSpan("https", 0, |
- mResources.getColor(R.color.url_emphasis_start_scheme_secure)); |
- spans[1].assertIsColoredSpan("://", 5, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("www.google.com", 8, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- spans[3].assertIsColoredSpan("/", 22, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- } |
- |
- /** |
- * Verify that a short, secure HTTPS URL is colored correctly with light |
- * colors by OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testShortSecureHTTPSUrlWithLightColors() { |
- Spannable url = new SpannableStringBuilder("https://www.google.com/"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.SECURE, false, |
- false); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 4, spans.length); |
- spans[0].assertIsColoredSpan("https", 0, |
- mResources.getColor(R.color.url_emphasis_light_non_emphasized_text)); |
- spans[1].assertIsColoredSpan("://", 5, |
- mResources.getColor(R.color.url_emphasis_light_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("www.google.com", 8, |
- mResources.getColor(R.color.url_emphasis_light_domain_and_registry)); |
- spans[3].assertIsColoredSpan("/", 22, |
- mResources.getColor(R.color.url_emphasis_light_non_emphasized_text)); |
- } |
- |
- /** |
- * Verify that a long, insecure HTTPS URL is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testLongInsecureHTTPSUrl() { |
- Spannable url = new SpannableStringBuilder( |
- "https://www.google.com/q?query=abc123&results=1"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.SECURITY_ERROR, false, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 5, spans.length); |
- spans[0].assertIsStrikethroughSpan("https", 0); |
- spans[1].assertIsColoredSpan("https", 0, |
- mResources.getColor(R.color.url_emphasis_start_scheme_security_error)); |
- spans[2].assertIsColoredSpan("://", 5, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[3].assertIsColoredSpan("www.google.com", 8, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- spans[4].assertIsColoredSpan("/q?query=abc123&results=1", 22, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- } |
- |
- /** |
- * Verify that a very short, warning HTTPS URL is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testVeryShortWarningHTTPSUrl() { |
- Spannable url = new SpannableStringBuilder("https://www.dodgysite.com"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.SECURITY_WARNING, false, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 3, spans.length); |
- spans[0].assertIsColoredSpan("https", 0, |
- mResources.getColor(R.color.url_emphasis_start_scheme_security_warning)); |
- spans[1].assertIsColoredSpan("://", 5, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("www.dodgysite.com", 8, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- } |
- |
- /** |
- * Verify that an internal 'about:' page is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testAboutPageUrl() { |
- Spannable url = new SpannableStringBuilder("about:blank"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.NONE, true, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 3, spans.length); |
- spans[0].assertIsColoredSpan("about", 0, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[1].assertIsColoredSpan(":", 5, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("blank", 6, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- } |
- |
- /** |
- * Verify that a 'data:' URL is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testDataUrl() { |
- Spannable url = new SpannableStringBuilder( |
- "data:text/plain;charset=utf-8;base64,VGVzdCBVUkw="); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.NONE, true, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 1, spans.length); |
- spans[0].assertIsColoredSpan("data", 0, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- } |
- |
- /** |
- * Verify that an internal 'chrome://' page is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testInternalChromePageUrl() { |
- Spannable url = new SpannableStringBuilder("chrome://bookmarks"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.NONE, true, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 3, spans.length); |
- spans[0].assertIsColoredSpan("chrome", 0, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[1].assertIsColoredSpan("://", 6, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("bookmarks", 9, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- } |
- |
- /** |
- * Verify that an internal 'chrome-native://' page is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testInternalChromeNativePageUrl() { |
- Spannable url = new SpannableStringBuilder("chrome-native://bookmarks"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.NONE, true, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 3, spans.length); |
- spans[0].assertIsColoredSpan("chrome-native", 0, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[1].assertIsColoredSpan("://", 13, |
- mResources.getColor(R.color.url_emphasis_non_emphasized_text)); |
- spans[2].assertIsColoredSpan("bookmarks", 16, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- } |
- |
- /** |
- * Verify that an invalid URL is colored correctly by |
- * OmniboxUrlEmphasizer.emphasizeUrl(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testInvalidUrl() { |
- Spannable url = new SpannableStringBuilder("invalidurl"); |
- OmniboxUrlEmphasizer.emphasizeUrl(url, mResources, |
- mProfile, ToolbarModelSecurityLevel.NONE, true, |
- true); |
- EmphasizedUrlSpanHelper[] spans = EmphasizedUrlSpanHelper.getSpansForEmphasizedUrl(url); |
- |
- assertEquals("Unexpected number of spans:", 1, spans.length); |
- spans[0].assertIsColoredSpan("invalidurl", 0, |
- mResources.getColor(R.color.url_emphasis_domain_and_registry)); |
- } |
- |
- /** |
- * Verify that the origin index is calculated correctly for HTTP and HTTPS |
- * URLs by OmniboxUrlEmphasizer.getOriginEndIndex(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testHTTPAndHTTPSUrlsOriginEndIndex() { |
- String url; |
- |
- url = "http://www.google.com/"; |
- assertEquals("Unexpected origin end index for url " + url + ":", |
- "http://www.google.com".length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "https://www.google.com/"; |
- assertEquals("Unexpected origin end index for url " + url + ":", |
- "https://www.google.com".length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "http://www.news.com/dir/a/b/c/page.html?foo=bar"; |
- assertEquals("Unexpected origin end index for url " + url + ":", |
- "http://www.news.com".length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "http://www.test.com?foo=bar"; |
- assertEquals("Unexpected origin end index for url " + url + ":", |
- "http://www.test.com".length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- } |
- |
- /** |
- * Verify that the origin index is calculated correctly for data URLs by |
- * OmniboxUrlEmphasizer.getOriginEndIndex(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testDataUrlsOriginEndIndex() { |
- String url; |
- |
- // Data URLs have no origin. |
- url = "data:ABC123"; |
- assertEquals("Unexpected origin end index for url " + url + ":", 0, |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "data:kf94hfJEj#N"; |
- assertEquals("Unexpected origin end index for url " + url + ":", 0, |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "data:text/plain;charset=utf-8;base64,dGVzdA=="; |
- assertEquals("Unexpected origin end index for url " + url + ":", 0, |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- } |
- |
- /** |
- * Verify that the origin index is calculated correctly for URLS other than |
- * HTTP, HTTPS and data by OmniboxUrlEmphasizer.getOriginEndIndex(). |
- */ |
- @UiThreadTest |
- @MediumTest |
- @Feature({"Browser", "Main"}) |
- public void testOtherUrlsOriginEndIndex() { |
- String url; |
- |
- // In non-HTTP/HTTPS/data URLs, the whole URL is considered the origin. |
- url = "file://my/pc/somewhere/foo.html"; |
- assertEquals("Unexpected origin end index for url " + url + ":", url.length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "about:blank"; |
- assertEquals("Unexpected origin end index for url " + url + ":", url.length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "chrome://version"; |
- assertEquals("Unexpected origin end index for url " + url + ":", url.length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "chrome-native://bookmarks"; |
- assertEquals("Unexpected origin end index for url " + url + ":", url.length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- |
- url = "invalidurl"; |
- assertEquals("Unexpected origin end index for url " + url + ":", url.length(), |
- OmniboxUrlEmphasizer.getOriginEndIndex(url, mProfile)); |
- } |
-} |