Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: Source/web/tests/LayoutGeometryMapTest.cpp

Issue 926193003: Move rendering/RenderBox to layout/LayoutBox. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/web/WebPluginContainerImpl.cpp ('k') | Source/web/tests/ScrollingCoordinatorTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 #include "core/layout/LayoutGeometryMap.h" 32 #include "core/layout/LayoutGeometryMap.h"
33 33
34 #include "core/dom/Document.h" 34 #include "core/dom/Document.h"
35 #include "core/layout/Layer.h" 35 #include "core/layout/Layer.h"
36 #include "core/rendering/RenderBox.h" 36 #include "core/layout/LayoutBox.h"
37 #include "core/testing/URLTestHelpers.h" 37 #include "core/testing/URLTestHelpers.h"
38 #include "public/platform/Platform.h" 38 #include "public/platform/Platform.h"
39 #include "public/platform/WebUnitTestSupport.h" 39 #include "public/platform/WebUnitTestSupport.h"
40 #include "public/web/WebFrameClient.h" 40 #include "public/web/WebFrameClient.h"
41 #include "web/WebLocalFrameImpl.h" 41 #include "web/WebLocalFrameImpl.h"
42 #include "web/tests/FloatPointTestHelpers.h" 42 #include "web/tests/FloatPointTestHelpers.h"
43 #include "web/tests/FloatQuadTestHelpers.h" 43 #include "web/tests/FloatQuadTestHelpers.h"
44 #include "web/tests/FrameTestHelpers.h" 44 #include "web/tests/FrameTestHelpers.h"
45 #include <gtest/gtest.h> 45 #include <gtest/gtest.h>
46 46
(...skipping 10 matching lines...) Expand all
57 : m_baseURL("http://www.test.com/") 57 : m_baseURL("http://www.test.com/")
58 { 58 {
59 } 59 }
60 60
61 virtual void TearDown() 61 virtual void TearDown()
62 { 62 {
63 Platform::current()->unitTestSupport()->unregisterAllMockedURLs(); 63 Platform::current()->unitTestSupport()->unregisterAllMockedURLs();
64 } 64 }
65 65
66 protected: 66 protected:
67 static RenderBox* getFrameElement(const char* iframeName, WebView* webView, const WTF::AtomicString& elementId) 67 static LayoutBox* getFrameElement(const char* iframeName, WebView* webView, const WTF::AtomicString& elementId)
68 { 68 {
69 WebLocalFrameImpl* iframe = toWebLocalFrameImpl(webView->findFrameByName (WebString::fromUTF8(iframeName))); 69 WebLocalFrameImpl* iframe = toWebLocalFrameImpl(webView->findFrameByName (WebString::fromUTF8(iframeName)));
70 if (!iframe) 70 if (!iframe)
71 return nullptr; 71 return nullptr;
72 LocalFrame* frame = iframe->frame(); 72 LocalFrame* frame = iframe->frame();
73 Document* doc = frame->document(); 73 Document* doc = frame->document();
74 Element* element = doc->getElementById(elementId); 74 Element* element = doc->getElementById(elementId);
75 if (!element) 75 if (!element)
76 return nullptr; 76 return nullptr;
77 return element->renderBox(); 77 return element->layoutBox();
78 } 78 }
79 79
80 static RenderBox* getRenderBox(WebView* webView, const WTF::AtomicString& el ementId) 80 static LayoutBox* getLayoutBox(WebView* webView, const WTF::AtomicString& el ementId)
81 { 81 {
82 WebViewImpl* webViewImpl = toWebViewImpl(webView); 82 WebViewImpl* webViewImpl = toWebViewImpl(webView);
83 if (!webViewImpl) 83 if (!webViewImpl)
84 return nullptr; 84 return nullptr;
85 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); 85 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame();
86 Document* doc = frame->document(); 86 Document* doc = frame->document();
87 Element* element = doc->getElementById(elementId); 87 Element* element = doc->getElementById(elementId);
88 if (!element) 88 if (!element)
89 return nullptr; 89 return nullptr;
90 return element->renderBox(); 90 return element->layoutBox();
91 } 91 }
92 92
93 static const LayoutBoxModelObject* getRenderContainer(WebView* webView, cons t WTF::AtomicString &elementId) 93 static const LayoutBoxModelObject* getRenderContainer(WebView* webView, cons t WTF::AtomicString &elementId)
94 { 94 {
95 RenderBox* rb = getRenderBox(webView, elementId); 95 LayoutBox* rb = getLayoutBox(webView, elementId);
96 if (!rb) 96 if (!rb)
97 return nullptr; 97 return nullptr;
98 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn validation(); 98 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn validation();
99 if (!compositingLayer) 99 if (!compositingLayer)
100 return nullptr; 100 return nullptr;
101 return compositingLayer->renderer(); 101 return compositingLayer->renderer();
102 } 102 }
103 103
104 static const LayoutBoxModelObject* getFrameRenderContainer(const char* frame Id, WebView* webView, const WTF::AtomicString &elementId) 104 static const LayoutBoxModelObject* getFrameRenderContainer(const char* frame Id, WebView* webView, const WTF::AtomicString &elementId)
105 { 105 {
106 RenderBox* rb = getFrameElement(frameId, webView, elementId); 106 LayoutBox* rb = getFrameElement(frameId, webView, elementId);
107 if (!rb) 107 if (!rb)
108 return nullptr; 108 return nullptr;
109 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn validation(); 109 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn validation();
110 if (!compositingLayer) 110 if (!compositingLayer)
111 return nullptr; 111 return nullptr;
112 return compositingLayer->renderer(); 112 return compositingLayer->renderer();
113 } 113 }
114 114
115 static const FloatRect rectFromQuad(const FloatQuad& quad) 115 static const FloatRect rectFromQuad(const FloatQuad& quad)
116 { 116 {
(...skipping 20 matching lines...) Expand all
137 registerMockedHttpURLLoad("rgm_test.html"); 137 registerMockedHttpURLLoad("rgm_test.html");
138 FrameTestHelpers::WebViewHelper webViewHelper; 138 FrameTestHelpers::WebViewHelper webViewHelper;
139 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_test.htm l", true, 0, 0); 139 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_test.htm l", true, 0, 0);
140 webView->resize(WebSize(1000, 1000)); 140 webView->resize(WebSize(1000, 1000));
141 webView->layout(); 141 webView->layout();
142 142
143 // We are going test everything twice. Once with FloatPoints and once with 143 // We are going test everything twice. Once with FloatPoints and once with
144 // FloatRects. This is because LayoutGeometryMap treats both slightly 144 // FloatRects. This is because LayoutGeometryMap treats both slightly
145 // differently 145 // differently
146 LayoutGeometryMap rgm; 146 LayoutGeometryMap rgm;
147 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); 147 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InitialDiv"), 0);
148 FloatPoint point; 148 FloatPoint point;
149 FloatRect rect(0.0f, 0.0f, 1.0f, 2.0f); 149 FloatRect rect(0.0f, 0.0f, 1.0f, 2.0f);
150 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); 150 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr));
151 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, nullptr)); 151 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, nullptr));
152 152
153 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 153 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
154 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); 154 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr));
155 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, nullptr)); 155 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, nullptr));
156 156
157 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); 157 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InnerDiv"), 0);
158 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(we bView, "CenterDiv"))); 158 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getLayoutBox(we bView, "CenterDiv")));
159 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer( rect, getRenderBox(webView, "CenterDiv"))); 159 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer( rect, getLayoutBox(webView, "CenterDiv")));
160 160
161 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w ebView, "InnerDiv")); 161 rgm.pushMappingsToAncestor(getLayoutBox(webView, "OtherDiv"), getLayoutBox(w ebView, "InnerDiv"));
162 EXPECT_EQ(FloatPoint(22.0f, 12.0f), rgm.mapToContainer(point, getRenderBox(w ebView, "CenterDiv"))); 162 EXPECT_EQ(FloatPoint(22.0f, 12.0f), rgm.mapToContainer(point, getLayoutBox(w ebView, "CenterDiv")));
163 EXPECT_EQ(FloatQuad(FloatRect(22.0f, 12.0f, 1.0f, 2.0f)), rgm.mapToContainer (rect, getRenderBox(webView, "CenterDiv"))); 163 EXPECT_EQ(FloatQuad(FloatRect(22.0f, 12.0f, 1.0f, 2.0f)), rgm.mapToContainer (rect, getLayoutBox(webView, "CenterDiv")));
164 164
165 EXPECT_EQ(FloatPoint(1.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(web View, "InnerDiv"))); 165 EXPECT_EQ(FloatPoint(1.0f, 6.0f), rgm.mapToContainer(point, getLayoutBox(web View, "InnerDiv")));
166 EXPECT_EQ(FloatQuad(FloatRect(1.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, getRenderBox(webView, "InnerDiv"))); 166 EXPECT_EQ(FloatQuad(FloatRect(1.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(r ect, getLayoutBox(webView, "InnerDiv")));
167 167
168 EXPECT_EQ(FloatPoint(50.0f, 44.0f), rgm.mapToContainer(point, nullptr)); 168 EXPECT_EQ(FloatPoint(50.0f, 44.0f), rgm.mapToContainer(point, nullptr));
169 EXPECT_EQ(FloatQuad(FloatRect(50.0f, 44.0f, 1.0f, 2.0f)), rgm.mapToContainer (rect, nullptr)); 169 EXPECT_EQ(FloatQuad(FloatRect(50.0f, 44.0f, 1.0f, 2.0f)), rgm.mapToContainer (rect, nullptr));
170 } 170 }
171 171
172 // Fails on Windows due to crbug.com/391457. When run through the transform the 172 // Fails on Windows due to crbug.com/391457. When run through the transform the
173 // position on windows differs by a pixel 173 // position on windows differs by a pixel
174 #if OS(WIN) 174 #if OS(WIN)
175 TEST_F(LayoutGeometryMapTest, DISABLED_TransformedGeometryTest) 175 TEST_F(LayoutGeometryMapTest, DISABLED_TransformedGeometryTest)
176 #else 176 #else
177 TEST_F(LayoutGeometryMapTest, TransformedGeometryTest) 177 TEST_F(LayoutGeometryMapTest, TransformedGeometryTest)
178 #endif 178 #endif
179 { 179 {
180 registerMockedHttpURLLoad("rgm_transformed_test.html"); 180 registerMockedHttpURLLoad("rgm_transformed_test.html");
181 FrameTestHelpers::WebViewHelper webViewHelper; 181 FrameTestHelpers::WebViewHelper webViewHelper;
182 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_transfor med_test.html", true, 0, 0); 182 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_transfor med_test.html", true, 0, 0);
183 webView->resize(WebSize(1000, 1000)); 183 webView->resize(WebSize(1000, 1000));
184 webView->layout(); 184 webView->layout();
185 185
186 LayoutGeometryMap rgm; 186 LayoutGeometryMap rgm;
187 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); 187 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InitialDiv"), 0);
188 FloatPoint point; 188 FloatPoint point;
189 const float rectWidth = 15.0f; 189 const float rectWidth = 15.0f;
190 const float scaleWidth = 2.0f; 190 const float scaleWidth = 2.0f;
191 const float scaleHeight = 3.0f; 191 const float scaleHeight = 3.0f;
192 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); 192 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f);
193 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); 193 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr));
194 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr)); 194 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr));
195 195
196 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 196 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
197 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); 197 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr));
198 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)).boundingBox(), rgm. mapToContainer(rect, nullptr).boundingBox()); 198 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)).boundingBox(), rgm. mapToContainer(rect, nullptr).boundingBox());
199 199
200 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); 200 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InnerDiv"), 0);
201 EXPECT_EQ(FloatPoint(523.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(w ebView, "CenterDiv"))); 201 EXPECT_EQ(FloatPoint(523.0f, 6.0f), rgm.mapToContainer(point, getLayoutBox(w ebView, "CenterDiv")));
202 EXPECT_EQ(FloatQuad(FloatRect(523.0f - rectWidth, 6.0f, 15.0f, 25.0f)).bound ingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).boundingB ox()); 202 EXPECT_EQ(FloatQuad(FloatRect(523.0f - rectWidth, 6.0f, 15.0f, 25.0f)).bound ingBox(), rgm.mapToContainer(rect, getLayoutBox(webView, "CenterDiv")).boundingB ox());
203 203
204 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w ebView, "InnerDiv")); 204 rgm.pushMappingsToAncestor(getLayoutBox(webView, "OtherDiv"), getLayoutBox(w ebView, "InnerDiv"));
205 EXPECT_EQ(FloatPoint(522.0f, 12.0f), rgm.mapToContainer(point, getRenderBox( webView, "CenterDiv"))); 205 EXPECT_EQ(FloatPoint(522.0f, 12.0f), rgm.mapToContainer(point, getLayoutBox( webView, "CenterDiv")));
206 EXPECT_EQ(FloatQuad(FloatRect(522.0f - rectWidth, 12.0f, 15.0f, 25.0f)).boun dingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).bounding Box()); 206 EXPECT_EQ(FloatQuad(FloatRect(522.0f - rectWidth, 12.0f, 15.0f, 25.0f)).boun dingBox(), rgm.mapToContainer(rect, getLayoutBox(webView, "CenterDiv")).bounding Box());
207 207
208 EXPECT_EQ(FloatPoint(1.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(web View, "InnerDiv"))); 208 EXPECT_EQ(FloatPoint(1.0f, 6.0f), rgm.mapToContainer(point, getLayoutBox(web View, "InnerDiv")));
209 EXPECT_EQ(FloatQuad(FloatRect(1.0f, 6.0f, 15.0f, 25.0f)).boundingBox(), rgm. mapToContainer(rect, getRenderBox(webView, "InnerDiv")).boundingBox()); 209 EXPECT_EQ(FloatQuad(FloatRect(1.0f, 6.0f, 15.0f, 25.0f)).boundingBox(), rgm. mapToContainer(rect, getLayoutBox(webView, "InnerDiv")).boundingBox());
210 210
211 EXPECT_EQ(FloatPoint(821.0f, 31.0f), rgm.mapToContainer(point, nullptr)); 211 EXPECT_EQ(FloatPoint(821.0f, 31.0f), rgm.mapToContainer(point, nullptr));
212 EXPECT_EQ(FloatQuad(FloatRect(821.0f - rectWidth * scaleWidth, 31.0f, 15.0f * scaleWidth, 25.0f * scaleHeight)).boundingBox(), rgm.mapToContainer(rect, null ptr).boundingBox()); 212 EXPECT_EQ(FloatQuad(FloatRect(821.0f - rectWidth * scaleWidth, 31.0f, 15.0f * scaleWidth, 25.0f * scaleHeight)).boundingBox(), rgm.mapToContainer(rect, null ptr).boundingBox());
213 213
214 point = FloatPoint(10.0f, 25.0f); 214 point = FloatPoint(10.0f, 25.0f);
215 rect = FloatRect(10.0f, 25.0f, 15.0f, 25.0f); 215 rect = FloatRect(10.0f, 25.0f, 15.0f, 25.0f);
216 EXPECT_EQ(FloatPoint(512.0f, 37.0f), rgm.mapToContainer(point, getRenderBox( webView, "CenterDiv"))); 216 EXPECT_EQ(FloatPoint(512.0f, 37.0f), rgm.mapToContainer(point, getLayoutBox( webView, "CenterDiv")));
217 EXPECT_EQ(FloatQuad(FloatRect(512.0f - rectWidth, 37.0f, 15.0f, 25.0f)).boun dingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).bounding Box()); 217 EXPECT_EQ(FloatQuad(FloatRect(512.0f - rectWidth, 37.0f, 15.0f, 25.0f)).boun dingBox(), rgm.mapToContainer(rect, getLayoutBox(webView, "CenterDiv")).bounding Box());
218 218
219 EXPECT_EQ(FloatPoint(11.0f, 31.0f), rgm.mapToContainer(point, getRenderBox(w ebView, "InnerDiv"))); 219 EXPECT_EQ(FloatPoint(11.0f, 31.0f), rgm.mapToContainer(point, getLayoutBox(w ebView, "InnerDiv")));
220 EXPECT_EQ(FloatQuad(FloatRect(11.0f, 31.0f, 15.0f, 25.0f)).boundingBox(), rg m.mapToContainer(rect, getRenderBox(webView, "InnerDiv")).boundingBox()); 220 EXPECT_EQ(FloatQuad(FloatRect(11.0f, 31.0f, 15.0f, 25.0f)).boundingBox(), rg m.mapToContainer(rect, getLayoutBox(webView, "InnerDiv")).boundingBox());
221 221
222 EXPECT_EQ(FloatPoint(801.0f, 106.0f), rgm.mapToContainer(point, nullptr)); 222 EXPECT_EQ(FloatPoint(801.0f, 106.0f), rgm.mapToContainer(point, nullptr));
223 EXPECT_EQ(FloatQuad(FloatRect(801.0f - rectWidth * scaleWidth, 106.0f, 15.0f * scaleWidth, 25.0f * scaleHeight)).boundingBox(), rgm.mapToContainer(rect, nul lptr).boundingBox()); 223 EXPECT_EQ(FloatQuad(FloatRect(801.0f - rectWidth * scaleWidth, 106.0f, 15.0f * scaleWidth, 25.0f * scaleHeight)).boundingBox(), rgm.mapToContainer(rect, nul lptr).boundingBox());
224 } 224 }
225 225
226 TEST_F(LayoutGeometryMapTest, FixedGeometryTest) 226 TEST_F(LayoutGeometryMapTest, FixedGeometryTest)
227 { 227 {
228 registerMockedHttpURLLoad("rgm_fixed_position_test.html"); 228 registerMockedHttpURLLoad("rgm_fixed_position_test.html");
229 FrameTestHelpers::WebViewHelper webViewHelper; 229 FrameTestHelpers::WebViewHelper webViewHelper;
230 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_fixed_po sition_test.html", true, 0, 0); 230 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "rgm_fixed_po sition_test.html", true, 0, 0);
231 webView->resize(WebSize(1000, 1000)); 231 webView->resize(WebSize(1000, 1000));
232 webView->layout(); 232 webView->layout();
233 233
234 LayoutGeometryMap rgm; 234 LayoutGeometryMap rgm;
235 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); 235 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InitialDiv"), 0);
236 FloatPoint point; 236 FloatPoint point;
237 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); 237 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f);
238 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); 238 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr));
239 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr)); 239 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr));
240 240
241 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 241 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
242 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); 242 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr));
243 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr)); 243 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)), rgm.mapToContainer (rect, nullptr));
244 244
245 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); 245 rgm.pushMappingsToAncestor(getLayoutBox(webView, "InnerDiv"), 0);
246 EXPECT_EQ(FloatPoint(20.0f, 14.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "CenterDiv"))); 246 EXPECT_EQ(FloatPoint(20.0f, 14.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "CenterDiv")));
247 EXPECT_EQ(FloatQuad(FloatRect(20.0f, 14.0f, 15.0f, 25.0f)), rgm.mapToContain er(rect, nullptr)); 247 EXPECT_EQ(FloatQuad(FloatRect(20.0f, 14.0f, 15.0f, 25.0f)), rgm.mapToContain er(rect, nullptr));
248 248
249 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w ebView, "InnerDiv")); 249 rgm.pushMappingsToAncestor(getLayoutBox(webView, "OtherDiv"), getLayoutBox(w ebView, "InnerDiv"));
250 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "CenterDiv"))); 250 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "CenterDiv")));
251 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 20.0f, 15.0f, 25.0f)), rgm.mapToContain er(rect, getRenderContainer(webView, "CenterDiv"))); 251 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 20.0f, 15.0f, 25.0f)), rgm.mapToContain er(rect, getRenderContainer(webView, "CenterDiv")));
252 252
253 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "InnerDiv"))); 253 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta iner(webView, "InnerDiv")));
254 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, nullptr)); 254 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, nullptr));
255 255
256 point = FloatPoint(10.0f, 25.0f); 256 point = FloatPoint(10.0f, 25.0f);
257 rect = FloatRect(22.0f, 15.2f, 15.3f, 0.0f); 257 rect = FloatRect(22.0f, 15.2f, 15.3f, 0.0f);
258 EXPECT_EQ(FloatQuad(FloatRect(43.0f, 35.2f, 15.3f, 0.0f)), rgm.mapToContaine r(rect, getRenderContainer(webView, "CenterDiv"))); 258 EXPECT_EQ(FloatQuad(FloatRect(43.0f, 35.2f, 15.3f, 0.0f)), rgm.mapToContaine r(rect, getRenderContainer(webView, "CenterDiv")));
259 259
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 353
354 // The document is 1000f wide (we resized to that size). 354 // The document is 1000f wide (we resized to that size).
355 // We have a 8px margin on either side of the document. 355 // We have a 8px margin on either side of the document.
356 // Between each column we have a 10px gap, and we have 3 columns. 356 // Between each column we have a 10px gap, and we have 3 columns.
357 // The width of a given column is (1000 - 16 - 20)/3. 357 // The width of a given column is (1000 - 16 - 20)/3.
358 // The total offset between any column and it's neighbour is width + 10px 358 // The total offset between any column and it's neighbour is width + 10px
359 // (for the gap). 359 // (for the gap).
360 float offset = (1000.0f - 16.0f - 20.0f) / 3.0f + 10.0f; 360 float offset = (1000.0f - 16.0f - 20.0f) / 3.0f + 10.0f;
361 361
362 LayoutGeometryMap rgm; 362 LayoutGeometryMap rgm;
363 rgm.pushMappingsToAncestor(getRenderBox(webView, "A"), 0); 363 rgm.pushMappingsToAncestor(getLayoutBox(webView, "A"), 0);
364 FloatPoint point; 364 FloatPoint point;
365 FloatRect rect(0.0f, 0.0f, 5.0f, 3.0f); 365 FloatRect rect(0.0f, 0.0f, 5.0f, 3.0f);
366 366
367 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); 367 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr));
368 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr)); 368 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr));
369 369
370 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 370 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
371 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); 371 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr));
372 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr)); 372 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr));
373 373
374 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col1"), 0); 374 rgm.pushMappingsToAncestor(getLayoutBox(webView, "Col1"), 0);
375 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); 375 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr));
376 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr)); 376 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r ect, nullptr));
377 377
378 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 378 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
379 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col2"), nullptr); 379 rgm.pushMappingsToAncestor(getLayoutBox(webView, "Col2"), nullptr);
380 EXPECT_NEAR(8.0f + offset, rgm.mapToContainer(point, nullptr).x(), 0.1f); 380 EXPECT_NEAR(8.0f + offset, rgm.mapToContainer(point, nullptr).x(), 0.1f);
381 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); 381 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f);
382 EXPECT_NEAR(8.0f + offset, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x (), 0.1f); 382 EXPECT_NEAR(8.0f + offset, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x (), 0.1f);
383 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f) ; 383 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f) ;
384 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); 384 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width());
385 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); 385 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height());
386 386
387 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); 387 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr));
388 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col3"), nullptr); 388 rgm.pushMappingsToAncestor(getLayoutBox(webView, "Col3"), nullptr);
389 EXPECT_NEAR(8.0f + offset * 2.0f, rgm.mapToContainer(point, nullptr).x(), 0. 1f); 389 EXPECT_NEAR(8.0f + offset * 2.0f, rgm.mapToContainer(point, nullptr).x(), 0. 1f);
390 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); 390 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f);
391 EXPECT_NEAR(8.0f + offset * 2.0f, rectFromQuad(rgm.mapToContainer(rect, null ptr)).x(), 0.1f); 391 EXPECT_NEAR(8.0f + offset * 2.0f, rectFromQuad(rgm.mapToContainer(rect, null ptr)).x(), 0.1f);
392 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f) ; 392 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f) ;
393 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); 393 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width());
394 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); 394 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height());
395 395
396 } 396 }
397 } // namespace :: 397 } // namespace ::
OLDNEW
« no previous file with comments | « Source/web/WebPluginContainerImpl.cpp ('k') | Source/web/tests/ScrollingCoordinatorTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698