Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Side by Side Diff: net/base/net_util_unittest.cc

Issue 3040016: Net: Convert username and password to string16. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: address comments Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/net_util.cc ('k') | net/ftp/ftp_auth_cache.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "net/base/net_util.h" 5 #include "net/base/net_util.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/sys_string_conversions.h" 10 #include "base/sys_string_conversions.h"
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 EXPECT_EQ(std::wstring(invalid_wide), output); 568 EXPECT_EQ(std::wstring(invalid_wide), output);
569 #endif 569 #endif
570 570
571 // Test that if a file URL is malformed, we get a failure 571 // Test that if a file URL is malformed, we get a failure
572 EXPECT_FALSE(net::FileURLToFilePath(GURL("filefoobar"), &output)); 572 EXPECT_FALSE(net::FileURLToFilePath(GURL("filefoobar"), &output));
573 } 573 }
574 574
575 TEST(NetUtilTest, GetIdentityFromURL) { 575 TEST(NetUtilTest, GetIdentityFromURL) {
576 struct { 576 struct {
577 const char* input_url; 577 const char* input_url;
578 const wchar_t* expected_username; 578 const char* expected_username;
579 const wchar_t* expected_password; 579 const char* expected_password;
580 } tests[] = { 580 } tests[] = {
581 { 581 {
582 "http://username:password@google.com", 582 "http://username:password@google.com",
583 L"username", 583 "username",
584 L"password", 584 "password",
585 }, 585 },
586 { // Test for http://crbug.com/19200 586 { // Test for http://crbug.com/19200
587 "http://username:p@ssword@google.com", 587 "http://username:p@ssword@google.com",
588 L"username", 588 "username",
589 L"p@ssword", 589 "p@ssword",
590 }, 590 },
591 { // Special URL characters should be unescaped. 591 { // Special URL characters should be unescaped.
592 "http://username:p%3fa%26s%2fs%23@google.com", 592 "http://username:p%3fa%26s%2fs%23@google.com",
593 L"username", 593 "username",
594 L"p?a&s/s#", 594 "p?a&s/s#",
595 }, 595 },
596 { // Username contains %20. 596 { // Username contains %20.
597 "http://use rname:password@google.com", 597 "http://use rname:password@google.com",
598 L"use rname", 598 "use rname",
599 L"password", 599 "password",
600 }, 600 },
601 { // Keep %00 as is. 601 { // Keep %00 as is.
602 "http://use%00rname:password@google.com", 602 "http://use%00rname:password@google.com",
603 L"use%00rname", 603 "use%00rname",
604 L"password", 604 "password",
605 }, 605 },
606 { // Use a '+' in the username. 606 { // Use a '+' in the username.
607 "http://use+rname:password@google.com", 607 "http://use+rname:password@google.com",
608 L"use+rname", 608 "use+rname",
609 L"password", 609 "password",
610 }, 610 },
611 { // Use a '&' in the password. 611 { // Use a '&' in the password.
612 "http://username:p&ssword@google.com", 612 "http://username:p&ssword@google.com",
613 L"username", 613 "username",
614 L"p&ssword", 614 "p&ssword",
615 }, 615 },
616 }; 616 };
617 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 617 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
618 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "]: %s", i, tests[i].input_url)); 618 SCOPED_TRACE(StringPrintf("Test[%" PRIuS "]: %s", i, tests[i].input_url));
619 GURL url(tests[i].input_url); 619 GURL url(tests[i].input_url);
620 620
621 std::wstring username, password; 621 string16 username, password;
622 net::GetIdentityFromURL(url, &username, &password); 622 net::GetIdentityFromURL(url, &username, &password);
623 623
624 EXPECT_EQ(tests[i].expected_username, username); 624 EXPECT_EQ(ASCIIToUTF16(tests[i].expected_username), username);
625 EXPECT_EQ(tests[i].expected_password, password); 625 EXPECT_EQ(ASCIIToUTF16(tests[i].expected_password), password);
626 } 626 }
627 } 627 }
628 628
629 // Try extracting a username which was encoded with UTF8. 629 // Try extracting a username which was encoded with UTF8.
630 TEST(NetUtilTest, GetIdentityFromURL_UTF8) { 630 TEST(NetUtilTest, GetIdentityFromURL_UTF8) {
631 GURL url(WideToUTF16(L"http://foo:\x4f60\x597d@blah.com")); 631 GURL url(WideToUTF16(L"http://foo:\x4f60\x597d@blah.com"));
632 632
633 EXPECT_EQ("foo", url.username()); 633 EXPECT_EQ("foo", url.username());
634 EXPECT_EQ("%E4%BD%A0%E5%A5%BD", url.password()); 634 EXPECT_EQ("%E4%BD%A0%E5%A5%BD", url.password());
635 635
636 // Extract the unescaped identity. 636 // Extract the unescaped identity.
637 std::wstring username, password; 637 string16 username, password;
638 net::GetIdentityFromURL(url, &username, &password); 638 net::GetIdentityFromURL(url, &username, &password);
639 639
640 // Verify that it was decoded as UTF8. 640 // Verify that it was decoded as UTF8.
641 EXPECT_EQ(L"foo", username); 641 EXPECT_EQ(ASCIIToUTF16("foo"), username);
642 EXPECT_EQ(L"\x4f60\x597d", password); 642 EXPECT_EQ(WideToUTF16(L"\x4f60\x597d"), password);
643 } 643 }
644 644
645 // Just a bunch of fake headers. 645 // Just a bunch of fake headers.
646 const wchar_t* google_headers = 646 const wchar_t* google_headers =
647 L"HTTP/1.1 200 OK\n" 647 L"HTTP/1.1 200 OK\n"
648 L"Content-TYPE: text/html; charset=utf-8\n" 648 L"Content-TYPE: text/html; charset=utf-8\n"
649 L"Content-disposition: attachment; filename=\"download.pdf\"\n" 649 L"Content-disposition: attachment; filename=\"download.pdf\"\n"
650 L"Content-Length: 378557\n" 650 L"Content-Length: 378557\n"
651 L"X-Google-Google1: 314159265\n" 651 L"X-Google-Google1: 314159265\n"
652 L"X-Google-Google2: aaaa2:7783,bbb21:9441\n" 652 L"X-Google-Google2: aaaa2:7783,bbb21:9441\n"
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after
2021 EXPECT_TRUE(net::ParseCIDRBlock(tests[i].cidr_literal, 2021 EXPECT_TRUE(net::ParseCIDRBlock(tests[i].cidr_literal,
2022 &ip_prefix, 2022 &ip_prefix,
2023 &prefix_length_in_bits)); 2023 &prefix_length_in_bits));
2024 2024
2025 EXPECT_EQ(tests[i].expected_to_match, 2025 EXPECT_EQ(tests[i].expected_to_match,
2026 net::IPNumberMatchesPrefix(ip_number, 2026 net::IPNumberMatchesPrefix(ip_number,
2027 ip_prefix, 2027 ip_prefix,
2028 prefix_length_in_bits)); 2028 prefix_length_in_bits));
2029 } 2029 }
2030 } 2030 }
OLDNEW
« no previous file with comments | « net/base/net_util.cc ('k') | net/ftp/ftp_auth_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698