- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / spellchecker / misspelling_unittest.cc
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.
4 //
5 // Unit tests for |Misspelling| object.
6
7 #include "chrome/browser/spellchecker/misspelling.h"
8
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"
13
14 TEST(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 }
35
36 TEST(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 }