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

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

Issue 13145003: Rewrite std::string("") to std::string(), Linux edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ugh Created 7 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 2578 matching lines...) Expand 10 before | Expand all | Expand 10 after
2589 EXPECT_EQ(WideToUTF16(L"8080"), 2589 EXPECT_EQ(WideToUTF16(L"8080"),
2590 formatted.substr(parsed.port.begin, parsed.port.len)); 2590 formatted.substr(parsed.port.begin, parsed.port.len));
2591 EXPECT_EQ(WideToUTF16(L"/\x30B0/"), 2591 EXPECT_EQ(WideToUTF16(L"/\x30B0/"),
2592 formatted.substr(parsed.path.begin, parsed.path.len)); 2592 formatted.substr(parsed.path.begin, parsed.path.len));
2593 EXPECT_EQ(WideToUTF16(L"q=\x30B0"), 2593 EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
2594 formatted.substr(parsed.query.begin, parsed.query.len)); 2594 formatted.substr(parsed.query.begin, parsed.query.len));
2595 EXPECT_EQ(WideToUTF16(L"\x30B0"), 2595 EXPECT_EQ(WideToUTF16(L"\x30B0"),
2596 formatted.substr(parsed.ref.begin, parsed.ref.len)); 2596 formatted.substr(parsed.ref.begin, parsed.ref.len));
2597 2597
2598 // View-source case. 2598 // View-source case.
2599 formatted = FormatUrl( 2599 formatted =
2600 GURL("view-source:http://user:passwd@host:81/path?query#ref"), 2600 FormatUrl(GURL("view-source:http://user:passwd@host:81/path?query#ref"),
2601 "", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, &parsed, 2601 std::string(),
2602 NULL, NULL); 2602 kFormatUrlOmitUsernamePassword,
2603 UnescapeRule::NORMAL,
2604 &parsed,
2605 NULL,
2606 NULL);
2603 EXPECT_EQ(WideToUTF16(L"view-source:http://host:81/path?query#ref"), 2607 EXPECT_EQ(WideToUTF16(L"view-source:http://host:81/path?query#ref"),
2604 formatted); 2608 formatted);
2605 EXPECT_EQ(WideToUTF16(L"view-source:http"), 2609 EXPECT_EQ(WideToUTF16(L"view-source:http"),
2606 formatted.substr(parsed.scheme.begin, parsed.scheme.len)); 2610 formatted.substr(parsed.scheme.begin, parsed.scheme.len));
2607 EXPECT_FALSE(parsed.username.is_valid()); 2611 EXPECT_FALSE(parsed.username.is_valid());
2608 EXPECT_FALSE(parsed.password.is_valid()); 2612 EXPECT_FALSE(parsed.password.is_valid());
2609 EXPECT_EQ(WideToUTF16(L"host"), 2613 EXPECT_EQ(WideToUTF16(L"host"),
2610 formatted.substr(parsed.host.begin, parsed.host.len)); 2614 formatted.substr(parsed.host.begin, parsed.host.len));
2611 EXPECT_EQ(WideToUTF16(L"81"), 2615 EXPECT_EQ(WideToUTF16(L"81"),
2612 formatted.substr(parsed.port.begin, parsed.port.len)); 2616 formatted.substr(parsed.port.begin, parsed.port.len));
2613 EXPECT_EQ(WideToUTF16(L"/path"), 2617 EXPECT_EQ(WideToUTF16(L"/path"),
2614 formatted.substr(parsed.path.begin, parsed.path.len)); 2618 formatted.substr(parsed.path.begin, parsed.path.len));
2615 EXPECT_EQ(WideToUTF16(L"query"), 2619 EXPECT_EQ(WideToUTF16(L"query"),
2616 formatted.substr(parsed.query.begin, parsed.query.len)); 2620 formatted.substr(parsed.query.begin, parsed.query.len));
2617 EXPECT_EQ(WideToUTF16(L"ref"), 2621 EXPECT_EQ(WideToUTF16(L"ref"),
2618 formatted.substr(parsed.ref.begin, parsed.ref.len)); 2622 formatted.substr(parsed.ref.begin, parsed.ref.len));
2619 2623
2620 // omit http case. 2624 // omit http case.
2621 formatted = FormatUrl( 2625 formatted = FormatUrl(GURL("http://host:8000/a?b=c#d"),
2622 GURL("http://host:8000/a?b=c#d"), 2626 std::string(),
2623 "", kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); 2627 kFormatUrlOmitHTTP,
2628 UnescapeRule::NORMAL,
2629 &parsed,
2630 NULL,
2631 NULL);
2624 EXPECT_EQ(WideToUTF16(L"host:8000/a?b=c#d"), formatted); 2632 EXPECT_EQ(WideToUTF16(L"host:8000/a?b=c#d"), formatted);
2625 EXPECT_FALSE(parsed.scheme.is_valid()); 2633 EXPECT_FALSE(parsed.scheme.is_valid());
2626 EXPECT_FALSE(parsed.username.is_valid()); 2634 EXPECT_FALSE(parsed.username.is_valid());
2627 EXPECT_FALSE(parsed.password.is_valid()); 2635 EXPECT_FALSE(parsed.password.is_valid());
2628 EXPECT_EQ(WideToUTF16(L"host"), 2636 EXPECT_EQ(WideToUTF16(L"host"),
2629 formatted.substr(parsed.host.begin, parsed.host.len)); 2637 formatted.substr(parsed.host.begin, parsed.host.len));
2630 EXPECT_EQ(WideToUTF16(L"8000"), 2638 EXPECT_EQ(WideToUTF16(L"8000"),
2631 formatted.substr(parsed.port.begin, parsed.port.len)); 2639 formatted.substr(parsed.port.begin, parsed.port.len));
2632 EXPECT_EQ(WideToUTF16(L"/a"), 2640 EXPECT_EQ(WideToUTF16(L"/a"),
2633 formatted.substr(parsed.path.begin, parsed.path.len)); 2641 formatted.substr(parsed.path.begin, parsed.path.len));
2634 EXPECT_EQ(WideToUTF16(L"b=c"), 2642 EXPECT_EQ(WideToUTF16(L"b=c"),
2635 formatted.substr(parsed.query.begin, parsed.query.len)); 2643 formatted.substr(parsed.query.begin, parsed.query.len));
2636 EXPECT_EQ(WideToUTF16(L"d"), 2644 EXPECT_EQ(WideToUTF16(L"d"),
2637 formatted.substr(parsed.ref.begin, parsed.ref.len)); 2645 formatted.substr(parsed.ref.begin, parsed.ref.len));
2638 2646
2639 // omit http starts with ftp case. 2647 // omit http starts with ftp case.
2640 formatted = FormatUrl( 2648 formatted = FormatUrl(GURL("http://ftp.host:8000/a?b=c#d"),
2641 GURL("http://ftp.host:8000/a?b=c#d"), 2649 std::string(),
2642 "", kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); 2650 kFormatUrlOmitHTTP,
2651 UnescapeRule::NORMAL,
2652 &parsed,
2653 NULL,
2654 NULL);
2643 EXPECT_EQ(WideToUTF16(L"http://ftp.host:8000/a?b=c#d"), formatted); 2655 EXPECT_EQ(WideToUTF16(L"http://ftp.host:8000/a?b=c#d"), formatted);
2644 EXPECT_TRUE(parsed.scheme.is_valid()); 2656 EXPECT_TRUE(parsed.scheme.is_valid());
2645 EXPECT_FALSE(parsed.username.is_valid()); 2657 EXPECT_FALSE(parsed.username.is_valid());
2646 EXPECT_FALSE(parsed.password.is_valid()); 2658 EXPECT_FALSE(parsed.password.is_valid());
2647 EXPECT_EQ(WideToUTF16(L"http"), 2659 EXPECT_EQ(WideToUTF16(L"http"),
2648 formatted.substr(parsed.scheme.begin, parsed.scheme.len)); 2660 formatted.substr(parsed.scheme.begin, parsed.scheme.len));
2649 EXPECT_EQ(WideToUTF16(L"ftp.host"), 2661 EXPECT_EQ(WideToUTF16(L"ftp.host"),
2650 formatted.substr(parsed.host.begin, parsed.host.len)); 2662 formatted.substr(parsed.host.begin, parsed.host.len));
2651 EXPECT_EQ(WideToUTF16(L"8000"), 2663 EXPECT_EQ(WideToUTF16(L"8000"),
2652 formatted.substr(parsed.port.begin, parsed.port.len)); 2664 formatted.substr(parsed.port.begin, parsed.port.len));
2653 EXPECT_EQ(WideToUTF16(L"/a"), 2665 EXPECT_EQ(WideToUTF16(L"/a"),
2654 formatted.substr(parsed.path.begin, parsed.path.len)); 2666 formatted.substr(parsed.path.begin, parsed.path.len));
2655 EXPECT_EQ(WideToUTF16(L"b=c"), 2667 EXPECT_EQ(WideToUTF16(L"b=c"),
2656 formatted.substr(parsed.query.begin, parsed.query.len)); 2668 formatted.substr(parsed.query.begin, parsed.query.len));
2657 EXPECT_EQ(WideToUTF16(L"d"), 2669 EXPECT_EQ(WideToUTF16(L"d"),
2658 formatted.substr(parsed.ref.begin, parsed.ref.len)); 2670 formatted.substr(parsed.ref.begin, parsed.ref.len));
2659 2671
2660 // omit http starts with 'f' case. 2672 // omit http starts with 'f' case.
2661 formatted = FormatUrl( 2673 formatted = FormatUrl(GURL("http://f/"),
2662 GURL("http://f/"), 2674 std::string(),
2663 "", kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); 2675 kFormatUrlOmitHTTP,
2676 UnescapeRule::NORMAL,
2677 &parsed,
2678 NULL,
2679 NULL);
2664 EXPECT_EQ(WideToUTF16(L"f/"), formatted); 2680 EXPECT_EQ(WideToUTF16(L"f/"), formatted);
2665 EXPECT_FALSE(parsed.scheme.is_valid()); 2681 EXPECT_FALSE(parsed.scheme.is_valid());
2666 EXPECT_FALSE(parsed.username.is_valid()); 2682 EXPECT_FALSE(parsed.username.is_valid());
2667 EXPECT_FALSE(parsed.password.is_valid()); 2683 EXPECT_FALSE(parsed.password.is_valid());
2668 EXPECT_FALSE(parsed.port.is_valid()); 2684 EXPECT_FALSE(parsed.port.is_valid());
2669 EXPECT_TRUE(parsed.path.is_valid()); 2685 EXPECT_TRUE(parsed.path.is_valid());
2670 EXPECT_FALSE(parsed.query.is_valid()); 2686 EXPECT_FALSE(parsed.query.is_valid());
2671 EXPECT_FALSE(parsed.ref.is_valid()); 2687 EXPECT_FALSE(parsed.ref.is_valid());
2672 EXPECT_EQ(WideToUTF16(L"f"), 2688 EXPECT_EQ(WideToUTF16(L"f"),
2673 formatted.substr(parsed.host.begin, parsed.host.len)); 2689 formatted.substr(parsed.host.begin, parsed.host.len));
2674 EXPECT_EQ(WideToUTF16(L"/"), 2690 EXPECT_EQ(WideToUTF16(L"/"),
2675 formatted.substr(parsed.path.begin, parsed.path.len)); 2691 formatted.substr(parsed.path.begin, parsed.path.len));
2676 } 2692 }
2677 2693
2678 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL 2694 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL
2679 // results in the original GURL, for each ASCII character in the path. 2695 // results in the original GURL, for each ASCII character in the path.
2680 TEST(NetUtilTest, FormatUrlRoundTripPathASCII) { 2696 TEST(NetUtilTest, FormatUrlRoundTripPathASCII) {
2681 for (unsigned char test_char = 32; test_char < 128; ++test_char) { 2697 for (unsigned char test_char = 32; test_char < 128; ++test_char) {
2682 GURL url(std::string("http://www.google.com/") + 2698 GURL url(std::string("http://www.google.com/") +
2683 static_cast<char>(test_char)); 2699 static_cast<char>(test_char));
2684 size_t prefix_len; 2700 size_t prefix_len;
2685 base::string16 formatted = FormatUrl( 2701 base::string16 formatted = FormatUrl(url,
2686 url, "", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, 2702 std::string(),
2687 &prefix_len, NULL); 2703 kFormatUrlOmitUsernamePassword,
2704 UnescapeRule::NORMAL,
2705 NULL,
2706 &prefix_len,
2707 NULL);
2688 EXPECT_EQ(url.spec(), GURL(formatted).spec()); 2708 EXPECT_EQ(url.spec(), GURL(formatted).spec());
2689 } 2709 }
2690 } 2710 }
2691 2711
2692 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL 2712 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL
2693 // results in the original GURL, for each escaped ASCII character in the path. 2713 // results in the original GURL, for each escaped ASCII character in the path.
2694 TEST(NetUtilTest, FormatUrlRoundTripPathEscaped) { 2714 TEST(NetUtilTest, FormatUrlRoundTripPathEscaped) {
2695 for (unsigned char test_char = 32; test_char < 128; ++test_char) { 2715 for (unsigned char test_char = 32; test_char < 128; ++test_char) {
2696 std::string original_url("http://www.google.com/"); 2716 std::string original_url("http://www.google.com/");
2697 original_url.push_back('%'); 2717 original_url.push_back('%');
2698 original_url.append(base::HexEncode(&test_char, 1)); 2718 original_url.append(base::HexEncode(&test_char, 1));
2699 2719
2700 GURL url(original_url); 2720 GURL url(original_url);
2701 size_t prefix_len; 2721 size_t prefix_len;
2702 base::string16 formatted = FormatUrl( 2722 base::string16 formatted = FormatUrl(url,
2703 url, "", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, 2723 std::string(),
2704 &prefix_len, NULL); 2724 kFormatUrlOmitUsernamePassword,
2725 UnescapeRule::NORMAL,
2726 NULL,
2727 &prefix_len,
2728 NULL);
2705 EXPECT_EQ(url.spec(), GURL(formatted).spec()); 2729 EXPECT_EQ(url.spec(), GURL(formatted).spec());
2706 } 2730 }
2707 } 2731 }
2708 2732
2709 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL 2733 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL
2710 // results in the original GURL, for each ASCII character in the query. 2734 // results in the original GURL, for each ASCII character in the query.
2711 TEST(NetUtilTest, FormatUrlRoundTripQueryASCII) { 2735 TEST(NetUtilTest, FormatUrlRoundTripQueryASCII) {
2712 for (unsigned char test_char = 32; test_char < 128; ++test_char) { 2736 for (unsigned char test_char = 32; test_char < 128; ++test_char) {
2713 GURL url(std::string("http://www.google.com/?") + 2737 GURL url(std::string("http://www.google.com/?") +
2714 static_cast<char>(test_char)); 2738 static_cast<char>(test_char));
2715 size_t prefix_len; 2739 size_t prefix_len;
2716 base::string16 formatted = FormatUrl( 2740 base::string16 formatted = FormatUrl(url,
2717 url, "", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, 2741 std::string(),
2718 &prefix_len, NULL); 2742 kFormatUrlOmitUsernamePassword,
2743 UnescapeRule::NORMAL,
2744 NULL,
2745 &prefix_len,
2746 NULL);
2719 EXPECT_EQ(url.spec(), GURL(formatted).spec()); 2747 EXPECT_EQ(url.spec(), GURL(formatted).spec());
2720 } 2748 }
2721 } 2749 }
2722 2750
2723 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL 2751 // Make sure that calling FormatUrl on a GURL and then converting back to a GURL
2724 // only results in a different GURL for certain characters. 2752 // only results in a different GURL for certain characters.
2725 TEST(NetUtilTest, FormatUrlRoundTripQueryEscaped) { 2753 TEST(NetUtilTest, FormatUrlRoundTripQueryEscaped) {
2726 // A full list of characters which FormatURL should unescape and GURL should 2754 // A full list of characters which FormatURL should unescape and GURL should
2727 // not escape again, when they appear in a query string. 2755 // not escape again, when they appear in a query string.
2728 const char* kUnescapedCharacters = 2756 const char* kUnescapedCharacters =
2729 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~"; 2757 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~";
2730 for (unsigned char test_char = 0; test_char < 128; ++test_char) { 2758 for (unsigned char test_char = 0; test_char < 128; ++test_char) {
2731 std::string original_url("http://www.google.com/?"); 2759 std::string original_url("http://www.google.com/?");
2732 original_url.push_back('%'); 2760 original_url.push_back('%');
2733 original_url.append(base::HexEncode(&test_char, 1)); 2761 original_url.append(base::HexEncode(&test_char, 1));
2734 2762
2735 GURL url(original_url); 2763 GURL url(original_url);
2736 size_t prefix_len; 2764 size_t prefix_len;
2737 base::string16 formatted = FormatUrl( 2765 base::string16 formatted = FormatUrl(url,
2738 url, "", kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, 2766 std::string(),
2739 &prefix_len, NULL); 2767 kFormatUrlOmitUsernamePassword,
2768 UnescapeRule::NORMAL,
2769 NULL,
2770 &prefix_len,
2771 NULL);
2740 2772
2741 if (test_char && 2773 if (test_char &&
2742 strchr(kUnescapedCharacters, static_cast<char>(test_char))) { 2774 strchr(kUnescapedCharacters, static_cast<char>(test_char))) {
2743 EXPECT_NE(url.spec(), GURL(formatted).spec()); 2775 EXPECT_NE(url.spec(), GURL(formatted).spec());
2744 } else { 2776 } else {
2745 EXPECT_EQ(url.spec(), GURL(formatted).spec()); 2777 EXPECT_EQ(url.spec(), GURL(formatted).spec());
2746 } 2778 }
2747 } 2779 }
2748 } 2780 }
2749 2781
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
3029 EXPECT_EQ("file:///tmp/test.html", 3061 EXPECT_EQ("file:///tmp/test.html",
3030 GetHostOrSpecFromURL(GURL("file:///tmp/test.html"))); 3062 GetHostOrSpecFromURL(GURL("file:///tmp/test.html")));
3031 } 3063 }
3032 3064
3033 // Test that invalid IP literals fail to parse. 3065 // Test that invalid IP literals fail to parse.
3034 TEST(NetUtilTest, ParseIPLiteralToNumber_FailParse) { 3066 TEST(NetUtilTest, ParseIPLiteralToNumber_FailParse) {
3035 IPAddressNumber number; 3067 IPAddressNumber number;
3036 3068
3037 EXPECT_FALSE(ParseIPLiteralToNumber("bad value", &number)); 3069 EXPECT_FALSE(ParseIPLiteralToNumber("bad value", &number));
3038 EXPECT_FALSE(ParseIPLiteralToNumber("bad:value", &number)); 3070 EXPECT_FALSE(ParseIPLiteralToNumber("bad:value", &number));
3039 EXPECT_FALSE(ParseIPLiteralToNumber("", &number)); 3071 EXPECT_FALSE(ParseIPLiteralToNumber(std::string(), &number));
3040 EXPECT_FALSE(ParseIPLiteralToNumber("192.168.0.1:30", &number)); 3072 EXPECT_FALSE(ParseIPLiteralToNumber("192.168.0.1:30", &number));
3041 EXPECT_FALSE(ParseIPLiteralToNumber(" 192.168.0.1 ", &number)); 3073 EXPECT_FALSE(ParseIPLiteralToNumber(" 192.168.0.1 ", &number));
3042 EXPECT_FALSE(ParseIPLiteralToNumber("[::1]", &number)); 3074 EXPECT_FALSE(ParseIPLiteralToNumber("[::1]", &number));
3043 } 3075 }
3044 3076
3045 // Test parsing an IPv4 literal. 3077 // Test parsing an IPv4 literal.
3046 TEST(NetUtilTest, ParseIPLiteralToNumber_IPv4) { 3078 TEST(NetUtilTest, ParseIPLiteralToNumber_IPv4) {
3047 IPAddressNumber number; 3079 IPAddressNumber number;
3048 EXPECT_TRUE(ParseIPLiteralToNumber("192.168.0.1", &number)); 3080 EXPECT_TRUE(ParseIPLiteralToNumber("192.168.0.1", &number));
3049 EXPECT_EQ("192,168,0,1", DumpIPNumber(number)); 3081 EXPECT_EQ("192,168,0,1", DumpIPNumber(number));
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
3264 if (it->address[i] != 0) { 3296 if (it->address[i] != 0) {
3265 all_zeroes = false; 3297 all_zeroes = false;
3266 break; 3298 break;
3267 } 3299 }
3268 } 3300 }
3269 EXPECT_FALSE(all_zeroes); 3301 EXPECT_FALSE(all_zeroes);
3270 } 3302 }
3271 } 3303 }
3272 3304
3273 } // namespace net 3305 } // namespace net
OLDNEW
« no previous file with comments | « net/base/net_util.cc ('k') | net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698