Index: third_party/WebKit/Source/core/editing/markers/SingletonMarkerListImplTest.cpp |
diff --git a/third_party/WebKit/Source/core/editing/markers/SingletonMarkerListImplTest.cpp b/third_party/WebKit/Source/core/editing/markers/SingletonMarkerListImplTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e6bb0a11dcfe460cf5af871757d6f07a71f1e1af |
--- /dev/null |
+++ b/third_party/WebKit/Source/core/editing/markers/SingletonMarkerListImplTest.cpp |
@@ -0,0 +1,129 @@ |
+// Copyright 2017 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 "core/editing/markers/SingletonMarkerListImpl.h" |
+ |
+#include "core/editing/EditingTestBase.h" |
+ |
+namespace blink { |
+ |
+class SingletonMarkerListImplTest : public EditingTestBase { |
+ protected: |
+ SingletonMarkerListImplTest() : marker_list_(new SingletonMarkerListImpl()) {} |
+ |
+ DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) { |
+ return new DocumentMarker(start_offset, end_offset, Color::kBlack, false, |
+ Color::kBlack); |
+ } |
+ |
+ Persistent<SingletonMarkerListImpl> marker_list_; |
+}; |
+ |
+TEST_F(SingletonMarkerListImplTest, Add) { |
+ DocumentMarkerVector markers_in_list; |
+ marker_list_->AppendMarkersToInputList(&markers_in_list); |
+ EXPECT_EQ(0u, markers_in_list.size()); |
+ |
+ marker_list_->Add(CreateMarker(0, 1)); |
+ marker_list_->AppendMarkersToInputList(&markers_in_list); |
+ |
+ EXPECT_EQ(1u, markers_in_list.size()); |
+ |
+ EXPECT_EQ(0u, markers_in_list[0]->StartOffset()); |
+ EXPECT_EQ(1u, markers_in_list[0]->EndOffset()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, Clear) { |
+ EXPECT_TRUE(marker_list_->IsEmpty()); |
+ |
+ marker_list_->Add(CreateMarker(0, 1)); |
+ EXPECT_FALSE(marker_list_->IsEmpty()); |
+ |
+ marker_list_->Clear(); |
+ EXPECT_TRUE(marker_list_->IsEmpty()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, MoveMarkersNoOp) { |
+ SingletonMarkerListImpl* dst_list = new SingletonMarkerListImpl(); |
+ marker_list_->MoveMarkers(5, dst_list); |
+ |
+ EXPECT_TRUE(dst_list->IsEmpty()); |
+ |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ marker_list_->MoveMarkers(5, dst_list); |
+ |
+ EXPECT_TRUE(dst_list->IsEmpty()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, MoveMarkersDoingMove) { |
+ SingletonMarkerListImpl* dst_list = new SingletonMarkerListImpl(); |
+ |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ marker_list_->MoveMarkers(8, dst_list); |
+ |
+ EXPECT_TRUE(marker_list_->IsEmpty()); |
+ |
+ DocumentMarkerVector markers_in_list; |
+ dst_list->AppendMarkersToInputList(&markers_in_list); |
+ |
+ EXPECT_EQ(1u, markers_in_list.size()); |
+ |
+ EXPECT_EQ(5u, markers_in_list[0]->StartOffset()); |
+ EXPECT_EQ(7u, markers_in_list[0]->EndOffset()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, RemoveMarkersNoOp) { |
+ // Test that removing from an empty list doesn't crash |
+ marker_list_->RemoveMarkers(0, 5); |
+ |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ marker_list_->RemoveMarkers(0, 5); |
+ |
+ EXPECT_FALSE(marker_list_->IsEmpty()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, RemoveMarkersDoingRemove) { |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ EXPECT_FALSE(marker_list_->IsEmpty()); |
+ |
+ marker_list_->RemoveMarkers(0, 6); |
+ EXPECT_TRUE(marker_list_->IsEmpty()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, ShiftMarkersNoOp) { |
+ // Test that calling ShiftMarkers() on an empty list doesn't crash |
+ marker_list_->ShiftMarkers(0, 5, 0); |
+ |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ EXPECT_FALSE(marker_list_->ShiftMarkers(15, 5, 0)); |
+ |
+ DocumentMarkerVector markers_in_list; |
+ marker_list_->AppendMarkersToInputList(&markers_in_list); |
+ |
+ EXPECT_EQ(1u, markers_in_list.size()); |
+ |
+ EXPECT_EQ(5u, markers_in_list[0]->StartOffset()); |
+ EXPECT_EQ(10u, markers_in_list[0]->EndOffset()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, ShiftMarkersRemove) { |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ EXPECT_TRUE(marker_list_->ShiftMarkers(0, 15, 0)); |
+ EXPECT_TRUE(marker_list_->IsEmpty()); |
+} |
+ |
+TEST_F(SingletonMarkerListImplTest, ShiftMarkersMove) { |
+ marker_list_->Add(CreateMarker(5, 10)); |
+ EXPECT_TRUE(marker_list_->ShiftMarkers(0, 5, 0)); |
+ |
+ DocumentMarkerVector markers_in_list; |
+ marker_list_->AppendMarkersToInputList(&markers_in_list); |
+ |
+ EXPECT_EQ(1u, markers_in_list.size()); |
+ |
+ EXPECT_EQ(0u, markers_in_list[0]->StartOffset()); |
+ EXPECT_EQ(5u, markers_in_list[0]->EndOffset()); |
+} |
+ |
+} // namespace blink |