blob: 6ffa49cd0f40ae9d297ee3758e6d5e992c681f19 [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 how split widget saving to settings works.\n`);
var settingIndex = 0;
function createAndShowSplitWidget(
isVertical, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode) {
var splitWidget =
new UI.SplitWidget(isVertical, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight);
splitWidget.setMainWidget(new UI.Widget());
splitWidget.setSidebarWidget(new UI.Widget());
if (shouldSaveShowMode)
splitWidget.enableShowModeSaving();
splitWidget.element.style.position = 'absolute';
splitWidget.element.style.top = '0';
splitWidget.element.style.left = '0';
splitWidget.element.style.height = '500px';
splitWidget.element.style.width = '500px';
splitWidget.markAsRoot();
splitWidget.show(document.body);
return splitWidget;
}
function dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget) {
var sidebarSize = splitWidget.isVertical() ? splitWidget.sidebarWidget().element.offsetWidth :
splitWidget.sidebarWidget().element.offsetHeight;
var orientation = splitWidget.isVertical() ? 'vertical' : 'horizontal';
TestRunner.addResult(
' Sidebar size = ' + sidebarSize + ', showMode = ' + splitWidget.showMode() + ', ' + orientation);
TestRunner.addResult(
' Setting value: ' + JSON.stringify(Common.settings.settingForTest(splitWidget._setting._name).get()));
}
function testSplitWidgetSizes(useFraction, shouldSaveShowMode) {
var secondIsSidebar = true;
var settingName = 'splitWidgetStateSettingName' + (++settingIndex);
var defaultSidebarWidth = useFraction ? 0.23 : 101;
var defaultSidebarHeight = useFraction ? 0.24 : 102;
var newWidth = useFraction ? 125 : 201;
var newHeight = useFraction ? 130 : 202;
var splitWidget;
TestRunner.addResult('Create default split widget');
var params = 'useFraction = ' + useFraction + ', shouldSaveShowMode = ' + shouldSaveShowMode;
TestRunner.addResult('Running split widget test with the following parameters: ' + params);
TestRunner.addResult('Creating split widget');
splitWidget = createAndShowSplitWidget(
true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Hiding sidebar');
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Showing sidebar');
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Resizing');
splitWidget.setSidebarSize(newWidth);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Hiding sidebar');
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Showing sidebar');
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Making horizontal');
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Resizing');
splitWidget.setSidebarSize(newHeight);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Hiding sidebar');
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
TestRunner.addResult('Recreating split widget');
splitWidget = createAndShowSplitWidget(
true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Hiding sidebar');
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Making horizontal');
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Showing sidebar');
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
TestRunner.addResult('Recreating split widget');
splitWidget = createAndShowSplitWidget(
true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
TestRunner.addResult('Making horizontal');
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
TestRunner.addResult('');
}
// Test all combinations of useFraction and shouldSaveShowMode flags
testSplitWidgetSizes(false, false);
testSplitWidgetSizes(false, true);
testSplitWidgetSizes(true, false);
testSplitWidgetSizes(true, true);
TestRunner.completeTest();
})();