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 |