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

Unified Diff: chrome/test/data/chromeos/virtual_keyboard/typing_test.js

Issue 99923003: Adds unit tests for swipe flick. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@flickv2
Patch Set: Improved the tests and added more coverage. Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/chromeos/virtual_keyboard/typing_test.js
diff --git a/chrome/test/data/chromeos/virtual_keyboard/typing_test.js b/chrome/test/data/chromeos/virtual_keyboard/typing_test.js
index 5fde4d007d29b46bfc65af0e033fb410ccfb2dea..694b7d4bbb8b6774202bea13469ba2cbaad40bc6 100644
--- a/chrome/test/data/chromeos/virtual_keyboard/typing_test.js
+++ b/chrome/test/data/chromeos/virtual_keyboard/typing_test.js
@@ -305,3 +305,105 @@ function testFingerOutType(testDoneCallback) {
};
onKeyboardReady('testFingerOutType', runTest, testDoneCallback);
}
+
+/**
+ * Tests that flicking upwards on a key with hintText types the hint text.
+ * @param {Function} testDoneCallback The callback function on completion.
+ */
+function testSwipeFlick(testDoneCallback) {
+ var mockEvent = function(xOffset, yOffset, target, relatedTarget) {
+ var bounds = target.getBoundingClientRect();
+ return {
+ pointerId: 1,
+ isPrimary: true,
+ screenX: bounds.left + xOffset,
+ // Note: Y is negative in the 'up' direction.
+ screenY: bounds.bottom - yOffset,
+ target: target,
+ relatedTarget: relatedTarget
+ };
+ }
+ var runTest = function() {
+ var key = findKey('.');
+ var send = chrome.virtualKeyboardPrivate.sendKeyEvent;
+ // Test flick on the '.', expect '?' to appear.
+ send.addExpectation({
+ type: 'keydown',
+ charValue: '?'.charCodeAt(0),
+ keyCode: 0xBF,
+ modifiers: Modifier.SHIFT
+ });
+ send.addExpectation({
+ type: 'keyup',
+ charValue: '?'.charCodeAt(0),
+ keyCode: 0xBF,
+ modifiers: Modifier.SHIFT
+ });
+ var height = key.clientHeight;
+ var width = key.clientWidth;
+ $('keyboard').down(mockEvent(0, 0, key));
+ $('keyboard').move(mockEvent(0, height/2, key));
+ $('keyboard').up(mockEvent(0, height/2, key));
+
+ // Test flick that exits the keyboard area. Expect '1' to appear.
+ var qKey = findKey('q');
+ send.addExpectation({
+ type: 'keydown',
+ charValue: '1'.charCodeAt(0),
+ keyCode: 0x31,
+ modifiers: Modifier.NONE
+ });
+ send.addExpectation({
+ type: 'keyup',
+ charValue: '1'.charCodeAt(0),
+ keyCode: 0x31,
+ modifiers: Modifier.NONE
+ });
+ $('keyboard').down(mockEvent(width/2, height/2, qKey));
+ $('keyboard').move(mockEvent(width/2, height, qKey));
+ $('keyboard').out(mockEvent(width/2, 2*height, qKey, $('keyboard')));
+
+ // Test basic long flick. Should not have any output.
+ $('keyboard').down(mockEvent(0, 0, key));
+ $('keyboard').move(mockEvent(0, height/2, key));
+ $('keyboard').move(mockEvent(0, 2*height, key));
+ $('keyboard').up(mockEvent(0, 2*height, key));
+
+ // Test flick that crosses the original key boundary.
+ send.addExpectation({
+ type: 'keydown',
+ charValue: '?'.charCodeAt(0),
+ keyCode: 0xBF,
+ modifiers: Modifier.SHIFT
+ });
+ send.addExpectation({
+ type: 'keyup',
+ charValue: '?'.charCodeAt(0),
+ keyCode: 0xBF,
+ modifiers: Modifier.SHIFT
+ });
+ var lKey = findKey('l');
+ $('keyboard').down(mockEvent(0, height/2, key));
+ $('keyboard').move(mockEvent(0, height, key));
+ key.out(mockEvent(0, height, key, lKey));
+ $('keyboard').move(mockEvent(0, height/2, lKey));
+ $('keyboard').up(mockEvent(0, height/2, lKey));
+
+ // Test long flick that crosses the original key boundary.
+ $('keyboard').down(mockEvent(0, 0, key));
+ $('keyboard').move(mockEvent(0, height/2, key));
+ key.out(mockEvent(0, height, key, lKey));
+ $('keyboard').move(mockEvent(0, height, lKey));
+ $('keyboard').up(mockEvent(0, height, lKey));
+
+ // Test composed swipe and flick. Should not have any output.
+ var move = chrome.virtualKeyboardPrivate.moveCursor;
+ move.addExpectation(SwipeDirection.RIGHT,
+ Modifier.CONTROL & Modifier.SHIFT);
+ $('keyboard').down(mockEvent(0, 0, key));
+ $('keyboard').move(mockEvent(0, height, key));
+ $('keyboard').move(mockEvent(width, height, key));
+ $('keyboard').up(mockEvent(width, height, key));
+ };
+ onKeyboardReady('testSwipeFlick', runTest, testDoneCallback);
+}

Powered by Google App Engine
This is Rietveld 408576698