Commit 03f9a90d authored by Eric Lawrence's avatar Eric Lawrence Committed by Commit Bot

Reland of 'Unescape fragment for display in Omnibox'

The original landing broke EGTests for iOS Simulator and Device which
were not run by the CQ. This change includes updated EGTests.

TBR=pkasting@chromium.org

Bug: 789163, 643458
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Ie30afcb7bcba5affc7266d72a10b7f8dc0074314
Reviewed-on: https://chromium-review.googlesource.com/830093Reviewed-by: default avatarEric Lawrence <elawrence@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Commit-Queue: Eric Lawrence <elawrence@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524591}
parent 74ecc94c
...@@ -462,6 +462,16 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, TextElideStatus) { ...@@ -462,6 +462,16 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, TextElideStatus) {
gfx::NO_ELIDE); gfx::NO_ELIDE);
} }
IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FragmentUnescapedForDisplay) {
OmniboxView* view = nullptr;
ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
ui_test_utils::NavigateToURL(browser(),
GURL("https://www.google.com/#%E2%98%83"));
EXPECT_EQ(view->GetText(),
base::UTF8ToUTF16("https://www.google.com/#\u2603"));
}
IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FriendlyAccessibleLabel) { IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FriendlyAccessibleLabel) {
OmniboxView* omnibox_view = nullptr; OmniboxView* omnibox_view = nullptr;
ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &omnibox_view)); ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &omnibox_view));
......
...@@ -347,15 +347,16 @@ TEST(TextEliderTest, TestElisionSpecialCases) { ...@@ -347,15 +347,16 @@ TEST(TextEliderTest, TestElisionSpecialCases) {
kEllipsisStr + "berkeley.edu:4430/" + kEllipsisStr + "/arbitfilename"}, kEllipsisStr + "berkeley.edu:4430/" + kEllipsisStr + "/arbitfilename"},
// Unescaping. // Unescaping.
{"http://www/%E4%BD%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0", {"http://www/%E4%BD%A0%E5%A5%BD?"
"www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#" + "q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0\xe4\xbd\xa0\xe4\xbd\xa0",
"www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0" +
kEllipsisStr}, kEllipsisStr},
// Invalid unescaping for path. The ref will always be valid UTF-8. We // Invalid unescaping for path. The ref will always be valid UTF-8. We
// don't bother to do too many edge cases, since these are handled by the // don't bother to do too many edge cases, since these are handled by the
// escaper unittest. // escaper unittest.
{"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0", {"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
"www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#" + kEllipsisStr}, "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0"},
}; };
RunElisionTest(testcases); RunElisionTest(testcases);
......
...@@ -586,11 +586,10 @@ base::string16 FormatUrlWithAdjustments( ...@@ -586,11 +586,10 @@ base::string16 FormatUrlWithAdjustments(
NonHostComponentTransform(unescape_rules), NonHostComponentTransform(unescape_rules),
&url_string, &new_parsed->query, adjustments); &url_string, &new_parsed->query, adjustments);
// Ref. This is valid, unescaped UTF-8, so we can just convert.
if (parsed.ref.is_valid()) if (parsed.ref.is_valid())
url_string.push_back('#'); url_string.push_back('#');
AppendFormattedComponent(spec, parsed.ref, AppendFormattedComponent(spec, parsed.ref,
NonHostComponentTransform(net::UnescapeRule::NONE), NonHostComponentTransform(unescape_rules),
&url_string, &new_parsed->ref, adjustments); &url_string, &new_parsed->ref, adjustments);
} }
......
...@@ -828,7 +828,7 @@ TEST(UrlFormatterTest, FormatUrl) { ...@@ -828,7 +828,7 @@ TEST(UrlFormatterTest, FormatUrl) {
{"With a port number and a reference", {"With a port number and a reference",
"http://www.google.com:8080/#\xE3\x82\xB0", default_format_type, "http://www.google.com:8080/#\xE3\x82\xB0", default_format_type,
net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#%E3%82%B0", 7}, net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7},
// -------- IDN tests -------- // -------- IDN tests --------
{"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp", {"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp",
...@@ -1119,7 +1119,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) { ...@@ -1119,7 +1119,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed, kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed,
nullptr, nullptr); nullptr, nullptr);
EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080" EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
L"/\x30B0/?q=\x30B0#%E3%82%B0"), L"/\x30B0/?q=\x30B0#\x30B0"),
formatted); formatted);
EXPECT_EQ(WideToUTF16(L"\x30B0"), EXPECT_EQ(WideToUTF16(L"\x30B0"),
formatted.substr(parsed.username.begin, parsed.username.len)); formatted.substr(parsed.username.begin, parsed.username.len));
...@@ -1133,7 +1133,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) { ...@@ -1133,7 +1133,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
formatted.substr(parsed.path.begin, parsed.path.len)); formatted.substr(parsed.path.begin, parsed.path.len));
EXPECT_EQ(WideToUTF16(L"q=\x30B0"), EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
formatted.substr(parsed.query.begin, parsed.query.len)); formatted.substr(parsed.query.begin, parsed.query.len));
EXPECT_EQ(WideToUTF16(L"%E3%82%B0"), EXPECT_EQ(WideToUTF16(L"\x30B0"),
formatted.substr(parsed.ref.begin, parsed.ref.len)); formatted.substr(parsed.ref.begin, parsed.ref.len));
// Omit_username_password + unescape case. // Omit_username_password + unescape case.
...@@ -1143,7 +1143,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) { ...@@ -1143,7 +1143,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL, kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL,
&parsed, nullptr, nullptr); &parsed, nullptr, nullptr);
EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080" EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080"
L"/\x30B0/?q=\x30B0#%E3%82%B0"), L"/\x30B0/?q=\x30B0#\x30B0"),
formatted); formatted);
EXPECT_FALSE(parsed.username.is_valid()); EXPECT_FALSE(parsed.username.is_valid());
EXPECT_FALSE(parsed.password.is_valid()); EXPECT_FALSE(parsed.password.is_valid());
...@@ -1155,7 +1155,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) { ...@@ -1155,7 +1155,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
formatted.substr(parsed.path.begin, parsed.path.len)); formatted.substr(parsed.path.begin, parsed.path.len));
EXPECT_EQ(WideToUTF16(L"q=\x30B0"), EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
formatted.substr(parsed.query.begin, parsed.query.len)); formatted.substr(parsed.query.begin, parsed.query.len));
EXPECT_EQ(WideToUTF16(L"%E3%82%B0"), EXPECT_EQ(WideToUTF16(L"\x30B0"),
formatted.substr(parsed.ref.begin, parsed.ref.len)); formatted.substr(parsed.ref.begin, parsed.ref.len));
// View-source case. // View-source case.
...@@ -1389,9 +1389,12 @@ TEST(UrlFormatterTest, FormatUrlWithOffsets) { ...@@ -1389,9 +1389,12 @@ TEST(UrlFormatterTest, FormatUrlWithOffsets) {
kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets); kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets);
const size_t ref_offsets[] = { const size_t ref_offsets[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}; 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
32, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 33};
// Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z". // Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z".
CheckAdjustedOffsets("http://www.google.com/foo.html#%E3%82%B0%E3%82%B0z", CheckAdjustedOffsets("http://www.google.com/foo.html#%E3%82%B0%E3%82%B0z",
kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment