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

Unified Diff: chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js

Issue 272293002: Expand the IME test framework to test the Compact layout. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js
diff --git a/chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js b/chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js
index 83952c2ad018fdb43dac1dec437ff3ee16f9334d..ff2f894b8fc8d6e893b8ad9f27aa940446411e6f 100644
--- a/chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js
+++ b/chrome/test/data/chromeos/virtual_keyboard/inputview/test_base.js
@@ -9,17 +9,6 @@ var mockTimer;
var setComposition;
var DEFAULT_CONTEXT_ID = 1;
-var CAPSLOCK_ID = "OsLeft";
-
-/**
- * Key alignments.
- * @enum {string}
- */
-var Alignment = {
- LEFT: 'left',
- RIGHT: 'right',
- CENTER: 'center'
-};
/**
* Create mocks for the virtualKeyboardPrivate API. Any tests that trigger API
@@ -62,16 +51,88 @@ function tearDown() {
}
/**
- * Retrieves the key from the current keyset.
- * @param {String} char The character of the key.
- * @return {Object} The key.
- */
-function getKey(char) {
- var key = document.querySelector('#Key' + char.toUpperCase());
- assertTrue(!!key, "Cannot find key: " + char);
- return key;
+* Checks whether the element is currently being displayed on screen.
+* @param {Object} The object to check.
+* @return {boolean}
+*/
+function isActive(el) {
+ return window.getComputedStyle(el).display != "none";
}
+(function(exports) {
+
+ var KEY_IDS = {
bshe 2014/05/12 13:24:27 Could you document why only these characters have
rsadam 2014/05/12 20:23:46 Done.
+ 'a' : {
+ 'us' : '101kbd-k-29',
+ 'us.compact' : 'compactkbd-k-key-10',
+ },
+ 'c' : {
+ 'us' : '101kbd-k-44',
+ 'us.compact' : 'compactkbd-k-key-21',
+
+ },
+ 'd' : {
+ 'us' : '101kbd-k-31',
+ 'us.compact' : 'compactkbd-k-key-12',
+
+ },
+ 'l' : {
+ 'us' : '101kbd-k-37',
+ 'us.compact' : 'compactkbd-k-key-18',
+
+ },
+ 'p' : {
+ 'us' : '101kbd-k-24',
+ 'us.compact' : 'compactkbd-k-key-9',
+ },
+ 'leftshift' : {
+ 'us' : '101kbd-k-41',
+ 'us.compact' : 'compactkbd-k-21',
+ },
+ "capslock" : {
+ 'us' : '101kbd-k-28',
+ }
+ };
+
+ /**
+ * Gets the key id of the specified character.
+ * @param {string} layout The current keyboard layout.
+ * @param {char} char The character to press.
+ */
+ var getKeyId_ = function(layout, char) {
+ var lower = char.toLowerCase();
+ assertTrue(!!KEY_IDS[lower], "Cannot find cached key id: " + char);
+ assertTrue(!!KEY_IDS[lower][layout],
+ "Cannot find cached key id: " + char + " in " + layout);
+ return KEY_IDS[lower][layout];
+ }
+
+ /**
+ * Returns the current layout id.
+ * @return {string}
+ */
+ var getLayoutId_ = function() {
+ // TODO(rsadam@): Generalize this.
+ var id = window.location.search.split("id=")[1];
+ assertTrue(!!id, "No layout found.");
+ return id;
+ }
+
+ /**
+ * Returns the key object corresponding to the character.
+ * @return {string} char The character.
+ */
+ var getKey_ = function(char) {
+ var layoutId = getLayoutId();
+ var key = document.getElementById(getKeyId_(layoutId, char));
+ assertTrue(!!key, "Key not present in layout: " + char);
+ return key;
+ }
+
+ exports.getKey = getKey_;
+ exports.getLayoutId = getLayoutId_;
+})(this);
+
/**
* Generates a mouse event and dispatches it on the target.
* @param target {Object} The target of the event.
@@ -123,7 +184,7 @@ function generateTouchEvent(target, type) {
/**
* Mocks a character type using touch.
- * @param {String} char The character to type.
+ * @param {String} char The expected character.
*/
function mockTouchType(char) {
var send = chrome.input.ime.commitText;
@@ -135,26 +196,3 @@ function mockTouchType(char) {
generateTouchEvent(key, 'touchstart');
generateTouchEvent(key, 'touchend');
}
-
-/**
- * Retrieves the shift key from the current keyset.
- * @param {Alignment} align The alignment of the shift key.
- * @return {Object} The key.
- */
-function getShiftKey(align) {
- var id;
- switch(align) {
- case Alignment.LEFT:
- id = 'ShiftLeft';
- break;
- case Alignment.RIGHT:
- id = 'ShiftRight';
- break;
- default:
- break;
- }
- assertTrue(!!id, "Invalid shift alignment option: " + align);
- var shift = document.querySelector('#' + id);
- assertTrue(!!shift, "Cannot find shift key with alignment: " + align);
- return shift;
-}

Powered by Google App Engine
This is Rietveld 408576698