Index: LayoutTests/inspector/split-widget.html |
diff --git a/LayoutTests/inspector/split-widget.html b/LayoutTests/inspector/split-widget.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..04ce1455b22355c482d32c57901a9efd100a563e |
--- /dev/null |
+++ b/LayoutTests/inspector/split-widget.html |
@@ -0,0 +1,128 @@ |
+<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> |