Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / minimum-size.html
1 <html>
2 <head>
3 <script src="../http/tests/inspector/inspector-test.js"></script>
4 <script>
5
6 function test()
7 {
8     function showRootSplitView(splitView)
9     {
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);
17         return splitView;
18     }
19
20     function dumpBoundingBoxes(views)
21     {
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);
25         }
26     }
27
28     InspectorTest.addResult("Creating simple hierarchy");
29     var splitView = new WebInspector.SplitView(true, true, "splitViewStateSettingName.splitView", 250, 250);
30     showRootSplitView(splitView);
31
32     var mainView = new WebInspector.View();
33     mainView.setMinimumSize(100, 80);
34     mainView.show(splitView.mainElement());
35
36     var firstSidebarView = new WebInspector.View();
37     firstSidebarView.setMinimumSize(40, 70);
38     firstSidebarView.show(splitView.sidebarElement());
39
40     var views = {"splitView": splitView, "mainView": mainView, "sidebarView": firstSidebarView};
41     dumpBoundingBoxes(views);
42
43     InspectorTest.addResult("Changing sidebar size");
44     splitView.setSidebarSize(30);
45     dumpBoundingBoxes(views);
46
47     InspectorTest.addResult("Changing sidebar view minimum size");
48     firstSidebarView.setMinimumSize(90, 70);
49     dumpBoundingBoxes(views);
50
51     InspectorTest.addResult("Changing orientation");
52     splitView.setVertical(false);
53     dumpBoundingBoxes(views);
54
55     InspectorTest.addResult("Changing main view minimum size");
56     mainView.setMinimumSize(450, 450);
57     dumpBoundingBoxes(views);
58
59     InspectorTest.addResult("Changing main view minimum size back and resizing");
60     mainView.setMinimumSize(100, 80);
61     splitView.setSidebarSize(450);
62     dumpBoundingBoxes(views);
63
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);
71
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);
78
79     InspectorTest.addResult("Showing sidebar");
80     childSplitView.showBoth();
81     dumpBoundingBoxes(views);
82
83     InspectorTest.addResult("Detaching sidebar");
84     secondSidebarView.detach();
85     delete views["secondSidebarView"];
86     dumpBoundingBoxes(views);
87
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);
94
95     InspectorTest.addResult("Swapping main and sidebar");
96     splitView.setSecondIsSidebar(false);
97     dumpBoundingBoxes(views);
98
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);
105
106     InspectorTest.addResult("Less than sidebar preferred size");
107     splitView.setSidebarSize(80);
108     dumpBoundingBoxes(views);
109
110     InspectorTest.addResult("Size changes proportionally");
111     splitView.setSidebarSize(320);
112     dumpBoundingBoxes(views);
113
114     InspectorTest.addResult("Manual resize inside child split view");
115     childSplitView.setSidebarSize(50);
116     dumpBoundingBoxes(views);
117
118     InspectorTest.addResult("Manual resize inside child split view");
119     childSplitView.setSidebarSize(120);
120     dumpBoundingBoxes(views);
121
122     InspectorTest.addResult("Child split view gets more space");
123     splitView.setSidebarSize(170);
124     dumpBoundingBoxes(views);
125
126     InspectorTest.addResult("Child split view gets less space");
127     splitView.setSidebarSize(360);
128     dumpBoundingBoxes(views);
129
130     InspectorTest.completeTest();
131 }
132 </script>
133 </head>
134 <body onload="runTest()">
135 <p>Tests how view minimum size works.</p>
136 </body>
137 </html>