15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// TODO(dbeam): test for loading upacked extensions? 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 78bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)GEN('#include "chrome/browser/ui/webui/extensions/' + 88bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 'extension_settings_browsertest.h"'); 98bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)/** 118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) * Test C++ fixture for settings WebUI testing. 128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) * @constructor 138bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) * @extends {testing.Test} 148bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) */ 158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)function ExtensionSettingsUIBrowserTest() {} 168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * TestFixture for extension settings WebUI testing. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @extends {testing.Test} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function ExtensionSettingsWebUITest() {} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionSettingsWebUITest.prototype = { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __proto__: testing.Test.prototype, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) accessibilityIssuesAreErrors: true, 288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) /** @override */ 308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) setUp: function() { 318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // TODO(aboxhall): remove these when crbug.com/267035 is closed. 328bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) this.accessibilityAuditConfig.ignoreSelectors( 338bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 'lowContrastElements', 348bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) '.enable-checkbox input:disabled + .enable-checkbox-text > *'); 358bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) this.accessibilityAuditConfig.ignoreSelectors( 368bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 'lowContrastElements', '.extension-description > *'); 378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) this.accessibilityAuditConfig.ignoreSelectors( 388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 'lowContrastElements', '.location-text'); 398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) }, 408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch /** 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * A URL to load before starting each test. 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @type {string} 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @const 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) browsePreload: 'chrome://extensions-frame/', 478bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 488bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) /** @override */ 498bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) typedefCppFixture: 'ExtensionSettingsUIBrowserTest', 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochTEST_F('ExtensionSettingsWebUITest', 'testChromeSendHandled', function() { 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch assertEquals(this.browsePreload, document.location.href); 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // This dialog should be hidden at first. 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) assertFalse($('pack-extension-overlay').classList.contains('showing')); 57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Show the dialog, which triggers a chrome.send() for metrics purposes. 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch cr.dispatchSimpleEvent($('pack-extension'), 'click'); 603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) assertTrue($('pack-extension-overlay').classList.contains('showing')); 61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}); 62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/** 64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * TestFixture for extension settings WebUI testing (commands config edition). 65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @extends {testing.Test} 66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @constructor 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction ExtensionSettingsCommandsConfigWebUITest() {} 69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochExtensionSettingsCommandsConfigWebUITest.prototype = { 71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch __proto__: testing.Test.prototype, 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) accessibilityIssuesAreErrors: true, 748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch /** 76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * A URL to load before starting each test. 77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @type {string} 78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @const 79eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 80eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch browsePreload: 'chrome://extensions-frame/configureCommands', 81eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 82eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochTEST_F('ExtensionSettingsCommandsConfigWebUITest', 'testChromeSendHandler', 84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch function() { 85eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Just navigating to the page should trigger the chrome.send(). 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(this.browsePreload, document.location.href); 873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) assertTrue($('extension-commands-overlay').classList.contains('showing')); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 898bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)function ExtensionSettingsWebUITestWithExtensionInstalled() {} 918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)ExtensionSettingsWebUITestWithExtensionInstalled.prototype = { 938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) __proto__: ExtensionSettingsWebUITest.prototype, 948bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 958bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) /** @override */ 968bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) typedefCppFixture: 'ExtensionSettingsUIBrowserTest', 978bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 988bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) /** @override */ 998bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) testGenPreamble: function() { 1008bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) GEN(' InstallGoodExtension();'); 1018bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 102010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}; 1038bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1048bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F('ExtensionSettingsWebUITestWithExtensionInstalled', 1058bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 'baseAccessibilityIsOk', function() { 1068bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) assertEquals(this.browsePreload, document.location.href); 1078bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) this.runAccessibilityAudit(); 1088bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)}); 109