3 <script src="../http/tests/inspector/inspector-test.js"></script>
8 function showRootSplitView(splitView)
10 splitView.element.style.position = "absolute";
11 splitView.element.style.top = "0";
12 splitView.element.style.left = "0";
13 splitView.element.style.height = "500px";
14 splitView.element.style.width = "500px";
15 splitView.markAsRoot();
16 splitView.show(document.body);
20 function dumpBoundingBoxes(views)
22 for (var name in views) {
23 var box = views[name].element.getBoundingClientRect();
24 InspectorTest.addResult("[" + name + "] left = " + box.left + "; right = " + box.right + "; top = " + box.top + "; bottom = " + box.bottom);
28 InspectorTest.addResult("Creating simple hierarchy");
29 var splitView = new WebInspector.SplitView(true, true, "splitViewStateSettingName.splitView", 250, 250);
30 showRootSplitView(splitView);
32 var mainView = new WebInspector.View();
33 mainView.setMinimumSize(100, 80);
34 mainView.show(splitView.mainElement());
36 var firstSidebarView = new WebInspector.View();
37 firstSidebarView.setMinimumSize(40, 70);
38 firstSidebarView.show(splitView.sidebarElement());
40 var views = {"splitView": splitView, "mainView": mainView, "sidebarView": firstSidebarView};
41 dumpBoundingBoxes(views);
43 InspectorTest.addResult("Changing sidebar size");
44 splitView.setSidebarSize(30);
45 dumpBoundingBoxes(views);
47 InspectorTest.addResult("Changing sidebar view minimum size");
48 firstSidebarView.setMinimumSize(90, 70);
49 dumpBoundingBoxes(views);
51 InspectorTest.addResult("Changing orientation");
52 splitView.setVertical(false);
53 dumpBoundingBoxes(views);
55 InspectorTest.addResult("Changing main view minimum size");
56 mainView.setMinimumSize(450, 450);
57 dumpBoundingBoxes(views);
59 InspectorTest.addResult("Changing main view minimum size back and resizing");
60 mainView.setMinimumSize(100, 80);
61 splitView.setSidebarSize(450);
62 dumpBoundingBoxes(views);
64 InspectorTest.addResult("Wrapping main view to a split view");
65 var childSplitView = new WebInspector.SplitView(false, true, "splitViewStateSettingName.childSplitView", 100, 100);
66 childSplitView.hideSidebar();
67 mainView.show(childSplitView.mainElement());
68 childSplitView.show(splitView.mainElement());
69 views["childSplitView"] = childSplitView;
70 dumpBoundingBoxes(views);
72 InspectorTest.addResult("Adding invisble sidebar");
73 var secondSidebarView = new WebInspector.View();
74 secondSidebarView.setMinimumSize(60, 60);
75 secondSidebarView.show(childSplitView.sidebarElement());
76 views["secondSidebarView"] = secondSidebarView;
77 dumpBoundingBoxes(views);
79 InspectorTest.addResult("Showing sidebar");
80 childSplitView.showBoth();
81 dumpBoundingBoxes(views);
83 InspectorTest.addResult("Detaching sidebar");
84 secondSidebarView.detach();
85 delete views["secondSidebarView"];
86 dumpBoundingBoxes(views);
88 InspectorTest.addResult("Attaching another sidebar");
89 var thirdSidebarView = new WebInspector.View();
90 thirdSidebarView.setMinimumSize(80, 80);
91 thirdSidebarView.show(childSplitView.sidebarElement());
92 views["thirdSidebarView"] = thirdSidebarView;
93 dumpBoundingBoxes(views);
95 InspectorTest.addResult("Swapping main and sidebar");
96 splitView.setSecondIsSidebar(false);
97 dumpBoundingBoxes(views);
99 InspectorTest.addResult("Arranging preferred sizes");
100 firstSidebarView.setMinimumAndPreferredSizes(50, 50, 100, 100);
101 mainView.setMinimumAndPreferredSizes(50, 50, 200, 200);
102 thirdSidebarView.setMinimumAndPreferredSizes(50, 50, 100, 100);
103 splitView.setSidebarSize(260);
104 dumpBoundingBoxes(views);
106 InspectorTest.addResult("Less than sidebar preferred size");
107 splitView.setSidebarSize(80);
108 dumpBoundingBoxes(views);
110 InspectorTest.addResult("Size changes proportionally");
111 splitView.setSidebarSize(320);
112 dumpBoundingBoxes(views);
114 InspectorTest.addResult("Manual resize inside child split view");
115 childSplitView.setSidebarSize(50);
116 dumpBoundingBoxes(views);
118 InspectorTest.addResult("Manual resize inside child split view");
119 childSplitView.setSidebarSize(120);
120 dumpBoundingBoxes(views);
122 InspectorTest.addResult("Child split view gets more space");
123 splitView.setSidebarSize(170);
124 dumpBoundingBoxes(views);
126 InspectorTest.addResult("Child split view gets less space");
127 splitView.setSidebarSize(360);
128 dumpBoundingBoxes(views);
130 InspectorTest.completeTest();
134 <body onload="runTest()">
135 <p>Tests how view minimum size works.</p>