// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/base/ime/composition_text.h" #include #include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" namespace ui { TEST(CompositionTextTest, CopyTest) { const base::string16 kSampleText = base::UTF8ToUTF16("Sample Text"); const CompositionUnderline kSampleUnderline1(10, 20, SK_ColorBLACK, false, SK_ColorTRANSPARENT); const CompositionUnderline kSampleUnderline2(11, 21, SK_ColorBLACK, true, SK_ColorTRANSPARENT); const CompositionUnderline kSampleUnderline3(12, 22, SK_ColorRED, false, SK_ColorTRANSPARENT); // Make CompositionText CompositionText text; text.text = kSampleText; text.underlines.push_back(kSampleUnderline1); text.underlines.push_back(kSampleUnderline2); text.underlines.push_back(kSampleUnderline3); text.selection.set_start(30); text.selection.set_end(40); CompositionText text2; text2.CopyFrom(text); EXPECT_EQ(text.text, text2.text); EXPECT_EQ(text.underlines.size(), text2.underlines.size()); for (size_t i = 0; i < text.underlines.size(); ++i) { EXPECT_EQ(text.underlines[i].start_offset, text2.underlines[i].start_offset); EXPECT_EQ(text.underlines[i].end_offset, text2.underlines[i].end_offset); EXPECT_EQ(text.underlines[i].color, text2.underlines[i].color); EXPECT_EQ(text.underlines[i].thick, text2.underlines[i].thick); EXPECT_EQ(text.underlines[i].background_color, text2.underlines[i].background_color); } EXPECT_EQ(text.selection.start(), text2.selection.start()); EXPECT_EQ(text.selection.end(), text2.selection.end()); } } // namespace ui