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

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

Issue 23619016: Switch the offset conversion routines from... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 3 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
« net/base/net_util.cc ('K') | « net/base/net_util.cc ('k') | no next file » | 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) 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 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 FormatUrlTypes format_types, 453 FormatUrlTypes format_types,
454 UnescapeRule::Type unescape_rules, 454 UnescapeRule::Type unescape_rules,
455 const AdjustOffsetCase* cases, 455 const AdjustOffsetCase* cases,
456 size_t num_cases, 456 size_t num_cases,
457 const size_t* all_offsets) { 457 const size_t* all_offsets) {
458 GURL url(url_string); 458 GURL url(url_string);
459 for (size_t i = 0; i < num_cases; ++i) { 459 for (size_t i = 0; i < num_cases; ++i) {
460 size_t offset = cases[i].input_offset; 460 size_t offset = cases[i].input_offset;
461 base::string16 formatted_url = FormatUrl(url, languages, format_types, 461 base::string16 formatted_url = FormatUrl(url, languages, format_types,
462 unescape_rules, NULL, NULL, &offset); 462 unescape_rules, NULL, NULL, &offset);
463 VerboseExpect(cases[i].output_offset, offset, url_string, i, formatted_url); 463 VerboseExpect(cases[i].output_offset, offset, url_string,
464 cases[i].input_offset, formatted_url);
464 } 465 }
465 466
466 size_t url_size = url_string.length(); 467 size_t url_length = url_string.length();
467 std::vector<size_t> offsets; 468 std::vector<size_t> offsets;
468 for (size_t i = 0; i < url_size + 1; ++i) 469 for (size_t i = 0; i <= url_length; ++i)
469 offsets.push_back(i); 470 offsets.push_back(i);
470 base::string16 formatted_url = FormatUrlWithOffsets(url, languages, 471 base::string16 formatted_url = FormatUrlWithOffsets(url, languages,
471 format_types, unescape_rules, NULL, NULL, &offsets); 472 format_types, unescape_rules, NULL, NULL, &offsets);
472 for (size_t i = 0; i < url_size; ++i) 473 for (size_t i = 0; i < url_length; ++i)
473 VerboseExpect(all_offsets[i], offsets[i], url_string, i, formatted_url); 474 VerboseExpect(all_offsets[i], offsets[i], url_string, i, formatted_url);
474 VerboseExpect(kNpos, offsets[url_size], url_string, url_size, formatted_url); 475 VerboseExpect(formatted_url.length(), offsets[url_length], url_string,
476 url_length, formatted_url);
475 } 477 }
476 478
477 // Helper to strignize an IP number (used to define expectations). 479 // Helper to strignize an IP number (used to define expectations).
478 std::string DumpIPNumber(const IPAddressNumber& v) { 480 std::string DumpIPNumber(const IPAddressNumber& v) {
479 std::string out; 481 std::string out;
480 for (size_t i = 0; i < v.size(); ++i) { 482 for (size_t i = 0; i < v.size(); ++i) {
481 if (i != 0) 483 if (i != 0)
482 out.append(","); 484 out.append(",");
483 out.append(base::IntToString(static_cast<int>(v[i]))); 485 out.append(base::IntToString(static_cast<int>(v[i])));
484 } 486 }
(...skipping 2395 matching lines...) Expand 10 before | Expand all | Expand 10 after
2880 strchr(kUnescapedCharacters, static_cast<char>(test_char))) { 2882 strchr(kUnescapedCharacters, static_cast<char>(test_char))) {
2881 EXPECT_NE(url.spec(), GURL(formatted).spec()); 2883 EXPECT_NE(url.spec(), GURL(formatted).spec());
2882 } else { 2884 } else {
2883 EXPECT_EQ(url.spec(), GURL(formatted).spec()); 2885 EXPECT_EQ(url.spec(), GURL(formatted).spec());
2884 } 2886 }
2885 } 2887 }
2886 } 2888 }
2887 2889
2888 TEST(NetUtilTest, FormatUrlWithOffsets) { 2890 TEST(NetUtilTest, FormatUrlWithOffsets) {
2889 const AdjustOffsetCase null_cases[] = { 2891 const AdjustOffsetCase null_cases[] = {
2890 {0, base::string16::npos}, 2892 {0, 0},
2893 {1, base::string16::npos},
2891 }; 2894 };
2892 CheckAdjustedOffsets(std::string(), "en", kFormatUrlOmitNothing, 2895 CheckAdjustedOffsets(std::string(), "en", kFormatUrlOmitNothing,
2893 UnescapeRule::NORMAL, null_cases, arraysize(null_cases), NULL); 2896 UnescapeRule::NORMAL, null_cases, arraysize(null_cases),
2897 NULL);
2894 2898
2895 const AdjustOffsetCase basic_cases[] = { 2899 const AdjustOffsetCase basic_cases[] = {
2896 {0, 0}, 2900 {0, 0},
msw 2013/09/06 00:31:08 Aren't all these cases except 27, 500000, and base
Peter Kasting 2013/09/06 19:04:36 Yes.
msw 2013/09/09 19:15:52 As I suggested, you can just remove all AdjustOffs
Peter Kasting 2013/09/09 23:43:02 Done.
2897 {3, 3}, 2901 {3, 3},
2898 {5, 5}, 2902 {5, 5},
2899 {6, 6}, 2903 {6, 6},
2900 {13, 13}, 2904 {13, 13},
2901 {21, 21}, 2905 {21, 21},
2902 {22, 22}, 2906 {22, 22},
2903 {23, 23}, 2907 {23, 23},
2904 {25, 25}, 2908 {25, 25},
2905 {26, base::string16::npos}, 2909 {26, 26},
2910 {27, base::string16::npos},
2906 {500000, base::string16::npos}, 2911 {500000, base::string16::npos},
2907 {base::string16::npos, base::string16::npos}, 2912 {base::string16::npos, base::string16::npos},
2908 }; 2913 };
2909 const size_t basic_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2914 const size_t basic_offsets[] = {
msw 2013/09/06 00:31:08 Optionally, you could change the size_t arrays of
Peter Kasting 2013/09/06 19:04:36 Ultimately I find both somewhat confusing.
2910 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; 2915 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2916 21, 22, 23, 24, 25
msw 2013/09/06 00:31:08 Shouldn't 26 now also be part of this array for th
Peter Kasting 2013/09/06 19:04:36 CheckAdjustedOffsets() checks this value automatic
2917 };
2911 CheckAdjustedOffsets("http://www.google.com/foo/", "en", 2918 CheckAdjustedOffsets("http://www.google.com/foo/", "en",
2912 kFormatUrlOmitNothing, UnescapeRule::NORMAL, basic_cases, 2919 kFormatUrlOmitNothing, UnescapeRule::NORMAL, basic_cases,
2913 arraysize(basic_cases), basic_offsets); 2920 arraysize(basic_cases), basic_offsets);
2914 2921
2915 const AdjustOffsetCase omit_auth_cases_1[] = { 2922 const AdjustOffsetCase omit_auth_cases_1[] = {
2916 {6, 6}, 2923 {6, 6},
msw 2013/09/06 00:31:08 Again, all of these cases are redundant with the o
2917 {7, base::string16::npos}, 2924 {7, 7},
2918 {8, base::string16::npos}, 2925 {8, base::string16::npos},
2919 {10, base::string16::npos}, 2926 {10, base::string16::npos},
2920 {12, base::string16::npos}, 2927 {12, base::string16::npos},
2921 {14, base::string16::npos}, 2928 {14, base::string16::npos},
2922 {15, 7}, 2929 {15, 7},
2923 {25, 17}, 2930 {25, 17},
2924 }; 2931 };
2925 const size_t omit_auth_offsets_1[] = {0, 1, 2, 3, 4, 5, 6, kNpos, kNpos, 2932 const size_t omit_auth_offsets_1[] = {
2926 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2933 0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 7,
2927 16, 17, 18, 19, 20, 21}; 2934 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
2935 };
2928 CheckAdjustedOffsets("http://foo:bar@www.google.com/", "en", 2936 CheckAdjustedOffsets("http://foo:bar@www.google.com/", "en",
2929 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, omit_auth_cases_1, 2937 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
2930 arraysize(omit_auth_cases_1), omit_auth_offsets_1); 2938 omit_auth_cases_1, arraysize(omit_auth_cases_1),
2939 omit_auth_offsets_1);
2931 2940
2932 const AdjustOffsetCase omit_auth_cases_2[] = { 2941 const AdjustOffsetCase omit_auth_cases_2[] = {
2933 {9, base::string16::npos}, 2942 {9, base::string16::npos},
2934 {11, 7}, 2943 {11, 7},
2935 }; 2944 };
2936 const size_t omit_auth_offsets_2[] = {0, 1, 2, 3, 4, 5, 6, kNpos, kNpos, 2945 const size_t omit_auth_offsets_2[] = {
2937 kNpos, kNpos, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}; 2946 0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, kNpos, 7, 8, 9, 10, 11, 12, 13, 14,
2947 15, 16, 17, 18, 19, 20, 21
2948 };
2938 CheckAdjustedOffsets("http://foo@www.google.com/", "en", 2949 CheckAdjustedOffsets("http://foo@www.google.com/", "en",
2939 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, omit_auth_cases_2, 2950 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
2940 arraysize(omit_auth_cases_2), omit_auth_offsets_2); 2951 omit_auth_cases_2, arraysize(omit_auth_cases_2),
2952 omit_auth_offsets_2);
2941 2953
2942 // "http://foo\x30B0:\x30B0bar@www.google.com" 2954 // "http://foo\x30B0:\x30B0bar@www.google.com"
msw 2013/09/06 00:31:08 nit: can you expand on this comment, I guess this
Peter Kasting 2013/09/06 19:04:36 OK, I expanded these slightly and moved them.
2943 const AdjustOffsetCase dont_omit_auth_cases[] = { 2955 const AdjustOffsetCase dont_omit_auth_cases[] = {
2944 {0, 0}, 2956 {0, 0},
2945 /*{3, base::string16::npos}, 2957 {11, base::string16::npos},
2946 {7, 0}, 2958 {19, 11},
2947 {11, 4}, 2959 {20, 12},
2948 {12, base::string16::npos}, 2960 {21, base::string16::npos},
2949 {20, 5}, 2961 {29, 13},
2950 {24, 9},*/ 2962 {33, 17},
2951 }; 2963 };
2952 const size_t dont_omit_auth_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2964 const size_t dont_omit_auth_offsets[] = {
2953 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 11, 12, kNpos, 2965 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
2954 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 13, 14, 15, 16, 17, 18, 2966 kNpos, kNpos, 11, 12, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
2955 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; 2967 kNpos, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2968 30, 31
2969 };
2956 CheckAdjustedOffsets("http://foo%E3%82%B0:%E3%82%B0bar@www.google.com/", "en", 2970 CheckAdjustedOffsets("http://foo%E3%82%B0:%E3%82%B0bar@www.google.com/", "en",
2957 kFormatUrlOmitNothing, UnescapeRule::NORMAL, dont_omit_auth_cases, 2971 kFormatUrlOmitNothing, UnescapeRule::NORMAL,
2958 arraysize(dont_omit_auth_cases), dont_omit_auth_offsets); 2972 dont_omit_auth_cases, arraysize(dont_omit_auth_cases),
2973 dont_omit_auth_offsets);
2959 2974
2960 const AdjustOffsetCase view_source_cases[] = { 2975 const AdjustOffsetCase view_source_cases[] = {
2961 {0, 0}, 2976 {0, 0},
2962 {3, 3}, 2977 {3, 3},
2963 {11, 11}, 2978 {11, 11},
2964 {12, 12}, 2979 {12, 12},
2965 {13, 13}, 2980 {13, 13},
2966 {18, 18}, 2981 {18, 18},
2967 {19, base::string16::npos}, 2982 {19, 19},
2968 {20, base::string16::npos}, 2983 {20, base::string16::npos},
2969 {23, 19}, 2984 {23, 19},
2970 {26, 22}, 2985 {26, 22},
2971 {base::string16::npos, base::string16::npos}, 2986 {base::string16::npos, base::string16::npos},
2972 }; 2987 };
2973 const size_t view_source_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2988 const size_t view_source_offsets[] = {
2974 12, 13, 14, 15, 16, 17, 18, kNpos, kNpos, kNpos, kNpos, 19, 20, 21, 22, 2989 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, kNpos,
2975 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}; 2990 kNpos, kNpos, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
2991 };
2976 CheckAdjustedOffsets("view-source:http://foo@www.google.com/", "en", 2992 CheckAdjustedOffsets("view-source:http://foo@www.google.com/", "en",
2977 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, view_source_cases, 2993 kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL,
2978 arraysize(view_source_cases), view_source_offsets); 2994 view_source_cases, arraysize(view_source_cases),
2995 view_source_offsets);
2979 2996
2980 // "http://\x671d\x65e5\x3042\x3055\x3072.jp/foo/" 2997 // "http://\x671d\x65e5\x3042\x3055\x3072.jp/foo/"
2981 const AdjustOffsetCase idn_hostname_cases_1[] = { 2998 const AdjustOffsetCase idn_hostname_cases_1[] = {
2982 {8, base::string16::npos}, 2999 {8, base::string16::npos},
2983 {16, base::string16::npos}, 3000 {16, base::string16::npos},
2984 {24, base::string16::npos}, 3001 {24, base::string16::npos},
2985 {25, 12}, 3002 {25, 12},
2986 {30, 17}, 3003 {30, 17},
2987 }; 3004 };
2988 const size_t idn_hostname_offsets_1[] = {0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, 3005 const size_t idn_hostname_offsets_1[] = {
2989 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 3006 0, 1, 2, 3, 4, 5, 6, 7, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
2990 kNpos, kNpos, kNpos, kNpos, kNpos, 12, 13, 14, 15, 16, 17, 18, 19}; 3007 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 12,
3008 13, 14, 15, 16, 17, 18, 19
3009 };
2991 CheckAdjustedOffsets("http://xn--l8jvb1ey91xtjb.jp/foo/", "ja", 3010 CheckAdjustedOffsets("http://xn--l8jvb1ey91xtjb.jp/foo/", "ja",
2992 kFormatUrlOmitNothing, UnescapeRule::NORMAL, idn_hostname_cases_1, 3011 kFormatUrlOmitNothing, UnescapeRule::NORMAL,
2993 arraysize(idn_hostname_cases_1), idn_hostname_offsets_1); 3012 idn_hostname_cases_1, arraysize(idn_hostname_cases_1),
3013 idn_hostname_offsets_1);
2994 3014
2995 // "http://test.\x89c6\x9891.\x5317\x4eac\x5927\x5b78.test/" 3015 // "http://test.\x89c6\x9891.\x5317\x4eac\x5927\x5b78.test/"
2996 const AdjustOffsetCase idn_hostname_cases_2[] = { 3016 const AdjustOffsetCase idn_hostname_cases_2[] = {
2997 {7, 7}, 3017 {7, 7},
2998 {9, 9}, 3018 {9, 9},
2999 {11, 11}, 3019 {11, 11},
3000 {12, 12}, 3020 {12, 12},
3001 {13, base::string16::npos}, 3021 {13, base::string16::npos},
3002 {23, base::string16::npos}, 3022 {23, base::string16::npos},
3003 {24, 14}, 3023 {24, 14},
3004 {25, 15}, 3024 {25, 15},
3005 {26, base::string16::npos}, 3025 {26, base::string16::npos},
3006 {32, base::string16::npos}, 3026 {32, base::string16::npos},
3007 {41, 19}, 3027 {41, 19},
3008 {42, 20}, 3028 {42, 20},
3009 {45, 23}, 3029 {45, 23},
3010 {46, 24}, 3030 {46, 24},
3011 {47, base::string16::npos}, 3031 {47, 25},
3012 {base::string16::npos, base::string16::npos}, 3032 {base::string16::npos, base::string16::npos},
3013 }; 3033 };
3014 const size_t idn_hostname_offsets_2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3034 const size_t idn_hostname_offsets_2[] = {
3015 12, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 3035 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, kNpos, kNpos, kNpos, kNpos, kNpos,
3016 kNpos, 14, 15, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 3036 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 14, 15, kNpos, kNpos, kNpos,
3017 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 19, 20, 21, 22, 23, 24}; 3037 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
3038 kNpos, 19, 20, 21, 22, 23, 24
3039 };
3018 CheckAdjustedOffsets("http://test.xn--cy2a840a.xn--1lq90ic7f1rc.test/", 3040 CheckAdjustedOffsets("http://test.xn--cy2a840a.xn--1lq90ic7f1rc.test/",
3019 "zh-CN", kFormatUrlOmitNothing, UnescapeRule::NORMAL, 3041 "zh-CN", kFormatUrlOmitNothing, UnescapeRule::NORMAL,
3020 idn_hostname_cases_2, arraysize(idn_hostname_cases_2), 3042 idn_hostname_cases_2, arraysize(idn_hostname_cases_2),
3021 idn_hostname_offsets_2); 3043 idn_hostname_offsets_2);
3022 3044
3023 // "http://www.google.com/foo bar/\x30B0\x30FC\x30B0\x30EB" 3045 // "http://www.google.com/foo bar/\x30B0\x30FC\x30B0\x30EB"
3024 const AdjustOffsetCase unescape_cases[] = { 3046 const AdjustOffsetCase unescape_cases[] = {
3025 {25, 25}, 3047 {25, 25},
3026 {26, base::string16::npos}, 3048 {26, base::string16::npos},
3027 {27, base::string16::npos}, 3049 {27, base::string16::npos},
3028 {28, 26}, 3050 {28, 26},
3029 {35, base::string16::npos}, 3051 {35, base::string16::npos},
3030 {41, 31}, 3052 {41, 31},
3031 {59, 33}, 3053 {59, 33},
3032 {60, base::string16::npos}, 3054 {60, base::string16::npos},
3033 {67, base::string16::npos}, 3055 {67, base::string16::npos},
3034 {68, base::string16::npos}, 3056 {68, 34},
3035 }; 3057 };
3036 const size_t unescape_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3058 const size_t unescape_offsets[] = {
3037 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, kNpos, kNpos, 26, 27, 3059 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3038 28, 29, 30, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 31, 3060 21, 22, 23, 24, 25, kNpos, kNpos, 26, 27, 28, 29, 30, kNpos, kNpos, kNpos,
3039 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 32, kNpos, kNpos, 3061 kNpos, kNpos, kNpos, kNpos, kNpos, 31, kNpos, kNpos, kNpos, kNpos, kNpos,
3040 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 33, kNpos, kNpos, kNpos, kNpos, 3062 kNpos, kNpos, kNpos, 32, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
3041 kNpos, kNpos, kNpos, kNpos}; 3063 kNpos, 33, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos
3064 };
3042 CheckAdjustedOffsets( 3065 CheckAdjustedOffsets(
3043 "http://www.google.com/foo%20bar/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", 3066 "http://www.google.com/foo%20bar/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB",
3044 "en", kFormatUrlOmitNothing, UnescapeRule::SPACES, unescape_cases, 3067 "en", kFormatUrlOmitNothing, UnescapeRule::SPACES, unescape_cases,
3045 arraysize(unescape_cases), unescape_offsets); 3068 arraysize(unescape_cases), unescape_offsets);
3046 3069
3047 // "http://www.google.com/foo.html#\x30B0\x30B0z" 3070 // "http://www.google.com/foo.html#\x30B0\x30B0z"
3048 const AdjustOffsetCase ref_cases[] = { 3071 const AdjustOffsetCase ref_cases[] = {
3049 {30, 30}, 3072 {30, 30},
3050 {31, 31}, 3073 {31, 31},
3051 {32, base::string16::npos}, 3074 {32, base::string16::npos},
3052 {34, 32}, 3075 {34, 32},
3053 {35, base::string16::npos}, 3076 {35, base::string16::npos},
3054 {37, 33}, 3077 {37, 33},
3055 {38, base::string16::npos}, 3078 {38, 34},
3056 }; 3079 };
3057 const size_t ref_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3080 const size_t ref_offsets[] = {
3058 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 3081 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3059 kNpos, kNpos, 32, kNpos, kNpos, 33}; 3082 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, kNpos, kNpos, 32, kNpos, kNpos,
3083 33
3084 };
3060 CheckAdjustedOffsets( 3085 CheckAdjustedOffsets(
3061 "http://www.google.com/foo.html#\xE3\x82\xB0\xE3\x82\xB0z", "en", 3086 "http://www.google.com/foo.html#\xE3\x82\xB0\xE3\x82\xB0z", "en",
3062 kFormatUrlOmitNothing, UnescapeRule::NORMAL, ref_cases, 3087 kFormatUrlOmitNothing, UnescapeRule::NORMAL, ref_cases,
3063 arraysize(ref_cases), ref_offsets); 3088 arraysize(ref_cases), ref_offsets);
3064 3089
3065 const AdjustOffsetCase omit_http_cases[] = { 3090 const AdjustOffsetCase omit_http_cases[] = {
3066 {0, base::string16::npos}, 3091 {0, 0},
3067 {3, base::string16::npos}, 3092 {3, base::string16::npos},
3068 {7, 0}, 3093 {7, 0},
3069 {8, 1}, 3094 {8, 1},
3070 }; 3095 };
3071 const size_t omit_http_offsets[] = {kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 3096 const size_t omit_http_offsets[] = {
3072 kNpos, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; 3097 0, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
3073 CheckAdjustedOffsets("http://www.google.com/", "en", 3098 10, 11, 12, 13, 14
3074 kFormatUrlOmitHTTP, UnescapeRule::NORMAL, omit_http_cases, 3099 };
3075 arraysize(omit_http_cases), omit_http_offsets); 3100 CheckAdjustedOffsets("http://www.google.com/", "en", kFormatUrlOmitHTTP,
3101 UnescapeRule::NORMAL, omit_http_cases,
3102 arraysize(omit_http_cases), omit_http_offsets);
3076 3103
3077 const AdjustOffsetCase omit_http_start_with_ftp_cases[] = { 3104 const AdjustOffsetCase omit_http_start_with_ftp_cases[] = {
3078 {0, 0}, 3105 {0, 0},
3079 {3, 3}, 3106 {3, 3},
3080 {8, 8}, 3107 {8, 8},
3081 }; 3108 };
3082 const size_t omit_http_start_with_ftp_offsets[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 3109 const size_t omit_http_start_with_ftp_offsets[] = {
3083 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}; 3110 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
3111 };
3084 CheckAdjustedOffsets("http://ftp.google.com/", "en", kFormatUrlOmitHTTP, 3112 CheckAdjustedOffsets("http://ftp.google.com/", "en", kFormatUrlOmitHTTP,
3085 UnescapeRule::NORMAL, omit_http_start_with_ftp_cases, 3113 UnescapeRule::NORMAL, omit_http_start_with_ftp_cases,
3086 arraysize(omit_http_start_with_ftp_cases), 3114 arraysize(omit_http_start_with_ftp_cases),
3087 omit_http_start_with_ftp_offsets); 3115 omit_http_start_with_ftp_offsets);
3088 3116
3089 const AdjustOffsetCase omit_all_cases[] = { 3117 const AdjustOffsetCase omit_all_cases[] = {
3118 {0, 0},
3119 {3, base::string16::npos},
3090 {12, 0}, 3120 {12, 0},
3091 {13, 1}, 3121 {13, 1},
3092 {0, base::string16::npos},
3093 {3, base::string16::npos},
3094 }; 3122 };
3095 const size_t omit_all_offsets[] = {kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 3123 const size_t omit_all_offsets[] = {
3096 kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 0, 1, 2, 3, 4, 5, 6, kNpos}; 3124 0, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 0, kNpos, kNpos, kNpos, kNpos,
3125 0, 1, 2, 3, 4, 5, 6, 7
3126 };
3097 CheckAdjustedOffsets("http://user@foo.com/", "en", kFormatUrlOmitAll, 3127 CheckAdjustedOffsets("http://user@foo.com/", "en", kFormatUrlOmitAll,
3098 UnescapeRule::NORMAL, omit_all_cases, 3128 UnescapeRule::NORMAL, omit_all_cases,
3099 arraysize(omit_all_cases), omit_all_offsets); 3129 arraysize(omit_all_cases), omit_all_offsets);
3100 } 3130 }
3101 3131
3102 TEST(NetUtilTest, SimplifyUrlForRequest) { 3132 TEST(NetUtilTest, SimplifyUrlForRequest) {
3103 struct { 3133 struct {
3104 const char* input_url; 3134 const char* input_url;
3105 const char* expected_simplified_url; 3135 const char* expected_simplified_url;
3106 } tests[] = { 3136 } tests[] = {
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
3572 TEST_P(NetUtilNonUniqueNameTest, IsHostnameNonUnique) { 3602 TEST_P(NetUtilNonUniqueNameTest, IsHostnameNonUnique) {
3573 const NonUniqueNameTestData& test_data = GetParam(); 3603 const NonUniqueNameTestData& test_data = GetParam();
3574 3604
3575 EXPECT_EQ(test_data.is_unique, IsUnique(test_data.hostname)); 3605 EXPECT_EQ(test_data.is_unique, IsUnique(test_data.hostname));
3576 } 3606 }
3577 3607
3578 INSTANTIATE_TEST_CASE_P(, NetUtilNonUniqueNameTest, 3608 INSTANTIATE_TEST_CASE_P(, NetUtilNonUniqueNameTest,
3579 testing::ValuesIn(kNonUniqueNameTestData)); 3609 testing::ValuesIn(kNonUniqueNameTestData));
3580 3610
3581 } // namespace net 3611 } // namespace net
OLDNEW
« net/base/net_util.cc ('K') | « net/base/net_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698