1 // Copyright (c) 2011 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 #include "chrome/browser/spellchecker/word_trimmer.h"
6
7 #include "base/strings/utf_string_conversions.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 using base::ASCIIToUTF16;
11
TEST(WordTrimmerTest,TrimWordsEmptyText)12 TEST(WordTrimmerTest, TrimWordsEmptyText) {
13 size_t start = 0;
14 size_t end = 0;
15 EXPECT_EQ(base::string16(), TrimWords(&start, end, base::string16(), 0));
16 EXPECT_EQ(0UL, start);
17 }
18
TEST(WordTrimmerTest,TrimWordsStart)19 TEST(WordTrimmerTest, TrimWordsStart) {
20 size_t start = 0;
21 size_t end = 3;
22 EXPECT_EQ(ASCIIToUTF16("one two three"),
23 TrimWords(&start, end, ASCIIToUTF16("one two three four"), 2));
24 EXPECT_EQ(0UL, start);
25 }
26
TEST(WordTrimmerTest,TrimWordsEnd)27 TEST(WordTrimmerTest, TrimWordsEnd) {
28 size_t start = 14;
29 size_t end = 18;
30 EXPECT_EQ(ASCIIToUTF16("two three four"),
31 TrimWords(&start, end, ASCIIToUTF16("one two three four"), 2));
32 EXPECT_EQ(10UL, start);
33 }
34
TEST(WordTrimmerTest,TrimWordsMiddle)35 TEST(WordTrimmerTest, TrimWordsMiddle) {
36 size_t start = 14;
37 size_t end = 23;
38 EXPECT_EQ(ASCIIToUTF16("two three four five six seven"), TrimWords(
39 &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2));
40 EXPECT_EQ(10UL, start);
41 }
42
TEST(WordTrimmerTest,TrimWordsEmptyKeep)43 TEST(WordTrimmerTest, TrimWordsEmptyKeep) {
44 size_t start = 18;
45 size_t end = 18;
46 EXPECT_EQ(ASCIIToUTF16("two three four five six"), TrimWords(
47 &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2));
48 EXPECT_EQ(14UL, start);
49 }
50
TEST(WordTrimmerTest,TrimWordsOutOfBounds)51 TEST(WordTrimmerTest, TrimWordsOutOfBounds) {
52 size_t start = 4;
53 size_t end = 5;
54 EXPECT_EQ(ASCIIToUTF16("one"), TrimWords(
55 &start, end, ASCIIToUTF16("one"), 2));
56 EXPECT_EQ(4UL, start);
57 }
58
TEST(WordTrimmerTest,TrimWordsInvalid)59 TEST(WordTrimmerTest, TrimWordsInvalid) {
60 size_t start = 23;
61 size_t end = 14;
62 EXPECT_EQ(ASCIIToUTF16("one two three four five six seven eight"), TrimWords(
63 &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2));
64 EXPECT_EQ(23UL, start);
65 }
66