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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 version_(base::StringPrintf("v%d", version)), | 42 version_(base::StringPrintf("v%d", version)), |
43 language_(language.empty() ? std::string("en") : language), | 43 language_(language.empty() ? std::string("en") : language), |
44 text_(text) { | 44 text_(text) { |
45 set_response_code(status); | 45 set_response_code(status); |
46 SetResponseString(response); | 46 SetResponseString(response); |
47 } | 47 } |
48 virtual ~TestSpellingURLFetcher() { | 48 virtual ~TestSpellingURLFetcher() { |
49 } | 49 } |
50 | 50 |
51 virtual void SetUploadData(const std::string& upload_content_type, | 51 virtual void SetUploadData(const std::string& upload_content_type, |
52 const std::string& upload_content) OVERRIDE { | 52 const std::string& upload_content) override { |
53 // Verify the given content type is JSON. (The Spelling service returns an | 53 // Verify the given content type is JSON. (The Spelling service returns an |
54 // internal server error when this content type is not JSON.) | 54 // internal server error when this content type is not JSON.) |
55 EXPECT_EQ("application/json", upload_content_type); | 55 EXPECT_EQ("application/json", upload_content_type); |
56 | 56 |
57 // Parse the JSON to be sent to the service, and verify its parameters. | 57 // Parse the JSON to be sent to the service, and verify its parameters. |
58 scoped_ptr<base::DictionaryValue> value(static_cast<base::DictionaryValue*>( | 58 scoped_ptr<base::DictionaryValue> value(static_cast<base::DictionaryValue*>( |
59 base::JSONReader::Read(upload_content, | 59 base::JSONReader::Read(upload_content, |
60 base::JSON_ALLOW_TRAILING_COMMAS))); | 60 base::JSON_ALLOW_TRAILING_COMMAS))); |
61 ASSERT_TRUE(!!value.get()); | 61 ASSERT_TRUE(!!value.get()); |
62 std::string method; | 62 std::string method; |
63 EXPECT_TRUE(value->GetString("method", &method)); | 63 EXPECT_TRUE(value->GetString("method", &method)); |
64 EXPECT_EQ("spelling.check", method); | 64 EXPECT_EQ("spelling.check", method); |
65 std::string version; | 65 std::string version; |
66 EXPECT_TRUE(value->GetString("apiVersion", &version)); | 66 EXPECT_TRUE(value->GetString("apiVersion", &version)); |
67 EXPECT_EQ(version_, version); | 67 EXPECT_EQ(version_, version); |
68 std::string text; | 68 std::string text; |
69 EXPECT_TRUE(value->GetString("params.text", &text)); | 69 EXPECT_TRUE(value->GetString("params.text", &text)); |
70 EXPECT_EQ(text_, text); | 70 EXPECT_EQ(text_, text); |
71 std::string language; | 71 std::string language; |
72 EXPECT_TRUE(value->GetString("params.language", &language)); | 72 EXPECT_TRUE(value->GetString("params.language", &language)); |
73 EXPECT_EQ(language_, language); | 73 EXPECT_EQ(language_, language); |
74 ASSERT_TRUE(GetExpectedCountry(language, &country_)); | 74 ASSERT_TRUE(GetExpectedCountry(language, &country_)); |
75 std::string country; | 75 std::string country; |
76 EXPECT_TRUE(value->GetString("params.originCountry", &country)); | 76 EXPECT_TRUE(value->GetString("params.originCountry", &country)); |
77 EXPECT_EQ(country_, country); | 77 EXPECT_EQ(country_, country); |
78 | 78 |
79 net::TestURLFetcher::SetUploadData(upload_content_type, upload_content); | 79 net::TestURLFetcher::SetUploadData(upload_content_type, upload_content); |
80 } | 80 } |
81 | 81 |
82 virtual void Start() OVERRIDE { | 82 virtual void Start() override { |
83 // Verify that this client does not either send cookies to the Spelling | 83 // Verify that this client does not either send cookies to the Spelling |
84 // service or accept cookies from it. | 84 // service or accept cookies from it. |
85 EXPECT_EQ(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES, | 85 EXPECT_EQ(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES, |
86 GetLoadFlags()); | 86 GetLoadFlags()); |
87 } | 87 } |
88 | 88 |
89 private: | 89 private: |
90 bool GetExpectedCountry(const std::string& language, std::string* country) { | 90 bool GetExpectedCountry(const std::string& language, std::string* country) { |
91 static const struct { | 91 static const struct { |
92 const char* language; | 92 const char* language; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 } | 161 } |
162 EXPECT_EQ(corrected_text_, text); | 162 EXPECT_EQ(corrected_text_, text); |
163 } | 163 } |
164 | 164 |
165 bool ParseResponseSuccess(const std::string& data) { | 165 bool ParseResponseSuccess(const std::string& data) { |
166 std::vector<SpellCheckResult> results; | 166 std::vector<SpellCheckResult> results; |
167 return ParseResponse(data, &results); | 167 return ParseResponse(data, &results); |
168 } | 168 } |
169 | 169 |
170 private: | 170 private: |
171 virtual net::URLFetcher* CreateURLFetcher(const GURL& url) OVERRIDE { | 171 virtual net::URLFetcher* CreateURLFetcher(const GURL& url) override { |
172 EXPECT_EQ("https://www.googleapis.com/rpc", url.spec()); | 172 EXPECT_EQ("https://www.googleapis.com/rpc", url.spec()); |
173 fetcher_ = new TestSpellingURLFetcher(0, url, this, | 173 fetcher_ = new TestSpellingURLFetcher(0, url, this, |
174 request_type_, request_text_, | 174 request_type_, request_text_, |
175 request_language_, | 175 request_language_, |
176 response_status_, response_data_); | 176 response_status_, response_data_); |
177 return fetcher_; | 177 return fetcher_; |
178 } | 178 } |
179 | 179 |
180 int request_type_; | 180 int request_type_; |
181 std::string request_text_; | 181 std::string request_text_; |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 EXPECT_FALSE(client_.IsAvailable(&profile_, kSpellcheck)); | 379 EXPECT_FALSE(client_.IsAvailable(&profile_, kSpellcheck)); |
380 } | 380 } |
381 } | 381 } |
382 | 382 |
383 // Verify that an error in JSON response from spelling service will result in | 383 // Verify that an error in JSON response from spelling service will result in |
384 // ParseResponse returning false. | 384 // ParseResponse returning false. |
385 TEST_F(SpellingServiceClientTest, ResponseErrorTest) { | 385 TEST_F(SpellingServiceClientTest, ResponseErrorTest) { |
386 EXPECT_TRUE(client_.ParseResponseSuccess("{\"result\": {}}")); | 386 EXPECT_TRUE(client_.ParseResponseSuccess("{\"result\": {}}")); |
387 EXPECT_FALSE(client_.ParseResponseSuccess("{\"error\": {}}")); | 387 EXPECT_FALSE(client_.ParseResponseSuccess("{\"error\": {}}")); |
388 } | 388 } |
OLD | NEW |