blob: 966e90bd4ee87d3750fe834fc2776fdc4393122e [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests whether focus is properly remembered on widgets.\n`);
var outerInput = document.createElement('input');
outerInput.id = 'Outer';
var input1 = document.createElement('input');
input1.id = 'Input1';
var input2 = document.createElement('input');
input2.id = 'Input2';
var input3 = document.createElement('input');
input3.id = 'Input3';
var input4 = document.createElement('input');
input4.id = 'Input4';
UI.inspectorView.element.appendChild(outerInput);
var mainWidget = new UI.Widget();
mainWidget.show(UI.inspectorView.element);
var widget1 = new UI.Widget();
widget1.show(mainWidget.element);
widget1.element.appendChild(input1);
widget1.setDefaultFocusedElement(input1);
var widget2 = new UI.Widget();
widget2.show(mainWidget.element);
widget2.element.appendChild(input2);
widget2.setDefaultFocusedElement(input2);
TestRunner.addResult('Focusing outer input...');
outerInput.focus();
dumpFocus();
TestRunner.addResult('Focusing widget1...');
widget1.focus();
dumpFocus();
TestRunner.addResult('Focusing widget2...');
input2.focus();
dumpFocus();
TestRunner.addResult('Focusing outer input again...');
outerInput.focus();
dumpFocus();
TestRunner.addResult('Focusing main widget...');
mainWidget.focus();
dumpFocus();
TestRunner.addResult('Focusing outer input again...');
outerInput.focus();
dumpFocus();
TestRunner.addResult('Hiding widget2 and focusing main widget...');
widget2.hideWidget();
mainWidget.focus();
dumpFocus();
var splitWidget = new UI.SplitWidget();
splitWidget.show(mainWidget.element);
var widget3 = new UI.Widget();
widget3.element.appendChild(input3);
widget3.setDefaultFocusedElement(input3);
splitWidget.setSidebarWidget(widget3);
var widget4 = new UI.Widget();
widget4.element.appendChild(input4);
widget4.setDefaultFocusedElement(input4);
splitWidget.setMainWidget(widget4);
splitWidget.setDefaultFocusedChild(widget4);
TestRunner.addResult('Focusing split widget in main that has 3 and 4 inputs...');
splitWidget.focus();
dumpFocus();
TestRunner.addResult('Focusing widget 3...');
widget3.focus();
dumpFocus();
TestRunner.addResult('Focusing main widget again...');
mainWidget.focus();
dumpFocus();
TestRunner.completeTest();
function dumpFocus() {
var focused = document.deepActiveElement();
var id = focused ? focused.id : '';
TestRunner.addResult(id ? id + ' Focused' : 'No focus');
}
})();