Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "net/http/http_util.h" | 9 #include "net/http/http_util.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1085 ASSERT_NO_FATAL_FAILURE( | 1085 ASSERT_NO_FATAL_FAILURE( |
| 1086 CheckNextNameValuePair(&parser, true, true, "f", "'hello world'")); | 1086 CheckNextNameValuePair(&parser, true, true, "f", "'hello world'")); |
| 1087 ASSERT_NO_FATAL_FAILURE( | 1087 ASSERT_NO_FATAL_FAILURE( |
| 1088 CheckNextNameValuePair(&parser, true, true, "g", std::string())); | 1088 CheckNextNameValuePair(&parser, true, true, "g", std::string())); |
| 1089 ASSERT_NO_FATAL_FAILURE( | 1089 ASSERT_NO_FATAL_FAILURE( |
| 1090 CheckNextNameValuePair(&parser, true, true, "h", "hello")); | 1090 CheckNextNameValuePair(&parser, true, true, "h", "hello")); |
| 1091 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( | 1091 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( |
| 1092 &parser, false, true, std::string(), std::string())); | 1092 &parser, false, true, std::string(), std::string())); |
| 1093 } | 1093 } |
| 1094 | 1094 |
| 1095 TEST(HttpUtilTest, NameValuePairsIteratorOptionalValues) { | |
| 1096 std::string data = "alpha=1; beta=;cappa ; delta; e=; f=1"; | |
| 1097 // Test that the default parser requires values. | |
| 1098 HttpUtil::NameValuePairsIterator default_parser(data.begin(), data.end(), | |
| 1099 ';'); | |
| 1100 EXPECT_TRUE(default_parser.valid()); | |
| 1101 ASSERT_NO_FATAL_FAILURE( | |
| 1102 CheckNextNameValuePair(&default_parser, true, true, "alpha", "1")); | |
| 1103 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&default_parser, false, false, | |
|
davidben
2015/07/15 22:21:06
Hrm. Is a GetNext failure not supposed to be fatal
estark
2015/07/16 00:07:01
Done.
| |
| 1104 "beta", std::string())); | |
| 1105 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&default_parser, false, false, | |
| 1106 "cappa", std::string())); | |
| 1107 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&default_parser, false, false, | |
| 1108 "delta", std::string())); | |
| 1109 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&default_parser, false, false, | |
| 1110 "e", std::string())); | |
| 1111 ASSERT_NO_FATAL_FAILURE( | |
| 1112 CheckNextNameValuePair(&default_parser, true, false, "f", "1")); | |
| 1113 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&default_parser, false, false, | |
| 1114 std::string(), std::string())); | |
| 1115 | |
| 1116 HttpUtil::NameValuePairsIterator values_required_parser( | |
| 1117 data.begin(), data.end(), ';', | |
| 1118 HttpUtil::NameValuePairsIterator::VALUES_NOT_OPTIONAL); | |
| 1119 EXPECT_TRUE(values_required_parser.valid()); | |
| 1120 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&values_required_parser, true, | |
| 1121 true, "alpha", "1")); | |
| 1122 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&values_required_parser, false, | |
| 1123 false, "beta", std::string())); | |
|
davidben
2015/07/15 22:21:06
Ditto.
estark
2015/07/16 00:07:01
Done.
| |
| 1124 EXPECT_FALSE(values_required_parser.valid()); | |
| 1125 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( | |
| 1126 &values_required_parser, false, false, "cappa", std::string())); | |
| 1127 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( | |
| 1128 &values_required_parser, false, false, "delta", std::string())); | |
| 1129 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&values_required_parser, false, | |
| 1130 false, "e", std::string())); | |
| 1131 ASSERT_NO_FATAL_FAILURE( | |
| 1132 CheckNextNameValuePair(&values_required_parser, true, false, "f", "1")); | |
| 1133 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( | |
| 1134 &values_required_parser, false, false, std::string(), std::string())); | |
| 1135 | |
| 1136 HttpUtil::NameValuePairsIterator parser( | |
| 1137 data.begin(), data.end(), ';', | |
| 1138 HttpUtil::NameValuePairsIterator::VALUES_OPTIONAL); | |
| 1139 EXPECT_TRUE(parser.valid()); | |
| 1140 | |
| 1141 ASSERT_NO_FATAL_FAILURE( | |
| 1142 CheckNextNameValuePair(&parser, true, true, "alpha", "1")); | |
| 1143 ASSERT_NO_FATAL_FAILURE( | |
| 1144 CheckNextNameValuePair(&parser, true, true, "beta", std::string())); | |
| 1145 ASSERT_NO_FATAL_FAILURE( | |
| 1146 CheckNextNameValuePair(&parser, true, true, "cappa", std::string())); | |
| 1147 ASSERT_NO_FATAL_FAILURE( | |
| 1148 CheckNextNameValuePair(&parser, true, true, "delta", std::string())); | |
| 1149 ASSERT_NO_FATAL_FAILURE( | |
| 1150 CheckNextNameValuePair(&parser, true, true, "e", std::string())); | |
| 1151 ASSERT_NO_FATAL_FAILURE( | |
| 1152 CheckNextNameValuePair(&parser, true, true, "f", "1")); | |
| 1153 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair(&parser, false, true, | |
| 1154 std::string(), std::string())); | |
| 1155 EXPECT_TRUE(parser.valid()); | |
| 1156 } | |
| 1157 | |
| 1095 TEST(HttpUtilTest, NameValuePairsIteratorIllegalInputs) { | 1158 TEST(HttpUtilTest, NameValuePairsIteratorIllegalInputs) { |
| 1096 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", "; beta")); | 1159 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", "; beta")); |
| 1097 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair(std::string(), "beta")); | 1160 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair(std::string(), "beta")); |
| 1098 | 1161 |
| 1099 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", "; 'beta'=2")); | 1162 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", "; 'beta'=2")); |
| 1100 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair(std::string(), "'beta'=2")); | 1163 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair(std::string(), "'beta'=2")); |
| 1101 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", ";beta=")); | 1164 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", ";beta=")); |
| 1102 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", | 1165 ASSERT_NO_FATAL_FAILURE(CheckInvalidNameValuePair("alpha=1", |
| 1103 ";beta=;cappa=2")); | 1166 ";beta=;cappa=2")); |
| 1104 | 1167 |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1132 HttpUtil::NameValuePairsIterator parser(data.begin(), data.end(), ';'); | 1195 HttpUtil::NameValuePairsIterator parser(data.begin(), data.end(), ';'); |
| 1133 EXPECT_TRUE(parser.valid()); | 1196 EXPECT_TRUE(parser.valid()); |
| 1134 | 1197 |
| 1135 ASSERT_NO_FATAL_FAILURE( | 1198 ASSERT_NO_FATAL_FAILURE( |
| 1136 CheckNextNameValuePair(&parser, true, true, "name", "value")); | 1199 CheckNextNameValuePair(&parser, true, true, "name", "value")); |
| 1137 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( | 1200 ASSERT_NO_FATAL_FAILURE(CheckNextNameValuePair( |
| 1138 &parser, false, true, std::string(), std::string())); | 1201 &parser, false, true, std::string(), std::string())); |
| 1139 } | 1202 } |
| 1140 | 1203 |
| 1141 } // namespace net | 1204 } // namespace net |
| OLD | NEW |