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 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 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 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 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 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 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 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