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

Side by Side Diff: content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java

Issue 534343002: Adding Paste Popup behavior Unit Test cases. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Realigned the test cases. Created 6 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 package org.chromium.content.browser.input; 5 package org.chromium.content.browser.input;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.ClipData; 8 import android.content.ClipData;
9 import android.content.ClipboardManager; 9 import android.content.ClipboardManager;
10 import android.content.Context; 10 import android.content.Context;
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 DOMUtils.focusNode(mContentViewCore, "textarea"); 237 DOMUtils.focusNode(mContentViewCore, "textarea");
238 commitText(mConnection, "Sample Text", 1); 238 commitText(mConnection, "Sample Text", 1);
239 DOMUtils.longPressNode(this, mContentViewCore, "input_text"); 239 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
240 assertWaitForKeyboardStatus(true); 240 assertWaitForKeyboardStatus(true);
241 DOMUtils.longPressNode(this, mContentViewCore, "textarea"); 241 DOMUtils.longPressNode(this, mContentViewCore, "textarea");
242 assertWaitForKeyboardStatus(true); 242 assertWaitForKeyboardStatus(true);
243 } 243 }
244 244
245 @SmallTest 245 @SmallTest
246 @Feature({"TextInput"}) 246 @Feature({"TextInput"})
247 public void testPastePopupNotShownOnLongPressingNonEmptyInput() throws Throw able {
248 DOMUtils.focusNode(mContentViewCore, "input_text");
jdduke (slow) 2014/09/03 18:08:07 This behavior is only tangentially related to IME
AKVT 2014/09/03 19:23:16 Thanks for the suggestion, I had corrected it and
249 commitText(mConnection, "Sample Text", 1);
250 selectAll(mImeAdapter);
251 cut(mImeAdapter);
252 DOMUtils.focusNode(mContentViewCore, "textarea");
253 commitText(mConnection, "Sample Text", 1);
254 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
255 assertWaitForPastePopupStatus(true);
256 DOMUtils.longPressNode(this, mContentViewCore, "textarea");
257 assertWaitForSelectActionBarStatus(true);
258 assertWaitForPastePopupStatus(false);
259 }
260
261 @SmallTest
262 @Feature({"TextInput"})
263 public void testPastePopupClearedOnTappingEmptyInput() throws Throwable {
264 DOMUtils.focusNode(mContentViewCore, "input_text");
265 commitText(mConnection, "Sample Text", 1);
266 selectAll(mImeAdapter);
267 cut(mImeAdapter);
268 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
269 assertWaitForPastePopupStatus(true);
270 DOMUtils.clickNode(this, mContentViewCore, "input_text");
271 assertWaitForKeyboardStatus(true);
272 assertWaitForPastePopupStatus(false);
273 }
274
275 @SmallTest
276 @Feature({"TextInput"})
277 public void testPastePopupClearedOnTappingNonEmptyInput() throws Throwable {
278 DOMUtils.focusNode(mContentViewCore, "input_text");
279 commitText(mConnection, "Sample Text", 1);
280 selectAll(mImeAdapter);
281 cut(mImeAdapter);
282 DOMUtils.focusNode(mContentViewCore, "textarea");
283 commitText(mConnection, "Sample Text", 1);
284 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
285 assertWaitForPastePopupStatus(true);
286 DOMUtils.clickNode(this, mContentViewCore, "input_text");
287 assertWaitForKeyboardStatus(true);
288 assertWaitForPastePopupStatus(false);
289 }
290
291 @SmallTest
292 @Feature({"TextInput"})
293 public void testPastePopupClearedOnTappingOutsideInput() throws Throwable {
294 DOMUtils.focusNode(mContentViewCore, "input_text");
295 assertWaitForKeyboardStatus(true);
296 commitText(mConnection, "Sample Text", 1);
297 selectAll(mImeAdapter);
298 cut(mImeAdapter);
299 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
300 assertWaitForPastePopupStatus(true);
301 DOMUtils.clickNode(this, mContentViewCore, "input_radio");
302 assertWaitForPastePopupStatus(false);
303 }
304
305 @SmallTest
306 @Feature({"TextInput"})
307 public void testPastePopupClearedOnLongPressingOutsideInput() throws Throwab le {
308 DOMUtils.focusNode(mContentViewCore, "input_text");
309 assertWaitForKeyboardStatus(true);
310 commitText(mConnection, "Sample Text", 1);
311 selectAll(mImeAdapter);
312 cut(mImeAdapter);
313 DOMUtils.longPressNode(this, mContentViewCore, "input_text");
314 assertWaitForPastePopupStatus(true);
315 DOMUtils.longPressNode(this, mContentViewCore, "input_radio");
316 assertWaitForPastePopupStatus(false);
317 }
318
319 @SmallTest
320 @Feature({"TextInput"})
247 public void testImeCut() throws Exception { 321 public void testImeCut() throws Exception {
248 commitText(mConnection, "snarful", 1); 322 commitText(mConnection, "snarful", 1);
249 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 1, "snarful", 7, 7, -1, -1); 323 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 1, "snarful", 7, 7, -1, -1);
250 324
251 setSelection(mConnection, 1, 5); 325 setSelection(mConnection, 1, 5);
252 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 2, "snarful", 1, 5, -1, -1); 326 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 2, "snarful", 1, 5, -1, -1);
253 327
254 cut(mImeAdapter); 328 cut(mImeAdapter);
255 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 3, "sul", 1, 1, -1, -1); 329 waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 3, "sul", 1, 1, -1, -1);
256 330
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 private void assertWaitForSelectActionBarStatus( 731 private void assertWaitForSelectActionBarStatus(
658 final boolean show) throws InterruptedException { 732 final boolean show) throws InterruptedException {
659 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 733 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
660 @Override 734 @Override
661 public boolean isSatisfied() { 735 public boolean isSatisfied() {
662 return show == mContentViewCore.isSelectActionBarShowing(); 736 return show == mContentViewCore.isSelectActionBarShowing();
663 } 737 }
664 })); 738 }));
665 } 739 }
666 740
741 private void assertWaitForPastePopupStatus(final boolean show) throws Interr uptedException {
742 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
743 @Override
744 public boolean isSatisfied() {
745 return show == mContentViewCore.getPastePopupForTest().isShowing ();
746 }
747 }));
748 }
749
667 private void waitAndVerifyEditableCallback(final ArrayList<TestImeState> sta tes, 750 private void waitAndVerifyEditableCallback(final ArrayList<TestImeState> sta tes,
668 final int index, String text, int selectionStart, int selectionEnd, 751 final int index, String text, int selectionStart, int selectionEnd,
669 int compositionStart, int compositionEnd) throws InterruptedExceptio n { 752 int compositionStart, int compositionEnd) throws InterruptedExceptio n {
670 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { 753 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
671 @Override 754 @Override
672 public boolean isSatisfied() { 755 public boolean isSatisfied() {
673 return states.size() > index; 756 return states.size() > index;
674 } 757 }
675 })); 758 }));
676 states.get(index).assertEqualState( 759 states.get(index).assertEqualState(
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 public void assertEqualState(String text, int selectionStart, int select ionEnd, 955 public void assertEqualState(String text, int selectionStart, int select ionEnd,
873 int compositionStart, int compositionEnd) { 956 int compositionStart, int compositionEnd) {
874 assertEquals("Text did not match", text, mText); 957 assertEquals("Text did not match", text, mText);
875 assertEquals("Selection start did not match", selectionStart, mSelec tionStart); 958 assertEquals("Selection start did not match", selectionStart, mSelec tionStart);
876 assertEquals("Selection end did not match", selectionEnd, mSelection End); 959 assertEquals("Selection end did not match", selectionEnd, mSelection End);
877 assertEquals("Composition start did not match", compositionStart, mC ompositionStart); 960 assertEquals("Composition start did not match", compositionStart, mC ompositionStart);
878 assertEquals("Composition end did not match", compositionEnd, mCompo sitionEnd); 961 assertEquals("Composition end did not match", compositionEnd, mCompo sitionEnd);
879 } 962 }
880 } 963 }
881 } 964 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698