/** * 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 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)); }
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; }
/** 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 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 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)); }
/** * 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 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 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_start_scheme_secure)); 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)); }