Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp

Issue 2806683002: Don't ever split DocumentMarkers on remove (Closed)
Patch Set: Leave partial markers in place for non-splitting case, preserve endpoints for splitting case Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/editing/InputMethodController.h" 5 #include "core/editing/InputMethodController.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/dom/Element.h" 9 #include "core/dom/Element.h"
10 #include "core/dom/Range.h" 10 #include "core/dom/Range.h"
(...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after
1863 EphemeralRange markerRange = PlainTextRange(5, 10).createRange(*div); 1863 EphemeralRange markerRange = PlainTextRange(5, 10).createRange(*div);
1864 document().markers().addMarker(markerRange.startPosition(), 1864 document().markers().addMarker(markerRange.startPosition(),
1865 markerRange.endPosition(), 1865 markerRange.endPosition(),
1866 DocumentMarker::TextMatch); 1866 DocumentMarker::TextMatch);
1867 1867
1868 // Delete middle of marker 1868 // Delete middle of marker
1869 Vector<CompositionUnderline> emptyUnderlines; 1869 Vector<CompositionUnderline> emptyUnderlines;
1870 controller().setCompositionFromExistingText(emptyUnderlines, 6, 9); 1870 controller().setCompositionFromExistingText(emptyUnderlines, 6, 9);
1871 controller().commitText(String(""), emptyUnderlines, 0); 1871 controller().commitText(String(""), emptyUnderlines, 0);
1872 1872
1873 EXPECT_EQ(2u, document().markers().markers().size()); 1873 EXPECT_EQ(1u, document().markers().markers().size());
1874 1874
1875 EXPECT_EQ(5u, document().markers().markers()[0]->startOffset()); 1875 EXPECT_EQ(5u, document().markers().markers()[0]->startOffset());
1876 EXPECT_EQ(6u, document().markers().markers()[0]->endOffset()); 1876 EXPECT_EQ(7u, document().markers().markers()[0]->endOffset());
1877 EXPECT_EQ(6u, document().markers().markers()[1]->startOffset());
1878 EXPECT_EQ(7u, document().markers().markers()[1]->endOffset());
1879 } 1877 }
1880 1878
1881 TEST_F(InputMethodControllerTest, Marker_InsertInMarkerInterior) { 1879 TEST_F(InputMethodControllerTest, Marker_InsertInMarkerInterior) {
1882 Element* div = insertHTMLElement( 1880 Element* div = insertHTMLElement(
1883 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1881 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1884 "sample"); 1882 "sample");
1885 1883
1886 EphemeralRange markerRange = PlainTextRange(0, 5).createRange(*div); 1884 EphemeralRange markerRange = PlainTextRange(0, 5).createRange(*div);
1887 document().markers().addMarker(markerRange.startPosition(), 1885 document().markers().addMarker(markerRange.startPosition(),
1888 markerRange.endPosition(), 1886 markerRange.endPosition(),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1949 EXPECT_EQ(5u, document().markers().markers()[0]->endOffset()); 1947 EXPECT_EQ(5u, document().markers().markers()[0]->endOffset());
1950 1948
1951 EXPECT_EQ(10u, document().markers().markers()[1]->startOffset()); 1949 EXPECT_EQ(10u, document().markers().markers()[1]->startOffset());
1952 EXPECT_EQ(20u, document().markers().markers()[1]->endOffset()); 1950 EXPECT_EQ(20u, document().markers().markers()[1]->endOffset());
1953 1951
1954 EXPECT_EQ(20u, document().markers().markers()[2]->startOffset()); 1952 EXPECT_EQ(20u, document().markers().markers()[2]->startOffset());
1955 EXPECT_EQ(25u, document().markers().markers()[2]->endOffset()); 1953 EXPECT_EQ(25u, document().markers().markers()[2]->endOffset());
1956 } 1954 }
1957 1955
1958 } // namespace blink 1956 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698