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

Side by Side Diff: third_party/WebKit/Source/core/input/EventHandlerTest.cpp

Issue 2703313002: Expand FrameSeleciton::end() to increase chances of hoisting update layout (Closed)
Patch Set: 2017-02-21T12:26:29 Created 3 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/input/EventHandler.h" 5 #include "core/input/EventHandler.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/dom/Range.h" 8 #include "core/dom/Range.h"
9 #include "core/editing/Editor.h" 9 #include "core/editing/Editor.h"
10 #include "core/editing/FrameSelection.h" 10 #include "core/editing/FrameSelection.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 ASSERT_TRUE(selection().isCaret()); 156 ASSERT_TRUE(selection().isCaret());
157 EXPECT_EQ(Position(line, 0), selection().start()); 157 EXPECT_EQ(Position(line, 0), selection().start());
158 158
159 // Multi-tap events on editable elements should trigger selection, just 159 // Multi-tap events on editable elements should trigger selection, just
160 // like multi-click events. 160 // like multi-click events.
161 TapEventBuilder doubleTapEvent(IntPoint(0, 0), 2); 161 TapEventBuilder doubleTapEvent(IntPoint(0, 0), 2);
162 document().frame()->eventHandler().handleGestureEvent(doubleTapEvent); 162 document().frame()->eventHandler().handleGestureEvent(doubleTapEvent);
163 ASSERT_TRUE(selection().isRange()); 163 ASSERT_TRUE(selection().isRange());
164 EXPECT_EQ(Position(line, 0), selection().start()); 164 EXPECT_EQ(Position(line, 0), selection().start());
165 if (document().frame()->editor().isSelectTrailingWhitespaceEnabled()) { 165 if (document().frame()->editor().isSelectTrailingWhitespaceEnabled()) {
166 EXPECT_EQ(Position(line, 4), selection().end()); 166 EXPECT_EQ(Position(line, 4),
167 selection().computeVisibleSelectionInDOMTreeDeprecated().end());
167 EXPECT_EQ("One ", WebString(selection().selectedText()).utf8()); 168 EXPECT_EQ("One ", WebString(selection().selectedText()).utf8());
168 } else { 169 } else {
169 EXPECT_EQ(Position(line, 3), selection().end()); 170 EXPECT_EQ(Position(line, 3),
171 selection().computeVisibleSelectionInDOMTreeDeprecated().end());
170 EXPECT_EQ("One", WebString(selection().selectedText()).utf8()); 172 EXPECT_EQ("One", WebString(selection().selectedText()).utf8());
171 } 173 }
172 174
173 TapEventBuilder tripleTapEvent(IntPoint(0, 0), 3); 175 TapEventBuilder tripleTapEvent(IntPoint(0, 0), 3);
174 document().frame()->eventHandler().handleGestureEvent(tripleTapEvent); 176 document().frame()->eventHandler().handleGestureEvent(tripleTapEvent);
175 ASSERT_TRUE(selection().isRange()); 177 ASSERT_TRUE(selection().isRange());
176 EXPECT_EQ(Position(line, 0), selection().start()); 178 EXPECT_EQ(Position(line, 0), selection().start());
177 EXPECT_EQ(Position(line, 13), selection().end()); 179 EXPECT_EQ(Position(line, 13),
180 selection().computeVisibleSelectionInDOMTreeDeprecated().end());
178 EXPECT_EQ("One Two Three", WebString(selection().selectedText()).utf8()); 181 EXPECT_EQ("One Two Three", WebString(selection().selectedText()).utf8());
179 } 182 }
180 183
181 TEST_F(EventHandlerTest, multiClickSelectionFromTapDisabledIfNotEditable) { 184 TEST_F(EventHandlerTest, multiClickSelectionFromTapDisabledIfNotEditable) {
182 setHtmlInnerHTML( 185 setHtmlInnerHTML(
183 "<style> body { margin: 0px; } .line { display: block; width: 300px; " 186 "<style> body { margin: 0px; } .line { display: block; width: 300px; "
184 "height: 30px; } </style>" 187 "height: 30px; } </style>"
185 "<span class='line' id='line'>One Two Three</span>"); 188 "<span class='line' id='line'>One Two Three</span>");
186 189
187 Node* line = document().getElementById("line")->firstChild(); 190 Node* line = document().getElementById("line")->firstChild();
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 WebPointerProperties::Button::Left, 1, WebInputEvent::NoModifiers, 432 WebPointerProperties::Button::Left, 1, WebInputEvent::NoModifiers,
430 TimeTicks::Now().InSeconds()); 433 TimeTicks::Now().InSeconds());
431 mouseUpEvent.setFrameScale(1); 434 mouseUpEvent.setFrameScale(1);
432 document().frame()->eventHandler().dragSourceEndedAt(mouseUpEvent, 435 document().frame()->eventHandler().dragSourceEndedAt(mouseUpEvent,
433 DragOperationNone); 436 DragOperationNone);
434 437
435 // This test passes if it doesn't crash. 438 // This test passes if it doesn't crash.
436 } 439 }
437 440
438 } // namespace blink 441 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698