1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/spellchecker/word_trimmer.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsEmptyText) { 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 0; 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 0; 13d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) EXPECT_EQ(base::string16(), TrimWords(&start, end, base::string16(), 0)); 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(0UL, start); 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsStart) { 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 0; 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 3; 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("one two three"), 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TrimWords(&start, end, ASCIIToUTF16("one two three four"), 2)); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(0UL, start); 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsEnd) { 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 14; 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 18; 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("two three four"), 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TrimWords(&start, end, ASCIIToUTF16("one two three four"), 2)); 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(10UL, start); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsMiddle) { 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 14; 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 23; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("two three four five six seven"), TrimWords( 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2)); 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(10UL, start); 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsEmptyKeep) { 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 18; 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 18; 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("two three four five six"), TrimWords( 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2)); 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(14UL, start); 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsOutOfBounds) { 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 4; 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 5; 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("one"), TrimWords( 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) &start, end, ASCIIToUTF16("one"), 2)); 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(4UL, start); 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(WordTrimmerTest, TrimWordsInvalid) { 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t start = 23; 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) size_t end = 14; 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(ASCIIToUTF16("one two three four five six seven eight"), TrimWords( 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) &start, end, ASCIIToUTF16("one two three four five six seven eight"), 2)); 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(23UL, start); 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 64