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

Side by Side Diff: chrome/browser/spellchecker/feedback_sender_unittest.cc

Issue 1665023002: Cheer up spell-checking code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More descriptive variable name Created 4 years, 10 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 // Unit tests for |FeedbackSender| object. 5 // Unit tests for |FeedbackSender| object.
6 6
7 #include "chrome/browser/spellchecker/feedback_sender.h" 7 #include "chrome/browser/spellchecker/feedback_sender.h"
8 8
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 } 58 }
59 return number_of_occurrences; 59 return number_of_occurrences;
60 } 60 }
61 61
62 } // namespace 62 } // namespace
63 63
64 // A test fixture to help keep tests simple. 64 // A test fixture to help keep tests simple.
65 class FeedbackSenderTest : public testing::Test { 65 class FeedbackSenderTest : public testing::Test {
66 public: 66 public:
67 FeedbackSenderTest() : ui_thread_(content::BrowserThread::UI, &loop_) { 67 FeedbackSenderTest() : ui_thread_(content::BrowserThread::UI, &loop_) {
68 feedback_.reset(new FeedbackSender(NULL, kLanguage, kCountry)); 68 feedback_.reset(new FeedbackSender(nullptr, kLanguage, kCountry));
69 feedback_->StartFeedbackCollection(); 69 feedback_->StartFeedbackCollection();
70 } 70 }
71 71
72 ~FeedbackSenderTest() override {} 72 ~FeedbackSenderTest() override {}
73 73
74 protected: 74 protected:
75 // Appends the "--enable-spelling-service-feedback" switch to the 75 // Appends the "--enable-spelling-service-feedback" switch to the
76 // command-line. 76 // command-line.
77 void AppendCommandLineSwitch() { 77 void AppendCommandLineSwitch() {
78 // The command-line switch is temporary. 78 // The command-line switch is temporary.
79 // TODO(rouslan): Remove the command-line switch. http://crbug.com/247726 79 // TODO(rouslan): Remove the command-line switch. http://crbug.com/247726
80 base::CommandLine::ForCurrentProcess()->AppendSwitch( 80 base::CommandLine::ForCurrentProcess()->AppendSwitch(
81 switches::kEnableSpellingFeedbackFieldTrial); 81 switches::kEnableSpellingFeedbackFieldTrial);
82 feedback_.reset(new FeedbackSender(NULL, kLanguage, kCountry)); 82 feedback_.reset(new FeedbackSender(nullptr, kLanguage, kCountry));
83 feedback_->StartFeedbackCollection(); 83 feedback_->StartFeedbackCollection();
84 } 84 }
85 85
86 // Enables the "SpellingServiceFeedback.Enabled" field trial. 86 // Enables the "SpellingServiceFeedback.Enabled" field trial.
87 void EnableFieldTrial() { 87 void EnableFieldTrial() {
88 // The field trial is temporary. 88 // The field trial is temporary.
89 // TODO(rouslan): Remove the field trial. http://crbug.com/247726 89 // TODO(rouslan): Remove the field trial. http://crbug.com/247726
90 field_trial_list_.reset( 90 field_trial_list_.reset(
91 new base::FieldTrialList(new metrics::SHA1EntropyProvider("foo"))); 91 new base::FieldTrialList(new metrics::SHA1EntropyProvider("foo")));
92 field_trial_ = base::FieldTrialList::CreateFieldTrial( 92 field_trial_ = base::FieldTrialList::CreateFieldTrial(
93 kFeedbackFieldTrialName, kFeedbackFieldTrialEnabledGroupName); 93 kFeedbackFieldTrialName, kFeedbackFieldTrialEnabledGroupName);
94 field_trial_->group(); 94 field_trial_->group();
95 feedback_.reset(new FeedbackSender(NULL, kLanguage, kCountry)); 95 feedback_.reset(new FeedbackSender(nullptr, kLanguage, kCountry));
96 feedback_->StartFeedbackCollection(); 96 feedback_->StartFeedbackCollection();
97 } 97 }
98 98
99 uint32_t AddPendingFeedback() { 99 uint32_t AddPendingFeedback() {
100 std::vector<SpellCheckResult> results(1, BuildSpellCheckResult()); 100 std::vector<SpellCheckResult> results(1, BuildSpellCheckResult());
101 feedback_->OnSpellcheckResults(kRendererProcessId, 101 feedback_->OnSpellcheckResults(kRendererProcessId,
102 base::UTF8ToUTF16(kText), 102 base::UTF8ToUTF16(kText),
103 std::vector<SpellCheckMarker>(), 103 std::vector<SpellCheckMarker>(),
104 &results); 104 &results);
105 return results[0].hash; 105 return results[0].hash;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 } 189 }
190 190
191 // Send SELECT feedback message if the user has selected a spelling suggestion. 191 // Send SELECT feedback message if the user has selected a spelling suggestion.
192 TEST_F(FeedbackSenderTest, SelectFeedback) { 192 TEST_F(FeedbackSenderTest, SelectFeedback) {
193 uint32_t hash = AddPendingFeedback(); 193 uint32_t hash = AddPendingFeedback();
194 static const int kSuggestionIndex = 0; 194 static const int kSuggestionIndex = 0;
195 feedback_->SelectedSuggestion(hash, kSuggestionIndex); 195 feedback_->SelectedSuggestion(hash, kSuggestionIndex);
196 feedback_->OnReceiveDocumentMarkers(kRendererProcessId, 196 feedback_->OnReceiveDocumentMarkers(kRendererProcessId,
197 std::vector<uint32_t>()); 197 std::vector<uint32_t>());
198 EXPECT_TRUE(UploadDataContains("\"actionType\":\"SELECT\"")); 198 EXPECT_TRUE(UploadDataContains("\"actionType\":\"SELECT\""));
199 EXPECT_TRUE(UploadDataContains("\"actionTargetIndex\":" + kSuggestionIndex)); 199 EXPECT_TRUE(UploadDataContains("\"actionTargetIndex\":" +
200 base::StringPrintf("%d", kSuggestionIndex)));
200 } 201 }
201 202
202 // Send ADD_TO_DICT feedback message if the user has added the misspelled word 203 // Send ADD_TO_DICT feedback message if the user has added the misspelled word
203 // to the custom dictionary. 204 // to the custom dictionary.
204 TEST_F(FeedbackSenderTest, AddToDictFeedback) { 205 TEST_F(FeedbackSenderTest, AddToDictFeedback) {
205 uint32_t hash = AddPendingFeedback(); 206 uint32_t hash = AddPendingFeedback();
206 feedback_->AddedToDictionary(hash); 207 feedback_->AddedToDictionary(hash);
207 feedback_->OnReceiveDocumentMarkers(kRendererProcessId, 208 feedback_->OnReceiveDocumentMarkers(kRendererProcessId,
208 std::vector<uint32_t>()); 209 std::vector<uint32_t>());
209 EXPECT_TRUE(UploadDataContains("\"actionType\":\"ADD_TO_DICT\"")); 210 EXPECT_TRUE(UploadDataContains("\"actionType\":\"ADD_TO_DICT\""));
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 416
416 // The field names and types should correspond to the API. 417 // The field names and types should correspond to the API.
417 TEST_F(FeedbackSenderTest, FeedbackAPI) { 418 TEST_F(FeedbackSenderTest, FeedbackAPI) {
418 AddPendingFeedback(); 419 AddPendingFeedback();
419 feedback_->OnReceiveDocumentMarkers(kRendererProcessId, 420 feedback_->OnReceiveDocumentMarkers(kRendererProcessId,
420 std::vector<uint32_t>()); 421 std::vector<uint32_t>());
421 std::string actual_data = GetUploadData(); 422 std::string actual_data = GetUploadData();
422 scoped_ptr<base::DictionaryValue> actual(static_cast<base::DictionaryValue*>( 423 scoped_ptr<base::DictionaryValue> actual(static_cast<base::DictionaryValue*>(
423 base::JSONReader::Read(actual_data).release())); 424 base::JSONReader::Read(actual_data).release()));
424 actual->SetString("params.key", "TestDummyKey"); 425 actual->SetString("params.key", "TestDummyKey");
425 base::ListValue* suggestions = NULL; 426 base::ListValue* suggestions = nullptr;
426 actual->GetList("params.suggestionInfo", &suggestions); 427 actual->GetList("params.suggestionInfo", &suggestions);
427 base::DictionaryValue* suggestion = NULL; 428 base::DictionaryValue* suggestion = nullptr;
428 suggestions->GetDictionary(0, &suggestion); 429 suggestions->GetDictionary(0, &suggestion);
429 suggestion->SetString("suggestionId", "42"); 430 suggestion->SetString("suggestionId", "42");
430 suggestion->SetString("timestamp", "9001"); 431 suggestion->SetString("timestamp", "9001");
431 static const std::string expected_data = 432 static const std::string expected_data =
432 "{\"apiVersion\":\"v2\"," 433 "{\"apiVersion\":\"v2\","
433 "\"method\":\"spelling.feedback\"," 434 "\"method\":\"spelling.feedback\","
434 "\"params\":" 435 "\"params\":"
435 "{\"clientName\":\"Chrome\"," 436 "{\"clientName\":\"Chrome\","
436 "\"originCountry\":\"USA\"," 437 "\"originCountry\":\"USA\","
437 "\"key\":\"TestDummyKey\"," 438 "\"key\":\"TestDummyKey\","
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 "the chance to work hard at work worth doing."), 637 "the chance to work hard at work worth doing."),
637 std::vector<SpellCheckMarker>(), &results); 638 std::vector<SpellCheckMarker>(), &results);
638 feedback_->OnReceiveDocumentMarkers(kRendererProcessId, 639 feedback_->OnReceiveDocumentMarkers(kRendererProcessId,
639 std::vector<uint32_t>()); 640 std::vector<uint32_t>());
640 EXPECT_TRUE( 641 EXPECT_TRUE(
641 UploadDataContains(",\"originalText\":\"and away teh best prize\",")); 642 UploadDataContains(",\"originalText\":\"and away teh best prize\","));
642 EXPECT_TRUE(UploadDataContains(",\"misspelledStart\":9,")); 643 EXPECT_TRUE(UploadDataContains(",\"misspelledStart\":9,"));
643 } 644 }
644 645
645 } // namespace spellcheck 646 } // namespace spellcheck
OLDNEW
« no previous file with comments | « chrome/browser/spellchecker/feedback_sender.cc ('k') | chrome/browser/spellchecker/misspelling.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698