blob: 04ce1455b22355c482d32c57901a9efd100a563e [file] [log] [blame]
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
var settingIndex = 0;
function createAndShowSplitWidget(isVertical, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode)
{
var splitWidget = new WebInspector.SplitWidget(isVertical, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight);
splitWidget.setMainWidget(new WebInspector.Widget());
splitWidget.setSidebarWidget(new WebInspector.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";
InspectorTest.addResult(" Sidebar size = " + sidebarSize + ", showMode = " + splitWidget.showMode() + ", " + orientation);
InspectorTest.addResult(" Setting value: " + JSON.stringify(WebInspector.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;
InspectorTest.addResult("Create default split widget");
var params = "useFraction = " + useFraction + ", shouldSaveShowMode = " + shouldSaveShowMode;
InspectorTest.addResult("Running split widget test with the following parameters: " + params);
InspectorTest.addResult("Creating split widget");
splitWidget = createAndShowSplitWidget(true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Hiding sidebar");
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Showing sidebar");
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Resizing");
splitWidget.setSidebarSize(newWidth);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Hiding sidebar");
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Showing sidebar");
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Making horizontal");
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Resizing");
splitWidget.setSidebarSize(newHeight);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Hiding sidebar");
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
InspectorTest.addResult("Recreating split widget");
splitWidget = createAndShowSplitWidget(true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Hiding sidebar");
splitWidget.hideSidebar();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Making horizontal");
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Showing sidebar");
splitWidget.showBoth();
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
InspectorTest.addResult("Recreating split widget");
splitWidget = createAndShowSplitWidget(true, secondIsSidebar, settingName, defaultSidebarWidth, defaultSidebarHeight, shouldSaveShowMode);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
InspectorTest.addResult("Making horizontal");
splitWidget.setVertical(false);
dumpSplitWidgetOrientationShowModeAndSidebarSize(splitWidget);
splitWidget.element.remove();
InspectorTest.addResult("");
}
// Test all combinations of useFraction and shouldSaveShowMode flags
testSplitWidgetSizes(false, false);
testSplitWidgetSizes(false, true);
testSplitWidgetSizes(true, false);
testSplitWidgetSizes(true, true);
InspectorTest.completeTest();
}
</script>
</head>
<body onload="runTest()">
<p>Tests how split widget saving to settings works.</p>
</body>
</html>