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
3 // found in the LICENSE file.
5 // Unit tests for |Misspelling| object.
7 #include "chrome/browser/spellchecker/misspelling.h"
9 #include "base/json/json_reader.h"
10 #include "base/strings/utf_string_conversions.h"
11 #include "base/values.h"
12 #include "testing/gtest/include/gtest/gtest.h"
14 TEST(MisspellingTest
, SerializeTest
) {
15 Misspelling misspelling
;
16 misspelling
.context
= base::ASCIIToUTF16("How doe sit know");
17 misspelling
.location
= 4;
18 misspelling
.length
= 7;
19 misspelling
.timestamp
= base::Time::FromJsTime(42);
20 misspelling
.hash
= 9001;
21 misspelling
.suggestions
.push_back(base::ASCIIToUTF16("does it"));
23 scoped_ptr
<base::Value
> expected(base::JSONReader::Read(
24 "{\"originalText\": \"How doe sit know\","
25 "\"misspelledStart\": 4,"
26 "\"misspelledLength\": 7,"
27 "\"timestamp\": \"42\","
28 "\"suggestionId\":\"9001\","
29 "\"suggestions\": [\"does it\"],"
30 "\"userActions\": [{\"actionType\": \"PENDING\"}]}"));
32 scoped_ptr
<base::DictionaryValue
> serialized(misspelling
.Serialize());
33 EXPECT_TRUE(serialized
->Equals(expected
.get()));
36 TEST(MisspellingTest
, GetMisspelledStringTest
) {
37 Misspelling misspelling
;
38 misspelling
.context
= base::ASCIIToUTF16("How doe sit know");
39 misspelling
.location
= 4;
40 misspelling
.length
= 7;
41 EXPECT_EQ(base::ASCIIToUTF16("doe sit"), misspelling
.GetMisspelledString());
43 misspelling
.length
= 0;
44 EXPECT_EQ(base::string16(), misspelling
.GetMisspelledString());
46 misspelling
.location
= misspelling
.context
.length();
47 misspelling
.length
= 7;
48 EXPECT_EQ(base::string16(), misspelling
.GetMisspelledString());
50 misspelling
.location
= misspelling
.context
.length() + 1;
51 EXPECT_EQ(base::string16(), misspelling
.GetMisspelledString());