1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction AccountsOptionsWebUITest() {}
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochAccountsOptionsWebUITest.prototype = {
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  __proto__: testing.Test.prototype,
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  /**
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch   * Browse to accounts options.
125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu   */
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  browsePreload: 'chrome://settings-frame/accounts',
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch};
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction createEnterKeyboardEvent(type) {
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return new KeyboardEvent(type, {
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    'bubbles': true,
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    'cancelable': true,
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    'keyIdentifier': 'Enter'
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  });
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochTEST_F('AccountsOptionsWebUITest', 'testNoCloseOnEnter', function() {
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  assertEquals(this.browsePreload, document.location.href);
26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  var inputField = $('userNameEdit');
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  var accountsOptionsPage = AccountsOptions.getInstance();
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Overlay is visible.
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  assertTrue(accountsOptionsPage.visible);
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Simulate pressing the enter key in the edit field.
34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  inputField.dispatchEvent(createEnterKeyboardEvent('keydown'));
35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  inputField.dispatchEvent(createEnterKeyboardEvent('keypress'));
36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  inputField.dispatchEvent(createEnterKeyboardEvent('keyup'));
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Verify the overlay is still visible.
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  assertTrue(accountsOptionsPage.visible);
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch});
41