Index: chrome/browser/spellchecker/spelling_service_client_unittest.cc |
diff --git a/chrome/browser/spellchecker/spelling_service_client_unittest.cc b/chrome/browser/spellchecker/spelling_service_client_unittest.cc |
index e1f805fb1c6ff13ea0158c527298ae1eb60d2a12..cdc16cc72c12ec004712b8ea6bd8c0f6702129cd 100644 |
--- a/chrome/browser/spellchecker/spelling_service_client_unittest.cc |
+++ b/chrome/browser/spellchecker/spelling_service_client_unittest.cc |
@@ -34,14 +34,14 @@ class TestSpellingURLFetcher : public net::TestURLFetcher { |
const GURL& url, |
net::URLFetcherDelegate* d, |
int version, |
- const std::string& text, |
+ const std::string& sanitized_text, |
const std::string& language, |
int status, |
const std::string& response) |
: net::TestURLFetcher(0, url, d), |
version_(base::StringPrintf("v%d", version)), |
language_(language.empty() ? std::string("en") : language), |
- text_(text) { |
+ sanitized_text_(sanitized_text) { |
set_response_code(status); |
SetResponseString(response); |
} |
@@ -64,9 +64,9 @@ class TestSpellingURLFetcher : public net::TestURLFetcher { |
std::string version; |
EXPECT_TRUE(value->GetString("apiVersion", &version)); |
EXPECT_EQ(version_, version); |
- std::string text; |
- EXPECT_TRUE(value->GetString("params.text", &text)); |
- EXPECT_EQ(text_, text); |
+ std::string sanitized_text; |
+ EXPECT_TRUE(value->GetString("params.text", &sanitized_text)); |
+ EXPECT_EQ(sanitized_text_, sanitized_text); |
std::string language; |
EXPECT_TRUE(value->GetString("params.language", &language)); |
EXPECT_EQ(language_, language); |
@@ -106,7 +106,7 @@ class TestSpellingURLFetcher : public net::TestURLFetcher { |
std::string version_; |
std::string language_; |
std::string country_; |
- std::string text_; |
+ std::string sanitized_text_; |
}; |
// A class derived from the SpellingServiceClient class used by the |
@@ -124,10 +124,10 @@ class TestingSpellingServiceClient : public SpellingServiceClient { |
~TestingSpellingServiceClient() override {} |
void SetHTTPRequest(int type, |
- const std::string& text, |
+ const std::string& sanitized_text, |
const std::string& language) { |
request_type_ = type; |
- request_text_ = text; |
+ sanitized_request_text_ = sanitized_text; |
request_language_ = language; |
} |
@@ -151,8 +151,7 @@ class TestingSpellingServiceClient : public SpellingServiceClient { |
const base::string16& request_text, |
const std::vector<SpellCheckResult>& results) { |
EXPECT_EQ(success_, success); |
- base::string16 text(base::UTF8ToUTF16(request_text_)); |
- EXPECT_EQ(text, request_text); |
+ base::string16 text(base::UTF8ToUTF16(sanitized_request_text_)); |
for (std::vector<SpellCheckResult>::const_iterator it = results.begin(); |
it != results.end(); ++it) { |
text.replace(it->location, it->length, it->replacement); |
@@ -168,15 +167,14 @@ class TestingSpellingServiceClient : public SpellingServiceClient { |
private: |
scoped_ptr<net::URLFetcher> CreateURLFetcher(const GURL& url) override { |
EXPECT_EQ("https://www.googleapis.com/rpc", url.spec()); |
- fetcher_ = new TestSpellingURLFetcher(0, url, this, |
- request_type_, request_text_, |
- request_language_, |
- response_status_, response_data_); |
+ fetcher_ = new TestSpellingURLFetcher( |
+ 0, url, this, request_type_, sanitized_request_text_, request_language_, |
+ response_status_, response_data_); |
return scoped_ptr<net::URLFetcher>(fetcher_); |
} |
int request_type_; |
- std::string request_text_; |
+ std::string sanitized_request_text_; |
std::string request_language_; |
int response_status_; |
std::string response_data_; |
@@ -217,7 +215,8 @@ class SpellingServiceClientTest : public testing::Test { |
// misspelled words, |corrected_text| should be equal to |request_text|.) |
TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
static const struct { |
- const char* request_text; |
+ const wchar_t* request_text; |
+ const char* sanitized_request_text; |
SpellingServiceClient::ServiceType request_type; |
int response_status; |
const char* response_data; |
@@ -226,6 +225,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
const char* language; |
} kTests[] = { |
{ |
+ L"", |
"", |
SpellingServiceClient::SUGGEST, |
500, |
@@ -234,6 +234,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
"", |
"af", |
}, { |
+ L"chromebook", |
"chromebook", |
SpellingServiceClient::SUGGEST, |
200, |
@@ -242,6 +243,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
"chromebook", |
"af", |
}, { |
+ L"chrombook", |
"chrombook", |
SpellingServiceClient::SUGGEST, |
200, |
@@ -261,6 +263,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
"chromebook", |
"af", |
}, { |
+ L"", |
"", |
SpellingServiceClient::SPELLCHECK, |
500, |
@@ -269,6 +272,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
"", |
"en", |
}, { |
+ L"I have been to USA.", |
"I have been to USA.", |
SpellingServiceClient::SPELLCHECK, |
200, |
@@ -277,6 +281,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
"I have been to USA.", |
"en", |
}, { |
+ L"I have bean to USA.", |
"I have bean to USA.", |
SpellingServiceClient::SPELLCHECK, |
200, |
@@ -295,6 +300,27 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
true, |
"I have been to USA.", |
"en", |
+ }, { |
+ L"I\x2019mattheIn'n'Out.", |
+ "I'mattheIn'n'Out.", |
+ SpellingServiceClient::SPELLCHECK, |
+ 200, |
+ "{\n" |
+ " \"result\": {\n" |
+ " \"spellingCheckResponse\": {\n" |
+ " \"misspellings\": [{\n" |
+ " \"charStart\": 0,\n" |
+ " \"charLength\": 16,\n" |
+ " \"suggestions\":" |
+ " [{ \"suggestion\": \"I'm at the In'N'Out\" }],\n" |
+ " \"canAutoCorrect\": false\n" |
+ " }]\n" |
+ " }\n" |
+ " }\n" |
+ "}", |
+ true, |
+ "I'm at the In'N'Out.", |
+ "en", |
}, |
}; |
@@ -303,7 +329,8 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
pref->SetBoolean(prefs::kSpellCheckUseSpellingService, true); |
for (size_t i = 0; i < arraysize(kTests); ++i) { |
- client_.SetHTTPRequest(kTests[i].request_type, kTests[i].request_text, |
+ client_.SetHTTPRequest(kTests[i].request_type, |
+ kTests[i].sanitized_request_text, |
kTests[i].language); |
client_.SetHTTPResponse(kTests[i].response_status, kTests[i].response_data); |
client_.SetExpectedTextCheckResult(kTests[i].success, |
@@ -312,7 +339,7 @@ TEST_F(SpellingServiceClientTest, RequestTextCheck) { |
client_.RequestTextCheck( |
&profile_, |
kTests[i].request_type, |
- base::ASCIIToUTF16(kTests[i].request_text), |
+ base::WideToUTF16(kTests[i].request_text), |
base::Bind(&SpellingServiceClientTest::OnTextCheckComplete, |
base::Unretained(this), 0)); |
client_.CallOnURLFetchComplete(); |