| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 The Chromium Authors. All rights reserved. | 2 * Copyright 2013 The Chromium Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Set to true while debugging virtual keyboard tests, for verbose debug output. | 8 * Set to true while debugging virtual keyboard tests, for verbose debug output. |
| 9 */ | 9 */ |
| 10 var debugging = false; | 10 var debugging = false; |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 } | 270 } |
| 271 var waitCondition = this.queue[0].waitCondition; | 271 var waitCondition = this.queue[0].waitCondition; |
| 272 var keyset = $('keyboard').activeKeyset; | 272 var keyset = $('keyboard').activeKeyset; |
| 273 var id = keyset.id; | 273 var id = keyset.id; |
| 274 var continueWaiting = true; | 274 var continueWaiting = true; |
| 275 if (waitCondition.state == 'keysetChanged') { | 275 if (waitCondition.state == 'keysetChanged') { |
| 276 if (id == waitCondition.value) { | 276 if (id == waitCondition.value) { |
| 277 continueWaiting = false; | 277 continueWaiting = false; |
| 278 this.runNextTest(); | 278 this.runNextTest(); |
| 279 } | 279 } |
| 280 } else if (waitCondition.state = 'candidatePopupVisibility') { | 280 } else if (waitCondition.state == 'candidatePopupVisibility') { |
| 281 var popup = keyset.querySelector('kb-altkey-container'); | 281 var popup = keyset.querySelector('kb-altkey-container'); |
| 282 if (popup && popup.hidden == !waitCondition.value) { | 282 if (popup && popup.hidden == !waitCondition.value) { |
| 283 continueWaiting = false; | 283 continueWaiting = false; |
| 284 this.runNextTest(); | 284 this.runNextTest(); |
| 285 } | 285 } |
| 286 } else if (waitCondition.state == 'overlayVisibility') { |
| 287 var popup = |
| 288 $('keyboard').webkitShadowRoot.querySelector('kb-keyboard-overlay'); |
| 289 if (popup && popup.hidden == !waitCondition.value) { |
| 290 continueWaiting = false; |
| 291 this.runNextTest(); |
| 292 } |
| 286 } | 293 } |
| 287 if (continueWaiting) { | 294 if (continueWaiting) { |
| 288 Debug('waiting on ' + waitCondition.state + ' = ' + | 295 Debug('waiting on ' + waitCondition.state + ' = ' + |
| 289 waitCondition.value); | 296 waitCondition.value); |
| 290 } | 297 } |
| 291 }, | 298 }, |
| 292 | 299 |
| 293 runNextTest: function() { | 300 runNextTest: function() { |
| 294 var testFailure = false; | 301 var testFailure = false; |
| 295 var callback = this.queue[0].testCallback; | 302 var callback = this.queue[0].testCallback; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 | 346 |
| 340 mockTimer.install(); | 347 mockTimer.install(); |
| 341 | 348 |
| 342 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, | 349 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, |
| 343 'insertText'); | 350 'insertText'); |
| 344 | 351 |
| 345 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, | 352 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, |
| 346 'sendKeyEvent'); | 353 'sendKeyEvent'); |
| 347 | 354 |
| 348 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, | 355 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, |
| 356 'lockKeyboard'); |
| 357 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, |
| 349 'hideKeyboard'); | 358 'hideKeyboard'); |
| 350 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, | 359 mockController.createFunctionMock(chrome.virtualKeyboardPrivate, |
| 351 'moveCursor'); | 360 'moveCursor'); |
| 352 | 361 |
| 353 var validateSendCall = function(index, expected, observed) { | 362 var validateSendCall = function(index, expected, observed) { |
| 354 // Only consider the first argument (VirtualKeyEvent) for the validation of | 363 // Only consider the first argument (VirtualKeyEvent) for the validation of |
| 355 // sendKeyEvent calls. | 364 // sendKeyEvent calls. |
| 356 var expectedEvent = expected[0]; | 365 var expectedEvent = expected[0]; |
| 357 var observedEvent = observed[0]; | 366 var observedEvent = observed[0]; |
| 358 assertEquals(expectedEvent.type, | 367 assertEquals(expectedEvent.type, |
| 359 observedEvent.type, | 368 observedEvent.type, |
| 360 'Mismatched event types.'); | 369 'Mismatched event types.'); |
| 361 assertEquals(expectedEvent.charValue, | 370 assertEquals(expectedEvent.charValue, |
| 362 observedEvent.charValue, | 371 observedEvent.charValue, |
| 363 'Mismatched unicode values for character.'); | 372 'Mismatched unicode values for character.'); |
| 364 assertEquals(expectedEvent.keyCode, | 373 assertEquals(expectedEvent.keyCode, |
| 365 observedEvent.keyCode, | 374 observedEvent.keyCode, |
| 366 'Mismatched key codes.'); | 375 'Mismatched key codes.'); |
| 367 assertEquals(expectedEvent.modifiers, | 376 assertEquals(expectedEvent.modifiers, |
| 368 observedEvent.modifiers, | 377 observedEvent.modifiers, |
| 369 'Mismatched states for modifiers.'); | 378 'Mismatched states for modifiers.'); |
| 370 }; | 379 }; |
| 371 chrome.virtualKeyboardPrivate.sendKeyEvent.validateCall = validateSendCall; | 380 chrome.virtualKeyboardPrivate.sendKeyEvent.validateCall = validateSendCall; |
| 372 | 381 |
| 382 var validateLockKeyboard = function(index, expected, observed) { |
| 383 assertEquals(expected[0], |
| 384 observed[0], |
| 385 'Mismatched keyboard lock/unlock state.'); |
| 386 }; |
| 387 chrome.virtualKeyboardPrivate.lockKeyboard.validateCall = |
| 388 validateLockKeyboard; |
| 389 |
| 373 chrome.virtualKeyboardPrivate.hideKeyboard.validateCall = function() { | 390 chrome.virtualKeyboardPrivate.hideKeyboard.validateCall = function() { |
| 374 // hideKeyboard has one optional argument for error logging that does not | 391 // hideKeyboard has one optional argument for error logging that does not |
| 375 // matter for the purpose of validating the call. | 392 // matter for the purpose of validating the call. |
| 376 }; | 393 }; |
| 377 | 394 |
| 378 var validateMoveCursor = function(index, expected, observed) { | 395 var validateMoveCursor = function(index, expected, observed) { |
| 379 assertEquals(expected[0], observed[0], "Mismatched swipe directions."); | 396 assertEquals(expected[0], observed[0], 'Mismatched swipe directions.'); |
| 380 assertEquals(expected[1], observed[1], "Mismatched swipe flags."); | 397 assertEquals(expected[1], observed[1], 'Mismatched swipe flags.'); |
| 381 } | 398 }; |
| 382 chrome.virtualKeyboardPrivate.moveCursor.validateCall = validateMoveCursor; | 399 chrome.virtualKeyboardPrivate.moveCursor.validateCall = validateMoveCursor; |
| 383 | 400 |
| 384 // TODO(kevers): Mock additional extension API calls as required. | 401 // TODO(kevers): Mock additional extension API calls as required. |
| 385 } | 402 } |
| 386 | 403 |
| 387 /** | 404 /** |
| 388 * Verify that API calls match expectations. | 405 * Verify that API calls match expectations. |
| 389 */ | 406 */ |
| 390 function tearDown() { | 407 function tearDown() { |
| 391 mockController.verifyMocks(); | 408 mockController.verifyMocks(); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 * the keyboard to load a new keyset before running. | 487 * the keyboard to load a new keyset before running. |
| 471 */ | 488 */ |
| 472 function waitOnKeyset(keysetName, testName, runTestCallback, testDoneCallback, | 489 function waitOnKeyset(keysetName, testName, runTestCallback, testDoneCallback, |
| 473 opt_testSubtasks) { | 490 opt_testSubtasks) { |
| 474 runTestCallback.testName = testName; | 491 runTestCallback.testName = testName; |
| 475 runTestCallback.onTestComplete = testDoneCallback; | 492 runTestCallback.onTestComplete = testDoneCallback; |
| 476 runTestCallback.subtasks = opt_testSubtasks; | 493 runTestCallback.subtasks = opt_testSubtasks; |
| 477 testRunner.scheduleTest(runTestCallback, | 494 testRunner.scheduleTest(runTestCallback, |
| 478 {state: 'keysetChanged', value: keysetName}); | 495 {state: 'keysetChanged', value: keysetName}); |
| 479 } | 496 } |
| OLD | NEW |