Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp |
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp |
index f6077a0791a536d407553bfe5cb2e3fc19bc5a2a..635244aad233f20bbdc2f014be5d1e79a56a7265 100644 |
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp |
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp |
@@ -8,7 +8,14 @@ |
namespace blink { |
-class DocumentMarkerTest : public ::testing::Test {}; |
+using ShiftMarkerResult = DocumentMarker::ShiftMarkerResult; |
+ |
+class DocumentMarkerTest : public ::testing::Test { |
+ protected: |
+ DocumentMarker* createMarker(unsigned startOffset, unsigned endOffset) { |
+ return new DocumentMarker(startOffset, endOffset, false); |
+ } |
+}; |
TEST_F(DocumentMarkerTest, MarkerTypeIteratorEmpty) { |
DocumentMarker::MarkerTypes types(0); |
@@ -45,4 +52,183 @@ TEST_F(DocumentMarkerTest, MarkerTypeIteratorDistributed) { |
++it; |
EXPECT_TRUE(it == types.end()); |
} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(5u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteEndAndAfter) { |
+ DocumentMarker* marker = createMarker(10, 15); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0); |
+ EXPECT_EQ(10u, result.newStartOffset); |
+ EXPECT_EQ(13u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndAfter) { |
+ DocumentMarker* marker = createMarker(20, 25); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndBeginning) { |
+ DocumentMarker* marker = createMarker(30, 35); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0); |
+ EXPECT_EQ(13u, result.newStartOffset); |
+ EXPECT_EQ(16u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBefore) { |
+ DocumentMarker* marker = createMarker(40, 45); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0); |
+ EXPECT_EQ(21u, result.newStartOffset); |
+ EXPECT_EQ(26u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteStartAndAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 10, 0); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndEnd) { |
+ DocumentMarker* marker = createMarker(5, 10); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 10, 0); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMarkerExactly) { |
+ DocumentMarker* marker = createMarker(5, 10); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(5, 5, 0); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMiddleOfMarker) { |
+ DocumentMarker* marker = createMarker(5, 10); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(6, 3, 0); |
+ EXPECT_EQ(5u, result.newStartOffset); |
+ EXPECT_EQ(7u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(10, 0, 5); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(5u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(5, 0, 5); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(5u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertInMiddle) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(2, 0, 5); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(10u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyBefore) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 0, 5); |
+ EXPECT_EQ(5u, result.newStartOffset); |
+ EXPECT_EQ(10u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertBefore) { |
+ DocumentMarker* marker = createMarker(5, 10); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 0, 5); |
+ EXPECT_EQ(10u, result.newStartOffset); |
+ EXPECT_EQ(15u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(5u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEndAndAfter) { |
+ DocumentMarker* marker = createMarker(10, 15); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1); |
+ EXPECT_EQ(10u, result.newStartOffset); |
+ EXPECT_EQ(13u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndAfter) { |
+ DocumentMarker* marker = createMarker(20, 25); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndBeginning) { |
+ DocumentMarker* marker = createMarker(30, 35); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1); |
+ EXPECT_EQ(14u, result.newStartOffset); |
+ EXPECT_EQ(17u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBefore) { |
+ DocumentMarker* marker = createMarker(40, 45); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1); |
+ EXPECT_EQ(22u, result.newStartOffset); |
+ EXPECT_EQ(27u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginning) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 2, 1); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(4u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEnd) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(3, 2, 1); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(4u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceExactly) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 5, 1); |
+ EXPECT_EQ(0u, result.newStartOffset); |
+ EXPECT_EQ(1u, result.newEndOffset); |
+ EXPECT_FALSE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginningAndAfter) { |
+ DocumentMarker* marker = createMarker(0, 5); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 6, 1); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndEnd) { |
+ DocumentMarker* marker = createMarker(5, 10); |
+ ShiftMarkerResult result = marker->getShiftedMarkerPosition(4, 6, 1); |
+ EXPECT_TRUE(result.shouldRemoveMarker); |
+} |
+ |
+} // namespace blink |