| OLD | NEW |
| (Empty) |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. Use of | |
| 2 // this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "core/editing/markers/SpellCheckMarkerListImpl.h" | |
| 6 | |
| 7 #include "core/editing/markers/RenderedDocumentMarker.h" | |
| 8 #include "platform/heap/Handle.h" | |
| 9 #include "testing/gtest/include/gtest/gtest.h" | |
| 10 | |
| 11 namespace blink { | |
| 12 | |
| 13 class SpellCheckMarkerListImplTest : public ::testing::Test { | |
| 14 protected: | |
| 15 SpellCheckMarkerListImplTest() | |
| 16 : marker_list_(new SpellCheckMarkerListImpl()) {} | |
| 17 | |
| 18 DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) { | |
| 19 return new DocumentMarker(DocumentMarker::kSpelling, start_offset, | |
| 20 end_offset, g_empty_string); | |
| 21 } | |
| 22 | |
| 23 Persistent<SpellCheckMarkerListImpl> marker_list_; | |
| 24 }; | |
| 25 | |
| 26 TEST_F(SpellCheckMarkerListImplTest, AddSorting) { | |
| 27 // Insert some markers in an arbitrary order and verify that the list stays | |
| 28 // sorted | |
| 29 marker_list_->Add(CreateMarker(80, 85)); | |
| 30 marker_list_->Add(CreateMarker(40, 45)); | |
| 31 marker_list_->Add(CreateMarker(10, 15)); | |
| 32 marker_list_->Add(CreateMarker(0, 5)); | |
| 33 marker_list_->Add(CreateMarker(70, 75)); | |
| 34 marker_list_->Add(CreateMarker(90, 95)); | |
| 35 marker_list_->Add(CreateMarker(60, 65)); | |
| 36 marker_list_->Add(CreateMarker(50, 55)); | |
| 37 marker_list_->Add(CreateMarker(30, 35)); | |
| 38 marker_list_->Add(CreateMarker(20, 25)); | |
| 39 | |
| 40 EXPECT_EQ(10u, marker_list_->GetMarkers().size()); | |
| 41 | |
| 42 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 43 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 44 | |
| 45 EXPECT_EQ(10u, marker_list_->GetMarkers()[1]->StartOffset()); | |
| 46 EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->EndOffset()); | |
| 47 | |
| 48 EXPECT_EQ(20u, marker_list_->GetMarkers()[2]->StartOffset()); | |
| 49 EXPECT_EQ(25u, marker_list_->GetMarkers()[2]->EndOffset()); | |
| 50 | |
| 51 EXPECT_EQ(30u, marker_list_->GetMarkers()[3]->StartOffset()); | |
| 52 EXPECT_EQ(35u, marker_list_->GetMarkers()[3]->EndOffset()); | |
| 53 | |
| 54 EXPECT_EQ(40u, marker_list_->GetMarkers()[4]->StartOffset()); | |
| 55 EXPECT_EQ(45u, marker_list_->GetMarkers()[4]->EndOffset()); | |
| 56 | |
| 57 EXPECT_EQ(50u, marker_list_->GetMarkers()[5]->StartOffset()); | |
| 58 EXPECT_EQ(55u, marker_list_->GetMarkers()[5]->EndOffset()); | |
| 59 | |
| 60 EXPECT_EQ(60u, marker_list_->GetMarkers()[6]->StartOffset()); | |
| 61 EXPECT_EQ(65u, marker_list_->GetMarkers()[6]->EndOffset()); | |
| 62 | |
| 63 EXPECT_EQ(70u, marker_list_->GetMarkers()[7]->StartOffset()); | |
| 64 EXPECT_EQ(75u, marker_list_->GetMarkers()[7]->EndOffset()); | |
| 65 | |
| 66 EXPECT_EQ(80u, marker_list_->GetMarkers()[8]->StartOffset()); | |
| 67 EXPECT_EQ(85u, marker_list_->GetMarkers()[8]->EndOffset()); | |
| 68 | |
| 69 EXPECT_EQ(90u, marker_list_->GetMarkers()[9]->StartOffset()); | |
| 70 EXPECT_EQ(95u, marker_list_->GetMarkers()[9]->EndOffset()); | |
| 71 } | |
| 72 | |
| 73 TEST_F(SpellCheckMarkerListImplTest, AddIntoEmptyList) { | |
| 74 marker_list_->Add(CreateMarker(5, 10)); | |
| 75 | |
| 76 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
| 77 | |
| 78 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 79 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 80 } | |
| 81 | |
| 82 TEST_F(SpellCheckMarkerListImplTest, AddMarkerNonMerging) { | |
| 83 marker_list_->Add(CreateMarker(5, 10)); | |
| 84 marker_list_->Add(CreateMarker(15, 20)); | |
| 85 | |
| 86 EXPECT_EQ(2u, marker_list_->GetMarkers().size()); | |
| 87 | |
| 88 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 89 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 90 | |
| 91 EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->StartOffset()); | |
| 92 EXPECT_EQ(20u, marker_list_->GetMarkers()[1]->EndOffset()); | |
| 93 } | |
| 94 | |
| 95 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingLater) { | |
| 96 marker_list_->Add(CreateMarker(5, 10)); | |
| 97 marker_list_->Add(CreateMarker(0, 5)); | |
| 98 | |
| 99 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
| 100 | |
| 101 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 102 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 103 } | |
| 104 | |
| 105 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlier) { | |
| 106 marker_list_->Add(CreateMarker(0, 5)); | |
| 107 marker_list_->Add(CreateMarker(5, 10)); | |
| 108 | |
| 109 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
| 110 | |
| 111 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 112 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 113 } | |
| 114 | |
| 115 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlierAndLater) { | |
| 116 marker_list_->Add(CreateMarker(0, 5)); | |
| 117 marker_list_->Add(CreateMarker(10, 15)); | |
| 118 marker_list_->Add(CreateMarker(5, 10)); | |
| 119 | |
| 120 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
| 121 | |
| 122 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 123 EXPECT_EQ(15u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 124 } | |
| 125 | |
| 126 TEST_F(SpellCheckMarkerListImplTest, RemoveMarkersUnderWords) { | |
| 127 // wor | |
| 128 marker_list_->Add(CreateMarker(0, 3)); | |
| 129 | |
| 130 // word | |
| 131 marker_list_->Add(CreateMarker(4, 8)); | |
| 132 | |
| 133 // words | |
| 134 marker_list_->Add(CreateMarker(9, 14)); | |
| 135 | |
| 136 // word2 | |
| 137 marker_list_->Add(CreateMarker(15, 20)); | |
| 138 | |
| 139 marker_list_->RemoveMarkersUnderWords("wor word words word2", | |
| 140 {"word", "word2"}); | |
| 141 EXPECT_EQ(2u, marker_list_->GetMarkers().size()); | |
| 142 | |
| 143 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
| 144 EXPECT_EQ(3u, marker_list_->GetMarkers()[0]->EndOffset()); | |
| 145 | |
| 146 EXPECT_EQ(9u, marker_list_->GetMarkers()[1]->StartOffset()); | |
| 147 EXPECT_EQ(14u, marker_list_->GetMarkers()[1]->EndOffset()); | |
| 148 } | |
| 149 | |
| 150 } // namespace | |
| OLD | NEW |