Home | History | Annotate | Download | only in spellchecker
      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 }
     53