blob: 8f58ac8aa668850a2f95ffbabe2c04721d468190 [file] [log] [blame]
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001// 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.
Ben Murdochbb1529c2013-08-08 10:24:53 +01004//
5// Unit tests for |Misspelling| object.
6
7#include "chrome/browser/spellchecker/misspelling.h"
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01008
9#include "base/json/json_reader.h"
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010010#include "base/strings/utf_string_conversions.h"
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010011#include "base/values.h"
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010012#include "testing/gtest/include/gtest/gtest.h"
13
14TEST(MisspellingTest, SerializeTest) {
15 Misspelling misspelling;
16 misspelling.context = 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(ASCIIToUTF16("does it"));
22
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\"}]}"));
31
32 scoped_ptr<base::DictionaryValue> serialized(misspelling.Serialize());
33 EXPECT_TRUE(serialized->Equals(expected.get()));
34}
Ben Murdochbb1529c2013-08-08 10:24:53 +010035
36TEST(MisspellingTest, GetMisspelledStringTest) {
37 Misspelling misspelling;
38 misspelling.context = ASCIIToUTF16("How doe sit know");
39 misspelling.location = 4;
40 misspelling.length = 7;
41 EXPECT_EQ(ASCIIToUTF16("doe sit"), misspelling.GetMisspelledString());
42
43 misspelling.length = 0;
44 EXPECT_EQ(string16(), misspelling.GetMisspelledString());
45
46 misspelling.location = misspelling.context.length();
47 misspelling.length = 7;
48 EXPECT_EQ(string16(), misspelling.GetMisspelledString());
49
50 misspelling.location = misspelling.context.length() + 1;
51 EXPECT_EQ(string16(), misspelling.GetMisspelledString());
52}