| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/strings/string_piece.h" | 6 #include "base/strings/string_piece.h" |
| 7 #include "chrome/browser/extensions/api/web_request/form_data_parser.h" | 7 #include "chrome/browser/extensions/api/web_request/form_data_parser.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 namespace extensions { | 10 namespace extensions { |
| 11 | 11 |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 // Attempts to create a parser corresponding to the |content_type_header|. | 14 // Attempts to create a parser corresponding to the |content_type_header|. |
| 15 // On success, returns the parser. | 15 // On success, returns the parser. |
| 16 scoped_ptr<FormDataParser> InitParser( | 16 scoped_ptr<FormDataParser> InitParser( |
| 17 const std::string& content_type_header, | 17 const std::string& content_type_header, |
| 18 std::vector<std::string>* output) { | 18 std::vector<std::string>* output) { |
| 19 if (output == NULL) | 19 if (output == NULL) |
| 20 return scoped_ptr<FormDataParser>(NULL); | 20 return scoped_ptr<FormDataParser>(); |
| 21 output->clear(); | 21 output->clear(); |
| 22 scoped_ptr<FormDataParser> parser( | 22 scoped_ptr<FormDataParser> parser( |
| 23 FormDataParser::CreateFromContentTypeHeader(&content_type_header)); | 23 FormDataParser::CreateFromContentTypeHeader(&content_type_header)); |
| 24 if (parser.get() == NULL) | 24 if (parser.get() == NULL) |
| 25 return scoped_ptr<FormDataParser>(NULL); | 25 return scoped_ptr<FormDataParser>(); |
| 26 return parser.Pass(); | 26 return parser.Pass(); |
| 27 } | 27 } |
| 28 | 28 |
| 29 // Attempts to run the parser corresponding to the |content_type_header| | 29 // Attempts to run the parser corresponding to the |content_type_header| |
| 30 // on the source represented by the concatenation of blocks from |bytes|. | 30 // on the source represented by the concatenation of blocks from |bytes|. |
| 31 // On success, returns true and the parsed |output|, else false. | 31 // On success, returns true and the parsed |output|, else false. |
| 32 // Parsed |output| has names on even positions (0, 2, ...), values on odd ones. | 32 // Parsed |output| has names on even positions (0, 2, ...), values on odd ones. |
| 33 bool RunParser(const std::string& content_type_header, | 33 bool RunParser(const std::string& content_type_header, |
| 34 const std::vector<const base::StringPiece*>& bytes, | 34 const std::vector<const base::StringPiece*>& bytes, |
| 35 std::vector<std::string>* output) { | 35 std::vector<std::string>* output) { |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 // Fourth test: empty URL-encoded POST data. Note that an empty string is a | 230 // Fourth test: empty URL-encoded POST data. Note that an empty string is a |
| 231 // valid url-encoded value, so this should parse correctly. | 231 // valid url-encoded value, so this should parse correctly. |
| 232 std::vector<std::string> output; | 232 std::vector<std::string> output; |
| 233 input.clear(); | 233 input.clear(); |
| 234 input.push_back(&kUrlEncodedBytesEmpty); | 234 input.push_back(&kUrlEncodedBytesEmpty); |
| 235 EXPECT_TRUE(RunParser(kUrlEncoded, input, &output)); | 235 EXPECT_TRUE(RunParser(kUrlEncoded, input, &output)); |
| 236 EXPECT_EQ(0u, output.size()); | 236 EXPECT_EQ(0u, output.size()); |
| 237 } | 237 } |
| 238 | 238 |
| 239 } // namespace extensions | 239 } // namespace extensions |
| OLD | NEW |