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

Unified Diff: components/spellcheck/renderer/spellcheck_unittest.cc

Issue 2848943002: Allow storing multiple replacements on SpellCheckResult (Closed)
Patch Set: Rebase Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: components/spellcheck/renderer/spellcheck_unittest.cc
diff --git a/components/spellcheck/renderer/spellcheck_unittest.cc b/components/spellcheck/renderer/spellcheck_unittest.cc
index ef73f2d36d1400359afffa5636baf174927fbfc7..0fdb7dd9848ec8ac58b0a49ece3dcebeb3e9661a 100644
--- a/components/spellcheck/renderer/spellcheck_unittest.cc
+++ b/components/spellcheck/renderer/spellcheck_unittest.cc
@@ -1201,9 +1201,10 @@ TEST_F(SpellCheckTest, CreateTextCheckingResultsKeepsTypographicalApostrophe) {
SpellCheckResult::SPELLING, 6, 6,
base::WideToUTF16(L"haven" TYPOGRAPHICAL_APOSTROPHE L"t")));
spellcheck_results.push_back(SpellCheckResult(
- SpellCheckResult::SPELLING, 13, 10, base::WideToUTF16(
- L"in" TYPOGRAPHICAL_APOSTROPHE L"n" TYPOGRAPHICAL_APOSTROPHE L"out"
- TYPOGRAPHICAL_APOSTROPHE L"s")));
+ SpellCheckResult::SPELLING, 13, 10,
+ base::WideToUTF16(
+ L"in" TYPOGRAPHICAL_APOSTROPHE L"n" TYPOGRAPHICAL_APOSTROPHE L"ou"
+ L"t" TYPOGRAPHICAL_APOSTROPHE L"s")));
// Replacements that differ only by apostrophe type should be ignored.
spellcheck_results.push_back(
@@ -1213,26 +1214,66 @@ TEST_F(SpellCheckTest, CreateTextCheckingResultsKeepsTypographicalApostrophe) {
SpellCheckResult(SpellCheckResult::SPELLING, 29, 4,
base::WideToUTF16(L"I" TYPOGRAPHICAL_APOSTROPHE L"ve")));
+ // If we have multiple replacements that all differ only by apostrophe type,
+ // we should ignore this misspelling.
+ spellcheck_results.push_back(SpellCheckResult(
+ SpellCheckResult::SPELLING, 0, 11,
+ std::vector<base::string16>(
+ {base::UTF8ToUTF16("Ik've havn'"),
+ base::WideToUTF16(L"Ik" TYPOGRAPHICAL_APOSTROPHE
+ "ve havn" TYPOGRAPHICAL_APOSTROPHE)})));
+
+ // If we have multiple replacements where some only differ by apostrophe type
+ // and some don't, we should keep this misspelling, but remove the
+ // replacements that only differ by apostrophe type.
+ spellcheck_results.push_back(SpellCheckResult(
+ SpellCheckResult::SPELLING, 0, 5,
+ std::vector<base::string16>(
+ {base::UTF8ToUTF16("I've"), base::UTF8ToUTF16("Ive"),
+ base::WideToUTF16(L"Ik" TYPOGRAPHICAL_APOSTROPHE "ve")})));
+
+ // Similar to the previous case except with the apostrophe changing from
+ // typographical to straight instead of the other direction
+ spellcheck_results.push_back(SpellCheckResult(
+ SpellCheckResult::SPELLING, 6, 6,
+ std::vector<base::string16>({base::UTF8ToUTF16("havn't"),
+ base::UTF8ToUTF16("havnt"),
+ base::UTF8ToUTF16("haven't")})));
+
+ // If we have multiple replacements, none of which differ only by apostrophe
+ // type, we should keep this misspelling.
+ spellcheck_results.push_back(SpellCheckResult(
+ SpellCheckResult::SPELLING, 6, 6,
+ std::vector<base::string16>(
+ {base::UTF8ToUTF16("have"), base::UTF8ToUTF16("haven't")})));
+
blink::WebVector<blink::WebTextCheckingResult> textcheck_results;
spell_check()->CreateTextCheckingResults(SpellCheck::USE_NATIVE_CHECKER, 0,
text, spellcheck_results,
&textcheck_results);
- static const wchar_t* kExpectedReplacements[] = {
- L"I've",
- L"haven" TYPOGRAPHICAL_APOSTROPHE L"t",
- L"in'n" TYPOGRAPHICAL_APOSTROPHE L"out's",
- L"I've",
- L"haven" TYPOGRAPHICAL_APOSTROPHE L"t",
- L"in'n" TYPOGRAPHICAL_APOSTROPHE L"out" TYPOGRAPHICAL_APOSTROPHE L"s",
+ static std::vector<std::vector<const wchar_t*>> kExpectedReplacements = {
+ {L"I've"},
+ {L"haven" TYPOGRAPHICAL_APOSTROPHE L"t"},
+ {L"in'n" TYPOGRAPHICAL_APOSTROPHE L"out's"},
+ {L"I've"},
+ {L"haven" TYPOGRAPHICAL_APOSTROPHE L"t"},
+ {L"in'n" TYPOGRAPHICAL_APOSTROPHE L"out" TYPOGRAPHICAL_APOSTROPHE L"s"},
+ {L"I've", L"Ive"},
+ {L"havnt", L"haven" TYPOGRAPHICAL_APOSTROPHE "t"},
+ {L"have", L"haven" TYPOGRAPHICAL_APOSTROPHE "t"},
};
- ASSERT_EQ(arraysize(kExpectedReplacements), textcheck_results.size());
- for (size_t i = 0; i < arraysize(kExpectedReplacements); ++i) {
- EXPECT_EQ(base::WideToUTF16(kExpectedReplacements[i]),
- textcheck_results[i].replacement.Utf16())
- << "i=" << i << "\nactual: \""
- << textcheck_results[i].replacement.Utf16() << "\"";
+ ASSERT_EQ(kExpectedReplacements.size(), textcheck_results.size());
+ for (size_t i = 0; i < kExpectedReplacements.size(); ++i) {
+ EXPECT_EQ(kExpectedReplacements[i].size(),
+ textcheck_results[i].replacements.size());
+ for (size_t j = 0; j < kExpectedReplacements[i].size(); ++j) {
+ EXPECT_EQ(base::WideToUTF16(kExpectedReplacements[i][j]),
+ textcheck_results[i].replacements[j].Utf16())
+ << "i=" << i << "\nj=" << j << "\nactual: \""
+ << textcheck_results[i].replacements[j].Utf16() << "\"";
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698