2 * Copyright (C) 2013 Google Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above
11 * copyright notice, this list of conditions and the following disclaimer
12 * in the documentation and/or other materials provided with the
14 * * Neither the name of Google Inc. nor the names of its
15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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.
33 #include "core/frame/FrameView.h"
34 #include "core/frame/LocalFrame.h"
35 #include "core/frame/Settings.h"
36 #include "core/page/InjectedStyleSheets.h"
37 #include "core/page/Page.h"
38 #include "core/page/PageScaleConstraints.h"
39 #include "core/testing/URLTestHelpers.h"
40 #include "platform/Length.h"
41 #include "platform/geometry/IntPoint.h"
42 #include "platform/geometry/IntRect.h"
43 #include "platform/geometry/IntSize.h"
44 #include "platform/scroll/ScrollbarTheme.h"
45 #include "public/platform/Platform.h"
46 #include "public/platform/WebUnitTestSupport.h"
47 #include "public/web/WebConsoleMessage.h"
48 #include "public/web/WebFrame.h"
49 #include "public/web/WebScriptSource.h"
50 #include "public/web/WebSettings.h"
51 #include "public/web/WebViewClient.h"
52 #include "web/tests/FrameTestHelpers.h"
53 #include <gmock/gmock.h>
54 #include <gtest/gtest.h>
60 using blink::FrameTestHelpers::runPendingTasks;
61 using namespace blink;
63 class ViewportTest : public testing::Test {
66 : m_baseURL("http://www.test.com/")
67 , m_chromeURL("chrome://")
71 virtual ~ViewportTest()
73 Platform::current()->unitTestSupport()->unregisterAllMockedURLs();
76 void registerMockedHttpURLLoad(const std::string& fileName)
78 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8(fileName.c_str()));
81 void registerMockedChromeURLLoad(const std::string& fileName)
83 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_chromeURL.c_str()), WebString::fromUTF8(fileName.c_str()));
86 void executeScript(WebFrame* frame, const WebString& code)
88 frame->executeScript(WebScriptSource(code));
92 std::string m_baseURL;
93 std::string m_chromeURL;
96 class UseMockScrollbarSettings {
98 UseMockScrollbarSettings()
100 Settings::setMockScrollbarsEnabled(true);
101 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true);
102 EXPECT_TRUE(ScrollbarTheme::theme()->usesOverlayScrollbars());
105 ~UseMockScrollbarSettings()
107 Settings::setMockScrollbarsEnabled(false);
108 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false);
112 static void setViewportSettings(WebSettings* settings)
114 settings->setViewportEnabled(true);
115 settings->setViewportMetaEnabled(true);
116 settings->setMainFrameResizesAreOrientationChanges(true);
119 static PageScaleConstraints runViewportTest(Page* page, int initialWidth, int initialHeight)
121 IntSize initialViewportSize(initialWidth, initialHeight);
122 toLocalFrame(page->mainFrame())->view()->setFrameRect(IntRect(IntPoint::zero(), initialViewportSize));
123 ViewportDescription description = page->viewportDescription();
124 PageScaleConstraints constraints = description.resolve(initialViewportSize, Length(980, blink::Fixed));
126 constraints.fitToContentsWidth(constraints.layoutSize.width(), initialWidth);
130 TEST_F(ViewportTest, viewport1)
132 UseMockScrollbarSettings mockScrollbarSettings;
133 registerMockedHttpURLLoad("viewport/viewport-1.html");
135 FrameTestHelpers::WebViewHelper webViewHelper;
136 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
138 Page* page = webViewHelper.webViewImpl()->page();
139 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
141 EXPECT_EQ(320, constraints.layoutSize.width());
142 EXPECT_EQ(352, constraints.layoutSize.height());
143 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
144 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
145 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
146 EXPECT_TRUE(page->viewportDescription().userZoom);
149 TEST_F(ViewportTest, viewport2)
151 UseMockScrollbarSettings mockScrollbarSettings;
152 registerMockedHttpURLLoad("viewport/viewport-2.html");
154 FrameTestHelpers::WebViewHelper webViewHelper;
155 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-2.html", true, 0, 0, setViewportSettings);
157 Page* page = webViewHelper.webViewImpl()->page();
158 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
160 EXPECT_EQ(980, constraints.layoutSize.width());
161 EXPECT_EQ(352, constraints.layoutSize.height());
162 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
163 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
164 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
165 EXPECT_TRUE(page->viewportDescription().userZoom);
168 TEST_F(ViewportTest, viewport3)
170 UseMockScrollbarSettings mockScrollbarSettings;
171 registerMockedHttpURLLoad("viewport/viewport-3.html");
173 FrameTestHelpers::WebViewHelper webViewHelper;
174 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-3.html", true, 0, 0, setViewportSettings);
176 Page* page = webViewHelper.webViewImpl()->page();
177 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
179 EXPECT_EQ(320, constraints.layoutSize.width());
180 EXPECT_EQ(352, constraints.layoutSize.height());
181 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
182 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
183 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
184 EXPECT_TRUE(page->viewportDescription().userZoom);
187 TEST_F(ViewportTest, viewport4)
189 UseMockScrollbarSettings mockScrollbarSettings;
190 registerMockedHttpURLLoad("viewport/viewport-4.html");
192 FrameTestHelpers::WebViewHelper webViewHelper;
193 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-4.html", true, 0, 0, setViewportSettings);
195 Page* page = webViewHelper.webViewImpl()->page();
196 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
198 EXPECT_EQ(160, constraints.layoutSize.width());
199 EXPECT_EQ(176, constraints.layoutSize.height());
200 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
201 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
202 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
203 EXPECT_TRUE(page->viewportDescription().userZoom);
206 TEST_F(ViewportTest, viewport5)
208 UseMockScrollbarSettings mockScrollbarSettings;
209 registerMockedHttpURLLoad("viewport/viewport-5.html");
211 FrameTestHelpers::WebViewHelper webViewHelper;
212 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-5.html", true, 0, 0, setViewportSettings);
214 Page* page = webViewHelper.webViewImpl()->page();
215 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
217 EXPECT_EQ(640, constraints.layoutSize.width());
218 EXPECT_EQ(704, constraints.layoutSize.height());
219 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
220 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
221 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
222 EXPECT_TRUE(page->viewportDescription().userZoom);
225 TEST_F(ViewportTest, viewport6)
227 UseMockScrollbarSettings mockScrollbarSettings;
228 registerMockedHttpURLLoad("viewport/viewport-6.html");
230 FrameTestHelpers::WebViewHelper webViewHelper;
231 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-6.html", true, 0, 0, setViewportSettings);
233 Page* page = webViewHelper.webViewImpl()->page();
234 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
236 EXPECT_EQ(200, constraints.layoutSize.width());
237 EXPECT_EQ(220, constraints.layoutSize.height());
238 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
239 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
240 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
241 EXPECT_TRUE(page->viewportDescription().userZoom);
244 TEST_F(ViewportTest, viewport7)
246 UseMockScrollbarSettings mockScrollbarSettings;
247 registerMockedHttpURLLoad("viewport/viewport-7.html");
249 FrameTestHelpers::WebViewHelper webViewHelper;
250 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-7.html", true, 0, 0, setViewportSettings);
252 Page* page = webViewHelper.webViewImpl()->page();
253 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
255 EXPECT_EQ(1280, constraints.layoutSize.width());
256 EXPECT_EQ(1408, constraints.layoutSize.height());
257 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
258 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
259 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
260 EXPECT_TRUE(page->viewportDescription().userZoom);
263 TEST_F(ViewportTest, viewport8)
265 UseMockScrollbarSettings mockScrollbarSettings;
266 registerMockedHttpURLLoad("viewport/viewport-8.html");
268 FrameTestHelpers::WebViewHelper webViewHelper;
269 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-8.html", true, 0, 0, setViewportSettings);
271 Page* page = webViewHelper.webViewImpl()->page();
272 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
274 EXPECT_EQ(1280, constraints.layoutSize.width());
275 EXPECT_EQ(1408, constraints.layoutSize.height());
276 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
277 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
278 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
279 EXPECT_TRUE(page->viewportDescription().userZoom);
282 TEST_F(ViewportTest, viewport9)
284 UseMockScrollbarSettings mockScrollbarSettings;
285 registerMockedHttpURLLoad("viewport/viewport-9.html");
287 FrameTestHelpers::WebViewHelper webViewHelper;
288 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-9.html", true, 0, 0, setViewportSettings);
290 Page* page = webViewHelper.webViewImpl()->page();
291 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
293 EXPECT_EQ(1280, constraints.layoutSize.width());
294 EXPECT_EQ(1408, constraints.layoutSize.height());
295 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
296 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
297 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
298 EXPECT_TRUE(page->viewportDescription().userZoom);
301 TEST_F(ViewportTest, viewport10)
303 UseMockScrollbarSettings mockScrollbarSettings;
304 registerMockedHttpURLLoad("viewport/viewport-10.html");
306 FrameTestHelpers::WebViewHelper webViewHelper;
307 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-10.html", true, 0, 0, setViewportSettings);
309 Page* page = webViewHelper.webViewImpl()->page();
310 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
312 EXPECT_EQ(1280, constraints.layoutSize.width());
313 EXPECT_EQ(1408, constraints.layoutSize.height());
314 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
315 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
316 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
317 EXPECT_TRUE(page->viewportDescription().userZoom);
320 TEST_F(ViewportTest, viewport11)
322 UseMockScrollbarSettings mockScrollbarSettings;
323 registerMockedHttpURLLoad("viewport/viewport-11.html");
325 FrameTestHelpers::WebViewHelper webViewHelper;
326 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-11.html", true, 0, 0, setViewportSettings);
328 Page* page = webViewHelper.webViewImpl()->page();
329 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
331 EXPECT_EQ(980, constraints.layoutSize.width());
332 EXPECT_EQ(1078, constraints.layoutSize.height());
333 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
334 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
335 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
336 EXPECT_TRUE(page->viewportDescription().userZoom);
339 TEST_F(ViewportTest, viewport12)
341 UseMockScrollbarSettings mockScrollbarSettings;
342 registerMockedHttpURLLoad("viewport/viewport-12.html");
344 FrameTestHelpers::WebViewHelper webViewHelper;
345 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-12.html", true, 0, 0, setViewportSettings);
347 Page* page = webViewHelper.webViewImpl()->page();
348 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
350 EXPECT_EQ(640, constraints.layoutSize.width());
351 EXPECT_EQ(704, constraints.layoutSize.height());
352 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
353 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
354 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
355 EXPECT_TRUE(page->viewportDescription().userZoom);
358 TEST_F(ViewportTest, viewport13)
360 UseMockScrollbarSettings mockScrollbarSettings;
361 registerMockedHttpURLLoad("viewport/viewport-13.html");
363 FrameTestHelpers::WebViewHelper webViewHelper;
364 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-13.html", true, 0, 0, setViewportSettings);
366 Page* page = webViewHelper.webViewImpl()->page();
367 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
369 EXPECT_EQ(1280, constraints.layoutSize.width());
370 EXPECT_EQ(1408, constraints.layoutSize.height());
371 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
372 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
373 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
374 EXPECT_TRUE(page->viewportDescription().userZoom);
377 TEST_F(ViewportTest, viewport14)
379 UseMockScrollbarSettings mockScrollbarSettings;
380 registerMockedHttpURLLoad("viewport/viewport-14.html");
382 FrameTestHelpers::WebViewHelper webViewHelper;
383 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-14.html", true, 0, 0, setViewportSettings);
385 Page* page = webViewHelper.webViewImpl()->page();
386 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
388 EXPECT_EQ(320, constraints.layoutSize.width());
389 EXPECT_EQ(352, constraints.layoutSize.height());
390 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
391 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
392 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
393 EXPECT_TRUE(page->viewportDescription().userZoom);
396 TEST_F(ViewportTest, viewport15)
398 UseMockScrollbarSettings mockScrollbarSettings;
399 registerMockedHttpURLLoad("viewport/viewport-15.html");
401 FrameTestHelpers::WebViewHelper webViewHelper;
402 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettings);
404 Page* page = webViewHelper.webViewImpl()->page();
405 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
407 EXPECT_EQ(980, constraints.layoutSize.width());
408 EXPECT_EQ(1078, constraints.layoutSize.height());
409 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
410 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
411 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
412 EXPECT_TRUE(page->viewportDescription().userZoom);
415 TEST_F(ViewportTest, viewport16)
417 UseMockScrollbarSettings mockScrollbarSettings;
418 registerMockedHttpURLLoad("viewport/viewport-16.html");
420 FrameTestHelpers::WebViewHelper webViewHelper;
421 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-16.html", true, 0, 0, setViewportSettings);
423 Page* page = webViewHelper.webViewImpl()->page();
424 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
426 EXPECT_EQ(980, constraints.layoutSize.width());
427 EXPECT_EQ(1078, constraints.layoutSize.height());
428 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
429 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
430 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
431 EXPECT_TRUE(page->viewportDescription().userZoom);
434 TEST_F(ViewportTest, viewport17)
436 UseMockScrollbarSettings mockScrollbarSettings;
437 registerMockedHttpURLLoad("viewport/viewport-17.html");
439 FrameTestHelpers::WebViewHelper webViewHelper;
440 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-17.html", true, 0, 0, setViewportSettings);
442 Page* page = webViewHelper.webViewImpl()->page();
443 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
445 EXPECT_EQ(980, constraints.layoutSize.width());
446 EXPECT_EQ(1078, constraints.layoutSize.height());
447 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
448 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
449 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
450 EXPECT_TRUE(page->viewportDescription().userZoom);
453 TEST_F(ViewportTest, viewport18)
455 UseMockScrollbarSettings mockScrollbarSettings;
456 registerMockedHttpURLLoad("viewport/viewport-18.html");
458 FrameTestHelpers::WebViewHelper webViewHelper;
459 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-18.html", true, 0, 0, setViewportSettings);
461 Page* page = webViewHelper.webViewImpl()->page();
462 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
464 EXPECT_EQ(64, constraints.layoutSize.width());
465 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
466 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
467 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
468 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
469 EXPECT_TRUE(page->viewportDescription().userZoom);
472 TEST_F(ViewportTest, viewport19)
474 UseMockScrollbarSettings mockScrollbarSettings;
475 registerMockedHttpURLLoad("viewport/viewport-19.html");
477 FrameTestHelpers::WebViewHelper webViewHelper;
478 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-19.html", true, 0, 0, setViewportSettings);
480 Page* page = webViewHelper.webViewImpl()->page();
481 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
483 EXPECT_EQ(160, constraints.layoutSize.width());
484 EXPECT_EQ(176, constraints.layoutSize.height());
485 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
486 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
487 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
488 EXPECT_TRUE(page->viewportDescription().userZoom);
491 TEST_F(ViewportTest, viewport20)
493 UseMockScrollbarSettings mockScrollbarSettings;
494 registerMockedHttpURLLoad("viewport/viewport-20.html");
496 FrameTestHelpers::WebViewHelper webViewHelper;
497 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-20.html", true, 0, 0, setViewportSettings);
499 Page* page = webViewHelper.webViewImpl()->page();
500 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
502 EXPECT_EQ(980, constraints.layoutSize.width());
503 EXPECT_EQ(1078, constraints.layoutSize.height());
504 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
505 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
506 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
507 EXPECT_TRUE(page->viewportDescription().userZoom);
510 TEST_F(ViewportTest, viewport21)
512 UseMockScrollbarSettings mockScrollbarSettings;
513 registerMockedHttpURLLoad("viewport/viewport-21.html");
515 FrameTestHelpers::WebViewHelper webViewHelper;
516 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-21.html", true, 0, 0, setViewportSettings);
518 Page* page = webViewHelper.webViewImpl()->page();
519 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
521 EXPECT_EQ(980, constraints.layoutSize.width());
522 EXPECT_EQ(1078, constraints.layoutSize.height());
523 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
524 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
525 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
526 EXPECT_TRUE(page->viewportDescription().userZoom);
529 TEST_F(ViewportTest, viewport22)
531 UseMockScrollbarSettings mockScrollbarSettings;
532 registerMockedHttpURLLoad("viewport/viewport-22.html");
534 FrameTestHelpers::WebViewHelper webViewHelper;
535 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-22.html", true, 0, 0, setViewportSettings);
537 Page* page = webViewHelper.webViewImpl()->page();
538 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
540 EXPECT_EQ(980, constraints.layoutSize.width());
541 EXPECT_EQ(1078, constraints.layoutSize.height());
542 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
543 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
544 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
545 EXPECT_TRUE(page->viewportDescription().userZoom);
548 TEST_F(ViewportTest, viewport23)
550 UseMockScrollbarSettings mockScrollbarSettings;
551 registerMockedHttpURLLoad("viewport/viewport-23.html");
553 FrameTestHelpers::WebViewHelper webViewHelper;
554 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-23.html", true, 0, 0, setViewportSettings);
556 Page* page = webViewHelper.webViewImpl()->page();
557 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
559 EXPECT_EQ(980, constraints.layoutSize.width());
560 EXPECT_EQ(1078, constraints.layoutSize.height());
561 EXPECT_NEAR(3.0f, constraints.initialScale, 0.01f);
562 EXPECT_NEAR(3.0f, constraints.minimumScale, 0.01f);
563 EXPECT_NEAR(3.0f, constraints.maximumScale, 0.01f);
564 EXPECT_TRUE(page->viewportDescription().userZoom);
567 TEST_F(ViewportTest, viewport24)
569 UseMockScrollbarSettings mockScrollbarSettings;
570 registerMockedHttpURLLoad("viewport/viewport-24.html");
572 FrameTestHelpers::WebViewHelper webViewHelper;
573 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-24.html", true, 0, 0, setViewportSettings);
575 Page* page = webViewHelper.webViewImpl()->page();
576 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
578 EXPECT_EQ(980, constraints.layoutSize.width());
579 EXPECT_EQ(1078, constraints.layoutSize.height());
580 EXPECT_NEAR(4.0f, constraints.initialScale, 0.01f);
581 EXPECT_NEAR(4.0f, constraints.minimumScale, 0.01f);
582 EXPECT_NEAR(4.0f, constraints.maximumScale, 0.01f);
583 EXPECT_TRUE(page->viewportDescription().userZoom);
586 TEST_F(ViewportTest, viewport25)
588 UseMockScrollbarSettings mockScrollbarSettings;
589 registerMockedHttpURLLoad("viewport/viewport-25.html");
591 FrameTestHelpers::WebViewHelper webViewHelper;
592 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-25.html", true, 0, 0, setViewportSettings);
594 Page* page = webViewHelper.webViewImpl()->page();
595 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
597 EXPECT_EQ(980, constraints.layoutSize.width());
598 EXPECT_EQ(1078, constraints.layoutSize.height());
599 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
600 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
601 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
602 EXPECT_TRUE(page->viewportDescription().userZoom);
605 TEST_F(ViewportTest, viewport26)
607 UseMockScrollbarSettings mockScrollbarSettings;
608 registerMockedHttpURLLoad("viewport/viewport-26.html");
610 FrameTestHelpers::WebViewHelper webViewHelper;
611 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-26.html", true, 0, 0, setViewportSettings);
613 Page* page = webViewHelper.webViewImpl()->page();
614 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
616 EXPECT_EQ(980, constraints.layoutSize.width());
617 EXPECT_EQ(1078, constraints.layoutSize.height());
618 EXPECT_NEAR(8.0f, constraints.initialScale, 0.01f);
619 EXPECT_NEAR(8.0f, constraints.minimumScale, 0.01f);
620 EXPECT_NEAR(9.0f, constraints.maximumScale, 0.01f);
621 EXPECT_TRUE(page->viewportDescription().userZoom);
624 TEST_F(ViewportTest, viewport27)
626 UseMockScrollbarSettings mockScrollbarSettings;
627 registerMockedHttpURLLoad("viewport/viewport-27.html");
629 FrameTestHelpers::WebViewHelper webViewHelper;
630 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-27.html", true, 0, 0, setViewportSettings);
632 Page* page = webViewHelper.webViewImpl()->page();
633 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
635 EXPECT_EQ(980, constraints.layoutSize.width());
636 EXPECT_EQ(1078, constraints.layoutSize.height());
637 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
638 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
639 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
640 EXPECT_TRUE(page->viewportDescription().userZoom);
643 TEST_F(ViewportTest, viewport28)
645 UseMockScrollbarSettings mockScrollbarSettings;
646 registerMockedHttpURLLoad("viewport/viewport-28.html");
648 FrameTestHelpers::WebViewHelper webViewHelper;
649 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-28.html", true, 0, 0, setViewportSettings);
651 Page* page = webViewHelper.webViewImpl()->page();
652 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
654 EXPECT_EQ(352, constraints.layoutSize.width());
655 EXPECT_NEAR(387.2, constraints.layoutSize.height(), 0.01);
656 EXPECT_NEAR(0.91f, constraints.initialScale, 0.01f);
657 EXPECT_NEAR(0.91f, constraints.minimumScale, 0.01f);
658 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
659 EXPECT_TRUE(page->viewportDescription().userZoom);
662 TEST_F(ViewportTest, viewport29)
664 UseMockScrollbarSettings mockScrollbarSettings;
665 registerMockedHttpURLLoad("viewport/viewport-29.html");
667 FrameTestHelpers::WebViewHelper webViewHelper;
668 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-29.html", true, 0, 0, setViewportSettings);
670 Page* page = webViewHelper.webViewImpl()->page();
671 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
673 EXPECT_EQ(700, constraints.layoutSize.width());
674 EXPECT_EQ(770, constraints.layoutSize.height());
675 EXPECT_NEAR(0.46f, constraints.initialScale, 0.01f);
676 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
677 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
678 EXPECT_TRUE(page->viewportDescription().userZoom);
681 TEST_F(ViewportTest, viewport30)
683 UseMockScrollbarSettings mockScrollbarSettings;
684 registerMockedHttpURLLoad("viewport/viewport-30.html");
686 FrameTestHelpers::WebViewHelper webViewHelper;
687 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-30.html", true, 0, 0, setViewportSettings);
689 Page* page = webViewHelper.webViewImpl()->page();
690 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
692 EXPECT_EQ(200, constraints.layoutSize.width());
693 EXPECT_EQ(220, constraints.layoutSize.height());
694 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
695 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
696 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
697 EXPECT_TRUE(page->viewportDescription().userZoom);
700 TEST_F(ViewportTest, viewport31)
702 UseMockScrollbarSettings mockScrollbarSettings;
703 registerMockedHttpURLLoad("viewport/viewport-31.html");
705 FrameTestHelpers::WebViewHelper webViewHelper;
706 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-31.html", true, 0, 0, setViewportSettings);
708 Page* page = webViewHelper.webViewImpl()->page();
709 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
711 EXPECT_EQ(980, constraints.layoutSize.width());
712 EXPECT_EQ(700, constraints.layoutSize.height());
713 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
714 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
715 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
716 EXPECT_TRUE(page->viewportDescription().userZoom);
719 TEST_F(ViewportTest, viewport32)
721 UseMockScrollbarSettings mockScrollbarSettings;
722 registerMockedHttpURLLoad("viewport/viewport-32.html");
724 FrameTestHelpers::WebViewHelper webViewHelper;
725 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-32.html", true, 0, 0, setViewportSettings);
727 Page* page = webViewHelper.webViewImpl()->page();
728 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
730 EXPECT_EQ(980, constraints.layoutSize.width());
731 EXPECT_EQ(200, constraints.layoutSize.height());
732 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
733 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
734 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
735 EXPECT_TRUE(page->viewportDescription().userZoom);
738 TEST_F(ViewportTest, viewport33)
740 UseMockScrollbarSettings mockScrollbarSettings;
741 registerMockedHttpURLLoad("viewport/viewport-33.html");
743 FrameTestHelpers::WebViewHelper webViewHelper;
744 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-33.html", true, 0, 0, setViewportSettings);
746 Page* page = webViewHelper.webViewImpl()->page();
747 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
749 EXPECT_EQ(320, constraints.layoutSize.width());
750 EXPECT_EQ(352, constraints.layoutSize.height());
751 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
752 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
753 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
754 EXPECT_TRUE(page->viewportDescription().userZoom);
757 TEST_F(ViewportTest, viewport34)
759 UseMockScrollbarSettings mockScrollbarSettings;
760 registerMockedHttpURLLoad("viewport/viewport-34.html");
762 FrameTestHelpers::WebViewHelper webViewHelper;
763 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-34.html", true, 0, 0, setViewportSettings);
765 Page* page = webViewHelper.webViewImpl()->page();
766 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
768 EXPECT_EQ(640, constraints.layoutSize.width());
769 EXPECT_EQ(704, constraints.layoutSize.height());
770 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
771 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
772 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
773 EXPECT_TRUE(page->viewportDescription().userZoom);
776 TEST_F(ViewportTest, viewport35)
778 UseMockScrollbarSettings mockScrollbarSettings;
779 registerMockedHttpURLLoad("viewport/viewport-35.html");
781 FrameTestHelpers::WebViewHelper webViewHelper;
782 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-35.html", true, 0, 0, setViewportSettings);
784 Page* page = webViewHelper.webViewImpl()->page();
785 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
787 EXPECT_EQ(1280, constraints.layoutSize.width());
788 EXPECT_EQ(1408, constraints.layoutSize.height());
789 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
790 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
791 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
792 EXPECT_TRUE(page->viewportDescription().userZoom);
795 TEST_F(ViewportTest, viewport36)
797 UseMockScrollbarSettings mockScrollbarSettings;
798 registerMockedHttpURLLoad("viewport/viewport-36.html");
800 FrameTestHelpers::WebViewHelper webViewHelper;
801 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-36.html", true, 0, 0, setViewportSettings);
803 Page* page = webViewHelper.webViewImpl()->page();
804 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
806 EXPECT_NEAR(636.36, constraints.layoutSize.width(), 0.01f);
807 EXPECT_EQ(700, constraints.layoutSize.height());
808 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
809 EXPECT_NEAR(0.50f, constraints.minimumScale, 0.01f);
810 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
811 EXPECT_TRUE(page->viewportDescription().userZoom);
814 TEST_F(ViewportTest, viewport37)
816 UseMockScrollbarSettings mockScrollbarSettings;
817 registerMockedHttpURLLoad("viewport/viewport-37.html");
819 FrameTestHelpers::WebViewHelper webViewHelper;
820 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-37.html", true, 0, 0, setViewportSettings);
822 Page* page = webViewHelper.webViewImpl()->page();
823 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
825 EXPECT_EQ(320, constraints.layoutSize.width());
826 EXPECT_EQ(352, constraints.layoutSize.height());
827 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
828 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
829 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
830 EXPECT_TRUE(page->viewportDescription().userZoom);
833 TEST_F(ViewportTest, viewport38)
835 UseMockScrollbarSettings mockScrollbarSettings;
836 registerMockedHttpURLLoad("viewport/viewport-38.html");
838 FrameTestHelpers::WebViewHelper webViewHelper;
839 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-38.html", true, 0, 0, setViewportSettings);
841 Page* page = webViewHelper.webViewImpl()->page();
842 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
844 EXPECT_EQ(640, constraints.layoutSize.width());
845 EXPECT_EQ(704, constraints.layoutSize.height());
846 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
847 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
848 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
849 EXPECT_TRUE(page->viewportDescription().userZoom);
852 TEST_F(ViewportTest, viewport39)
854 UseMockScrollbarSettings mockScrollbarSettings;
855 registerMockedHttpURLLoad("viewport/viewport-39.html");
857 FrameTestHelpers::WebViewHelper webViewHelper;
858 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-39.html", true, 0, 0, setViewportSettings);
860 Page* page = webViewHelper.webViewImpl()->page();
861 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
863 EXPECT_EQ(200, constraints.layoutSize.width());
864 EXPECT_EQ(700, constraints.layoutSize.height());
865 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
866 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
867 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
868 EXPECT_TRUE(page->viewportDescription().userZoom);
871 TEST_F(ViewportTest, viewport40)
873 UseMockScrollbarSettings mockScrollbarSettings;
874 registerMockedHttpURLLoad("viewport/viewport-40.html");
876 FrameTestHelpers::WebViewHelper webViewHelper;
877 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-40.html", true, 0, 0, setViewportSettings);
879 Page* page = webViewHelper.webViewImpl()->page();
880 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
882 EXPECT_EQ(700, constraints.layoutSize.width());
883 EXPECT_EQ(352, constraints.layoutSize.height());
884 EXPECT_NEAR(0.46f, constraints.initialScale, 0.01f);
885 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
886 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
887 EXPECT_TRUE(page->viewportDescription().userZoom);
890 TEST_F(ViewportTest, viewport41)
892 UseMockScrollbarSettings mockScrollbarSettings;
893 registerMockedHttpURLLoad("viewport/viewport-41.html");
895 FrameTestHelpers::WebViewHelper webViewHelper;
896 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-41.html", true, 0, 0, setViewportSettings);
898 Page* page = webViewHelper.webViewImpl()->page();
899 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
901 EXPECT_EQ(1000, constraints.layoutSize.width());
902 EXPECT_EQ(704, constraints.layoutSize.height());
903 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
904 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
905 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
906 EXPECT_TRUE(page->viewportDescription().userZoom);
909 TEST_F(ViewportTest, viewport42)
911 UseMockScrollbarSettings mockScrollbarSettings;
912 registerMockedHttpURLLoad("viewport/viewport-42.html");
914 FrameTestHelpers::WebViewHelper webViewHelper;
915 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-42.html", true, 0, 0, setViewportSettings);
917 Page* page = webViewHelper.webViewImpl()->page();
918 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
920 EXPECT_EQ(320, constraints.layoutSize.width());
921 EXPECT_EQ(1000, constraints.layoutSize.height());
922 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
923 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
924 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
925 EXPECT_TRUE(page->viewportDescription().userZoom);
928 TEST_F(ViewportTest, viewport43)
930 UseMockScrollbarSettings mockScrollbarSettings;
931 registerMockedHttpURLLoad("viewport/viewport-43.html");
933 FrameTestHelpers::WebViewHelper webViewHelper;
934 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-43.html", true, 0, 0, setViewportSettings);
936 Page* page = webViewHelper.webViewImpl()->page();
937 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
939 EXPECT_EQ(64, constraints.layoutSize.width());
940 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
941 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
942 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
943 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
944 EXPECT_TRUE(page->viewportDescription().userZoom);
947 TEST_F(ViewportTest, viewport44)
949 UseMockScrollbarSettings mockScrollbarSettings;
950 registerMockedHttpURLLoad("viewport/viewport-44.html");
952 FrameTestHelpers::WebViewHelper webViewHelper;
953 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-44.html", true, 0, 0, setViewportSettings);
955 Page* page = webViewHelper.webViewImpl()->page();
956 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
958 EXPECT_EQ(10000, constraints.layoutSize.width());
959 EXPECT_EQ(10000, constraints.layoutSize.height());
960 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
961 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
962 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
963 EXPECT_TRUE(page->viewportDescription().userZoom);
966 TEST_F(ViewportTest, viewport45)
968 UseMockScrollbarSettings mockScrollbarSettings;
969 registerMockedHttpURLLoad("viewport/viewport-45.html");
971 FrameTestHelpers::WebViewHelper webViewHelper;
972 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-45.html", true, 0, 0, setViewportSettings);
974 Page* page = webViewHelper.webViewImpl()->page();
975 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
977 EXPECT_EQ(3200, constraints.layoutSize.width());
978 EXPECT_EQ(3520, constraints.layoutSize.height());
979 EXPECT_NEAR(0.1f, constraints.initialScale, 0.01f);
980 EXPECT_NEAR(0.1f, constraints.minimumScale, 0.01f);
981 EXPECT_NEAR(0.1f, constraints.maximumScale, 0.01f);
982 EXPECT_TRUE(page->viewportDescription().userZoom);
985 TEST_F(ViewportTest, viewport46)
987 UseMockScrollbarSettings mockScrollbarSettings;
988 registerMockedHttpURLLoad("viewport/viewport-46.html");
990 FrameTestHelpers::WebViewHelper webViewHelper;
991 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-46.html", true, 0, 0, setViewportSettings);
993 Page* page = webViewHelper.webViewImpl()->page();
994 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
996 EXPECT_EQ(32, constraints.layoutSize.width());
997 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01f);
998 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
999 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1000 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1001 EXPECT_TRUE(page->viewportDescription().userZoom);
1004 TEST_F(ViewportTest, viewport47)
1006 UseMockScrollbarSettings mockScrollbarSettings;
1007 registerMockedHttpURLLoad("viewport/viewport-47.html");
1009 FrameTestHelpers::WebViewHelper webViewHelper;
1010 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-47.html", true, 0, 0, setViewportSettings);
1012 Page* page = webViewHelper.webViewImpl()->page();
1013 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1015 EXPECT_EQ(320, constraints.layoutSize.width());
1016 EXPECT_EQ(3000, constraints.layoutSize.height());
1017 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1018 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1019 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1020 EXPECT_TRUE(page->viewportDescription().userZoom);
1023 TEST_F(ViewportTest, viewport48)
1025 UseMockScrollbarSettings mockScrollbarSettings;
1026 registerMockedHttpURLLoad("viewport/viewport-48.html");
1028 FrameTestHelpers::WebViewHelper webViewHelper;
1029 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-48.html", true, 0, 0, setViewportSettings);
1031 Page* page = webViewHelper.webViewImpl()->page();
1032 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1034 EXPECT_EQ(3000, constraints.layoutSize.width());
1035 EXPECT_EQ(352, constraints.layoutSize.height());
1036 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1037 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1038 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1039 EXPECT_TRUE(page->viewportDescription().userZoom);
1042 TEST_F(ViewportTest, viewport49)
1044 UseMockScrollbarSettings mockScrollbarSettings;
1045 registerMockedHttpURLLoad("viewport/viewport-49.html");
1047 FrameTestHelpers::WebViewHelper webViewHelper;
1048 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-49.html", true, 0, 0, setViewportSettings);
1050 Page* page = webViewHelper.webViewImpl()->page();
1051 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1053 EXPECT_EQ(320, constraints.layoutSize.width());
1054 EXPECT_EQ(352, constraints.layoutSize.height());
1055 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1056 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1057 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1058 EXPECT_TRUE(page->viewportDescription().userZoom);
1061 TEST_F(ViewportTest, viewport50)
1063 UseMockScrollbarSettings mockScrollbarSettings;
1064 registerMockedHttpURLLoad("viewport/viewport-50.html");
1066 FrameTestHelpers::WebViewHelper webViewHelper;
1067 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-50.html", true, 0, 0, setViewportSettings);
1069 Page* page = webViewHelper.webViewImpl()->page();
1070 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1072 EXPECT_EQ(980, constraints.layoutSize.width());
1073 EXPECT_EQ(1078, constraints.layoutSize.height());
1074 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1075 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1076 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1077 EXPECT_TRUE(page->viewportDescription().userZoom);
1080 TEST_F(ViewportTest, viewport51)
1082 UseMockScrollbarSettings mockScrollbarSettings;
1083 registerMockedHttpURLLoad("viewport/viewport-51.html");
1085 FrameTestHelpers::WebViewHelper webViewHelper;
1086 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-51.html", true, 0, 0, setViewportSettings);
1088 Page* page = webViewHelper.webViewImpl()->page();
1089 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1091 EXPECT_EQ(980, constraints.layoutSize.width());
1092 EXPECT_EQ(1078, constraints.layoutSize.height());
1093 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1094 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1095 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1096 EXPECT_TRUE(page->viewportDescription().userZoom);
1099 TEST_F(ViewportTest, viewport52)
1101 UseMockScrollbarSettings mockScrollbarSettings;
1102 registerMockedHttpURLLoad("viewport/viewport-52.html");
1104 FrameTestHelpers::WebViewHelper webViewHelper;
1105 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-52.html", true, 0, 0, setViewportSettings);
1107 Page* page = webViewHelper.webViewImpl()->page();
1108 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1110 EXPECT_EQ(64, constraints.layoutSize.width());
1111 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1112 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1113 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1114 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1115 EXPECT_TRUE(page->viewportDescription().userZoom);
1118 TEST_F(ViewportTest, viewport53)
1120 UseMockScrollbarSettings mockScrollbarSettings;
1121 registerMockedHttpURLLoad("viewport/viewport-53.html");
1123 FrameTestHelpers::WebViewHelper webViewHelper;
1124 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-53.html", true, 0, 0, setViewportSettings);
1126 Page* page = webViewHelper.webViewImpl()->page();
1127 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1129 EXPECT_EQ(980, constraints.layoutSize.width());
1130 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1131 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1132 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1133 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1134 EXPECT_TRUE(page->viewportDescription().userZoom);
1137 TEST_F(ViewportTest, viewport54)
1139 UseMockScrollbarSettings mockScrollbarSettings;
1140 registerMockedHttpURLLoad("viewport/viewport-54.html");
1142 FrameTestHelpers::WebViewHelper webViewHelper;
1143 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-54.html", true, 0, 0, setViewportSettings);
1145 Page* page = webViewHelper.webViewImpl()->page();
1146 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1148 EXPECT_EQ(64, constraints.layoutSize.width());
1149 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1150 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1151 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1152 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1153 EXPECT_TRUE(page->viewportDescription().userZoom);
1156 TEST_F(ViewportTest, viewport55)
1158 UseMockScrollbarSettings mockScrollbarSettings;
1159 registerMockedHttpURLLoad("viewport/viewport-55.html");
1161 FrameTestHelpers::WebViewHelper webViewHelper;
1162 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-55.html", true, 0, 0, setViewportSettings);
1164 Page* page = webViewHelper.webViewImpl()->page();
1165 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1167 EXPECT_EQ(64, constraints.layoutSize.width());
1168 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1169 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1170 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1171 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1172 EXPECT_TRUE(page->viewportDescription().userZoom);
1175 TEST_F(ViewportTest, viewport56)
1177 UseMockScrollbarSettings mockScrollbarSettings;
1178 registerMockedHttpURLLoad("viewport/viewport-56.html");
1180 FrameTestHelpers::WebViewHelper webViewHelper;
1181 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-56.html", true, 0, 0, setViewportSettings);
1183 Page* page = webViewHelper.webViewImpl()->page();
1184 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1186 EXPECT_EQ(980, constraints.layoutSize.width());
1187 EXPECT_EQ(1078, constraints.layoutSize.height());
1188 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1189 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1190 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1191 EXPECT_TRUE(page->viewportDescription().userZoom);
1194 TEST_F(ViewportTest, viewport57)
1196 UseMockScrollbarSettings mockScrollbarSettings;
1197 registerMockedHttpURLLoad("viewport/viewport-57.html");
1199 FrameTestHelpers::WebViewHelper webViewHelper;
1200 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-57.html", true, 0, 0, setViewportSettings);
1202 Page* page = webViewHelper.webViewImpl()->page();
1203 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1205 EXPECT_EQ(320, constraints.layoutSize.width());
1206 EXPECT_EQ(352, constraints.layoutSize.height());
1207 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1208 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1209 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1210 EXPECT_TRUE(page->viewportDescription().userZoom);
1213 TEST_F(ViewportTest, viewport58)
1215 UseMockScrollbarSettings mockScrollbarSettings;
1216 registerMockedHttpURLLoad("viewport/viewport-58.html");
1218 FrameTestHelpers::WebViewHelper webViewHelper;
1219 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-58.html", true, 0, 0, setViewportSettings);
1221 Page* page = webViewHelper.webViewImpl()->page();
1222 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1224 EXPECT_EQ(3200, constraints.layoutSize.width());
1225 EXPECT_EQ(3520, constraints.layoutSize.height());
1226 EXPECT_NEAR(0.1f, constraints.initialScale, 0.01f);
1227 EXPECT_NEAR(0.1f, constraints.minimumScale, 0.01f);
1228 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1229 EXPECT_TRUE(page->viewportDescription().userZoom);
1232 TEST_F(ViewportTest, viewport59)
1234 UseMockScrollbarSettings mockScrollbarSettings;
1235 registerMockedHttpURLLoad("viewport/viewport-59.html");
1237 FrameTestHelpers::WebViewHelper webViewHelper;
1238 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-59.html", true, 0, 0, setViewportSettings);
1240 Page* page = webViewHelper.webViewImpl()->page();
1241 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1243 EXPECT_EQ(320, constraints.layoutSize.width());
1244 EXPECT_EQ(352, constraints.layoutSize.height());
1245 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1246 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1247 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
1248 EXPECT_TRUE(page->viewportDescription().userZoom);
1251 TEST_F(ViewportTest, viewport60)
1253 UseMockScrollbarSettings mockScrollbarSettings;
1254 registerMockedHttpURLLoad("viewport/viewport-60.html");
1256 FrameTestHelpers::WebViewHelper webViewHelper;
1257 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-60.html", true, 0, 0, setViewportSettings);
1259 Page* page = webViewHelper.webViewImpl()->page();
1260 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1262 EXPECT_EQ(32, constraints.layoutSize.width());
1263 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01f);
1264 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
1265 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1266 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1267 EXPECT_TRUE(page->viewportDescription().userZoom);
1270 TEST_F(ViewportTest, viewport61)
1272 UseMockScrollbarSettings mockScrollbarSettings;
1273 registerMockedHttpURLLoad("viewport/viewport-61.html");
1275 FrameTestHelpers::WebViewHelper webViewHelper;
1276 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-61.html", true, 0, 0, setViewportSettings);
1278 Page* page = webViewHelper.webViewImpl()->page();
1279 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1281 EXPECT_EQ(320, constraints.layoutSize.width());
1282 EXPECT_EQ(352, constraints.layoutSize.height());
1283 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1284 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1285 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1286 EXPECT_TRUE(page->viewportDescription().userZoom);
1289 TEST_F(ViewportTest, viewport62)
1291 UseMockScrollbarSettings mockScrollbarSettings;
1292 registerMockedHttpURLLoad("viewport/viewport-62.html");
1294 FrameTestHelpers::WebViewHelper webViewHelper;
1295 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-62.html", true, 0, 0, setViewportSettings);
1297 Page* page = webViewHelper.webViewImpl()->page();
1298 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1300 EXPECT_EQ(320, constraints.layoutSize.width());
1301 EXPECT_EQ(352, constraints.layoutSize.height());
1302 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1303 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1304 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1305 EXPECT_TRUE(page->viewportDescription().userZoom);
1308 TEST_F(ViewportTest, viewport63)
1310 UseMockScrollbarSettings mockScrollbarSettings;
1311 registerMockedHttpURLLoad("viewport/viewport-63.html");
1313 FrameTestHelpers::WebViewHelper webViewHelper;
1314 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-63.html", true, 0, 0, setViewportSettings);
1316 Page* page = webViewHelper.webViewImpl()->page();
1317 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1319 EXPECT_EQ(320, constraints.layoutSize.width());
1320 EXPECT_EQ(352, constraints.layoutSize.height());
1321 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1322 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1323 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1324 EXPECT_TRUE(page->viewportDescription().userZoom);
1327 TEST_F(ViewportTest, viewport64)
1329 UseMockScrollbarSettings mockScrollbarSettings;
1330 registerMockedHttpURLLoad("viewport/viewport-64.html");
1332 FrameTestHelpers::WebViewHelper webViewHelper;
1333 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-64.html", true, 0, 0, setViewportSettings);
1335 Page* page = webViewHelper.webViewImpl()->page();
1336 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1338 EXPECT_EQ(320, constraints.layoutSize.width());
1339 EXPECT_EQ(352, constraints.layoutSize.height());
1340 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1341 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1342 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1343 EXPECT_TRUE(page->viewportDescription().userZoom);
1346 TEST_F(ViewportTest, viewport65)
1348 UseMockScrollbarSettings mockScrollbarSettings;
1349 registerMockedHttpURLLoad("viewport/viewport-65.html");
1351 FrameTestHelpers::WebViewHelper webViewHelper;
1352 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-65.html", true, 0, 0, setViewportSettings);
1354 Page* page = webViewHelper.webViewImpl()->page();
1355 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1357 EXPECT_EQ(100, constraints.layoutSize.width());
1358 EXPECT_EQ(110, constraints.layoutSize.height());
1359 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1360 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1361 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1362 EXPECT_TRUE(page->viewportDescription().userZoom);
1365 TEST_F(ViewportTest, viewport66)
1367 UseMockScrollbarSettings mockScrollbarSettings;
1368 registerMockedHttpURLLoad("viewport/viewport-66.html");
1370 FrameTestHelpers::WebViewHelper webViewHelper;
1371 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-66.html", true, 0, 0, setViewportSettings);
1373 Page* page = webViewHelper.webViewImpl()->page();
1374 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1376 EXPECT_EQ(100, constraints.layoutSize.width());
1377 EXPECT_EQ(110, constraints.layoutSize.height());
1378 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1379 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1380 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1381 EXPECT_TRUE(page->viewportDescription().userZoom);
1384 TEST_F(ViewportTest, viewport67)
1386 UseMockScrollbarSettings mockScrollbarSettings;
1387 registerMockedHttpURLLoad("viewport/viewport-67.html");
1389 FrameTestHelpers::WebViewHelper webViewHelper;
1390 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-67.html", true, 0, 0, setViewportSettings);
1392 Page* page = webViewHelper.webViewImpl()->page();
1393 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1395 EXPECT_EQ(320, constraints.layoutSize.width());
1396 EXPECT_EQ(352, constraints.layoutSize.height());
1397 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1398 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1399 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1400 EXPECT_TRUE(page->viewportDescription().userZoom);
1403 TEST_F(ViewportTest, viewport68)
1405 UseMockScrollbarSettings mockScrollbarSettings;
1406 registerMockedHttpURLLoad("viewport/viewport-68.html");
1408 FrameTestHelpers::WebViewHelper webViewHelper;
1409 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-68.html", true, 0, 0, setViewportSettings);
1411 Page* page = webViewHelper.webViewImpl()->page();
1412 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1414 EXPECT_EQ(320, constraints.layoutSize.width());
1415 EXPECT_EQ(352, constraints.layoutSize.height());
1416 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1417 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1418 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1419 EXPECT_TRUE(page->viewportDescription().userZoom);
1422 TEST_F(ViewportTest, viewport69)
1424 UseMockScrollbarSettings mockScrollbarSettings;
1425 registerMockedHttpURLLoad("viewport/viewport-69.html");
1427 FrameTestHelpers::WebViewHelper webViewHelper;
1428 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-69.html", true, 0, 0, setViewportSettings);
1430 Page* page = webViewHelper.webViewImpl()->page();
1431 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1433 EXPECT_EQ(100, constraints.layoutSize.width());
1434 EXPECT_EQ(110, constraints.layoutSize.height());
1435 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1436 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1437 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1438 EXPECT_TRUE(page->viewportDescription().userZoom);
1441 TEST_F(ViewportTest, viewport70)
1443 UseMockScrollbarSettings mockScrollbarSettings;
1444 registerMockedHttpURLLoad("viewport/viewport-70.html");
1446 FrameTestHelpers::WebViewHelper webViewHelper;
1447 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-70.html", true, 0, 0, setViewportSettings);
1449 Page* page = webViewHelper.webViewImpl()->page();
1450 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1452 EXPECT_EQ(100, constraints.layoutSize.width());
1453 EXPECT_EQ(110, constraints.layoutSize.height());
1454 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1455 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1456 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1457 EXPECT_TRUE(page->viewportDescription().userZoom);
1460 TEST_F(ViewportTest, viewport71)
1462 UseMockScrollbarSettings mockScrollbarSettings;
1463 registerMockedHttpURLLoad("viewport/viewport-71.html");
1465 FrameTestHelpers::WebViewHelper webViewHelper;
1466 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-71.html", true, 0, 0, setViewportSettings);
1468 Page* page = webViewHelper.webViewImpl()->page();
1469 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1471 EXPECT_EQ(320, constraints.layoutSize.width());
1472 EXPECT_EQ(352, constraints.layoutSize.height());
1473 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1474 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1475 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1476 EXPECT_TRUE(page->viewportDescription().userZoom);
1479 TEST_F(ViewportTest, viewport72)
1481 UseMockScrollbarSettings mockScrollbarSettings;
1482 registerMockedHttpURLLoad("viewport/viewport-72.html");
1484 FrameTestHelpers::WebViewHelper webViewHelper;
1485 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-72.html", true, 0, 0, setViewportSettings);
1487 Page* page = webViewHelper.webViewImpl()->page();
1488 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1490 EXPECT_EQ(100, constraints.layoutSize.width());
1491 EXPECT_EQ(110, constraints.layoutSize.height());
1492 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1493 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1494 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1495 EXPECT_TRUE(page->viewportDescription().userZoom);
1498 TEST_F(ViewportTest, viewport73)
1500 UseMockScrollbarSettings mockScrollbarSettings;
1501 registerMockedHttpURLLoad("viewport/viewport-73.html");
1503 FrameTestHelpers::WebViewHelper webViewHelper;
1504 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-73.html", true, 0, 0, setViewportSettings);
1506 Page* page = webViewHelper.webViewImpl()->page();
1507 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1509 EXPECT_EQ(100, constraints.layoutSize.width());
1510 EXPECT_EQ(110, constraints.layoutSize.height());
1511 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1512 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1513 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1514 EXPECT_TRUE(page->viewportDescription().userZoom);
1517 TEST_F(ViewportTest, viewport74)
1519 UseMockScrollbarSettings mockScrollbarSettings;
1520 registerMockedHttpURLLoad("viewport/viewport-74.html");
1522 FrameTestHelpers::WebViewHelper webViewHelper;
1523 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-74.html", true, 0, 0, setViewportSettings);
1525 Page* page = webViewHelper.webViewImpl()->page();
1526 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1528 EXPECT_EQ(100, constraints.layoutSize.width());
1529 EXPECT_EQ(110, constraints.layoutSize.height());
1530 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1531 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1532 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1533 EXPECT_TRUE(page->viewportDescription().userZoom);
1536 TEST_F(ViewportTest, viewport75)
1538 UseMockScrollbarSettings mockScrollbarSettings;
1539 registerMockedHttpURLLoad("viewport/viewport-75.html");
1541 FrameTestHelpers::WebViewHelper webViewHelper;
1542 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-75.html", true, 0, 0, setViewportSettings);
1544 Page* page = webViewHelper.webViewImpl()->page();
1545 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1547 EXPECT_EQ(64, constraints.layoutSize.width());
1548 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1549 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1550 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1551 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1552 EXPECT_TRUE(page->viewportDescription().userZoom);
1555 TEST_F(ViewportTest, viewport76)
1557 UseMockScrollbarSettings mockScrollbarSettings;
1558 registerMockedHttpURLLoad("viewport/viewport-76.html");
1560 FrameTestHelpers::WebViewHelper webViewHelper;
1561 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-76.html", true, 0, 0, setViewportSettings);
1563 Page* page = webViewHelper.webViewImpl()->page();
1564 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1566 EXPECT_EQ(32, constraints.layoutSize.width());
1567 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01);
1568 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
1569 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1570 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1571 EXPECT_TRUE(page->viewportDescription().userZoom);
1574 TEST_F(ViewportTest, viewport77)
1576 UseMockScrollbarSettings mockScrollbarSettings;
1577 registerMockedHttpURLLoad("viewport/viewport-77.html");
1579 FrameTestHelpers::WebViewHelper webViewHelper;
1580 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-77.html", true, 0, 0, setViewportSettings);
1582 Page* page = webViewHelper.webViewImpl()->page();
1583 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1585 EXPECT_EQ(1280, constraints.layoutSize.width());
1586 EXPECT_EQ(1408, constraints.layoutSize.height());
1587 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
1588 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1589 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1590 EXPECT_TRUE(page->viewportDescription().userZoom);
1593 TEST_F(ViewportTest, viewport78)
1595 UseMockScrollbarSettings mockScrollbarSettings;
1596 registerMockedHttpURLLoad("viewport/viewport-78.html");
1598 FrameTestHelpers::WebViewHelper webViewHelper;
1599 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-78.html", true, 0, 0, setViewportSettings);
1601 Page* page = webViewHelper.webViewImpl()->page();
1602 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1604 EXPECT_EQ(100, constraints.layoutSize.width());
1605 EXPECT_EQ(110, constraints.layoutSize.height());
1606 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1607 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1608 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1609 EXPECT_TRUE(page->viewportDescription().userZoom);
1612 TEST_F(ViewportTest, viewport79)
1614 UseMockScrollbarSettings mockScrollbarSettings;
1615 registerMockedHttpURLLoad("viewport/viewport-79.html");
1617 FrameTestHelpers::WebViewHelper webViewHelper;
1618 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-79.html", true, 0, 0, setViewportSettings);
1620 Page* page = webViewHelper.webViewImpl()->page();
1621 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1623 EXPECT_EQ(320, constraints.layoutSize.width());
1624 EXPECT_EQ(352, constraints.layoutSize.height());
1625 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1626 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1627 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1628 EXPECT_TRUE(page->viewportDescription().userZoom);
1631 TEST_F(ViewportTest, viewport80)
1633 UseMockScrollbarSettings mockScrollbarSettings;
1634 registerMockedHttpURLLoad("viewport/viewport-80.html");
1636 FrameTestHelpers::WebViewHelper webViewHelper;
1637 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-80.html", true, 0, 0, setViewportSettings);
1639 Page* page = webViewHelper.webViewImpl()->page();
1640 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1642 EXPECT_EQ(320, constraints.layoutSize.width());
1643 EXPECT_EQ(352, constraints.layoutSize.height());
1644 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1645 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1646 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1647 EXPECT_TRUE(page->viewportDescription().userZoom);
1650 TEST_F(ViewportTest, viewport81)
1652 UseMockScrollbarSettings mockScrollbarSettings;
1653 registerMockedHttpURLLoad("viewport/viewport-81.html");
1655 FrameTestHelpers::WebViewHelper webViewHelper;
1656 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-81.html", true, 0, 0, setViewportSettings);
1658 Page* page = webViewHelper.webViewImpl()->page();
1659 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1661 EXPECT_EQ(3000, constraints.layoutSize.width());
1662 EXPECT_EQ(3300, constraints.layoutSize.height());
1663 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
1664 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1665 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1666 EXPECT_TRUE(page->viewportDescription().userZoom);
1669 TEST_F(ViewportTest, viewport82)
1671 UseMockScrollbarSettings mockScrollbarSettings;
1672 registerMockedHttpURLLoad("viewport/viewport-82.html");
1674 FrameTestHelpers::WebViewHelper webViewHelper;
1675 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-82.html", true, 0, 0, setViewportSettings);
1677 Page* page = webViewHelper.webViewImpl()->page();
1678 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1680 EXPECT_EQ(400, constraints.layoutSize.width());
1681 EXPECT_EQ(440, constraints.layoutSize.height());
1682 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1683 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1684 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1685 EXPECT_TRUE(page->viewportDescription().userZoom);
1688 TEST_F(ViewportTest, viewport83)
1690 UseMockScrollbarSettings mockScrollbarSettings;
1691 registerMockedHttpURLLoad("viewport/viewport-83.html");
1693 FrameTestHelpers::WebViewHelper webViewHelper;
1694 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-83.html", true, 0, 0, setViewportSettings);
1696 Page* page = webViewHelper.webViewImpl()->page();
1697 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1699 EXPECT_EQ(64, constraints.layoutSize.width());
1700 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1701 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1702 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1703 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1704 EXPECT_TRUE(page->viewportDescription().userZoom);
1707 TEST_F(ViewportTest, viewport84)
1709 UseMockScrollbarSettings mockScrollbarSettings;
1710 registerMockedHttpURLLoad("viewport/viewport-84.html");
1712 FrameTestHelpers::WebViewHelper webViewHelper;
1713 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-84.html", true, 0, 0, setViewportSettings);
1715 Page* page = webViewHelper.webViewImpl()->page();
1716 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1718 EXPECT_EQ(64, constraints.layoutSize.width());
1719 EXPECT_EQ(480, constraints.layoutSize.height());
1720 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1721 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1722 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1723 EXPECT_TRUE(page->viewportDescription().userZoom);
1726 TEST_F(ViewportTest, viewport85)
1728 UseMockScrollbarSettings mockScrollbarSettings;
1729 registerMockedHttpURLLoad("viewport/viewport-85.html");
1731 FrameTestHelpers::WebViewHelper webViewHelper;
1732 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-85.html", true, 0, 0, setViewportSettings);
1734 Page* page = webViewHelper.webViewImpl()->page();
1735 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1737 EXPECT_EQ(540, constraints.layoutSize.width());
1738 EXPECT_EQ(594, constraints.layoutSize.height());
1739 EXPECT_NEAR(0.59f, constraints.initialScale, 0.01f);
1740 EXPECT_NEAR(0.59f, constraints.minimumScale, 0.01f);
1741 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1742 EXPECT_TRUE(page->viewportDescription().userZoom);
1745 TEST_F(ViewportTest, viewport86)
1747 UseMockScrollbarSettings mockScrollbarSettings;
1748 registerMockedHttpURLLoad("viewport/viewport-86.html");
1750 FrameTestHelpers::WebViewHelper webViewHelper;
1751 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-86.html", true, 0, 0, setViewportSettings);
1753 Page* page = webViewHelper.webViewImpl()->page();
1754 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1756 EXPECT_NEAR(457.14, constraints.layoutSize.width(), 0.01f);
1757 EXPECT_NEAR(502.86, constraints.layoutSize.height(), 0.01f);
1758 EXPECT_NEAR(0.7f, constraints.initialScale, 0.01f);
1759 EXPECT_NEAR(0.7f, constraints.minimumScale, 0.01f);
1760 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1761 EXPECT_TRUE(page->viewportDescription().userZoom);
1764 TEST_F(ViewportTest, viewport87)
1766 UseMockScrollbarSettings mockScrollbarSettings;
1767 registerMockedHttpURLLoad("viewport/viewport-87.html");
1769 FrameTestHelpers::WebViewHelper webViewHelper;
1770 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-87.html", true, 0, 0, setViewportSettings);
1772 Page* page = webViewHelper.webViewImpl()->page();
1773 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1775 EXPECT_EQ(64, constraints.layoutSize.width());
1776 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1777 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1778 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1779 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1780 EXPECT_TRUE(page->viewportDescription().userZoom);
1783 TEST_F(ViewportTest, viewport88)
1785 UseMockScrollbarSettings mockScrollbarSettings;
1786 registerMockedHttpURLLoad("viewport/viewport-88.html");
1788 FrameTestHelpers::WebViewHelper webViewHelper;
1789 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-88.html", true, 0, 0, setViewportSettings);
1791 Page* page = webViewHelper.webViewImpl()->page();
1792 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1794 EXPECT_EQ(980, constraints.layoutSize.width());
1795 EXPECT_EQ(1078, constraints.layoutSize.height());
1796 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1797 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1798 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1799 EXPECT_TRUE(page->viewportDescription().userZoom);
1802 TEST_F(ViewportTest, viewport90)
1804 UseMockScrollbarSettings mockScrollbarSettings;
1805 registerMockedHttpURLLoad("viewport/viewport-90.html");
1807 FrameTestHelpers::WebViewHelper webViewHelper;
1808 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-90.html", true, 0, 0, setViewportSettings);
1810 Page* page = webViewHelper.webViewImpl()->page();
1811 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1813 EXPECT_EQ(700, constraints.layoutSize.width());
1814 EXPECT_EQ(770, constraints.layoutSize.height());
1815 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
1816 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
1817 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1818 EXPECT_TRUE(page->viewportDescription().userZoom);
1821 TEST_F(ViewportTest, viewport100)
1823 UseMockScrollbarSettings mockScrollbarSettings;
1824 registerMockedHttpURLLoad("viewport/viewport-100.html");
1826 FrameTestHelpers::WebViewHelper webViewHelper;
1827 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-100.html", true, 0, 0, setViewportSettings);
1829 Page* page = webViewHelper.webViewImpl()->page();
1830 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1832 EXPECT_EQ(400, constraints.layoutSize.width());
1833 EXPECT_EQ(440, constraints.layoutSize.height());
1834 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1835 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1836 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1837 EXPECT_TRUE(page->viewportDescription().userZoom);
1840 TEST_F(ViewportTest, viewport101)
1842 UseMockScrollbarSettings mockScrollbarSettings;
1843 registerMockedHttpURLLoad("viewport/viewport-101.html");
1845 FrameTestHelpers::WebViewHelper webViewHelper;
1846 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-101.html", true, 0, 0, setViewportSettings);
1848 Page* page = webViewHelper.webViewImpl()->page();
1849 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1851 EXPECT_EQ(400, constraints.layoutSize.width());
1852 EXPECT_EQ(440, constraints.layoutSize.height());
1853 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1854 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1855 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1856 EXPECT_TRUE(page->viewportDescription().userZoom);
1859 TEST_F(ViewportTest, viewport102)
1861 UseMockScrollbarSettings mockScrollbarSettings;
1862 registerMockedHttpURLLoad("viewport/viewport-102.html");
1864 FrameTestHelpers::WebViewHelper webViewHelper;
1865 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-102.html", true, 0, 0, setViewportSettings);
1867 Page* page = webViewHelper.webViewImpl()->page();
1868 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1870 EXPECT_EQ(400, constraints.layoutSize.width());
1871 EXPECT_EQ(440, constraints.layoutSize.height());
1872 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1873 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1874 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1875 EXPECT_TRUE(page->viewportDescription().userZoom);
1878 TEST_F(ViewportTest, viewport103)
1880 UseMockScrollbarSettings mockScrollbarSettings;
1881 registerMockedHttpURLLoad("viewport/viewport-103.html");
1883 FrameTestHelpers::WebViewHelper webViewHelper;
1884 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-103.html", true, 0, 0, setViewportSettings);
1886 Page* page = webViewHelper.webViewImpl()->page();
1887 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1889 EXPECT_EQ(400, constraints.layoutSize.width());
1890 EXPECT_EQ(440, constraints.layoutSize.height());
1891 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1892 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1893 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1894 EXPECT_TRUE(page->viewportDescription().userZoom);
1897 TEST_F(ViewportTest, viewport104)
1899 UseMockScrollbarSettings mockScrollbarSettings;
1900 registerMockedHttpURLLoad("viewport/viewport-104.html");
1902 FrameTestHelpers::WebViewHelper webViewHelper;
1903 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-104.html", true, 0, 0, setViewportSettings);
1905 Page* page = webViewHelper.webViewImpl()->page();
1906 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1908 EXPECT_EQ(980, constraints.layoutSize.width());
1909 EXPECT_EQ(1078, constraints.layoutSize.height());
1910 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1911 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1912 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1913 EXPECT_TRUE(page->viewportDescription().userZoom);
1916 TEST_F(ViewportTest, viewport105)
1918 UseMockScrollbarSettings mockScrollbarSettings;
1919 registerMockedHttpURLLoad("viewport/viewport-105.html");
1921 FrameTestHelpers::WebViewHelper webViewHelper;
1922 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-105.html", true, 0, 0, setViewportSettings);
1924 Page* page = webViewHelper.webViewImpl()->page();
1925 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1927 EXPECT_EQ(980, constraints.layoutSize.width());
1928 EXPECT_EQ(1078, constraints.layoutSize.height());
1929 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1930 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1931 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1932 EXPECT_TRUE(page->viewportDescription().userZoom);
1935 TEST_F(ViewportTest, viewport106)
1937 UseMockScrollbarSettings mockScrollbarSettings;
1938 registerMockedHttpURLLoad("viewport/viewport-106.html");
1940 FrameTestHelpers::WebViewHelper webViewHelper;
1941 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-106.html", true, 0, 0, setViewportSettings);
1943 Page* page = webViewHelper.webViewImpl()->page();
1944 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1946 EXPECT_EQ(980, constraints.layoutSize.width());
1947 EXPECT_EQ(1078, constraints.layoutSize.height());
1948 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1949 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1950 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1951 EXPECT_TRUE(page->viewportDescription().userZoom);
1954 TEST_F(ViewportTest, viewport107)
1956 UseMockScrollbarSettings mockScrollbarSettings;
1957 registerMockedHttpURLLoad("viewport/viewport-107.html");
1959 FrameTestHelpers::WebViewHelper webViewHelper;
1960 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-107.html", true, 0, 0, setViewportSettings);
1962 Page* page = webViewHelper.webViewImpl()->page();
1963 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1965 EXPECT_EQ(980, constraints.layoutSize.width());
1966 EXPECT_EQ(1078, constraints.layoutSize.height());
1967 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1968 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1969 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1970 EXPECT_TRUE(page->viewportDescription().userZoom);
1973 TEST_F(ViewportTest, viewport108)
1975 UseMockScrollbarSettings mockScrollbarSettings;
1976 registerMockedHttpURLLoad("viewport/viewport-108.html");
1978 FrameTestHelpers::WebViewHelper webViewHelper;
1979 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-108.html", true, 0, 0, setViewportSettings);
1981 Page* page = webViewHelper.webViewImpl()->page();
1982 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1984 EXPECT_EQ(980, constraints.layoutSize.width());
1985 EXPECT_EQ(1078, constraints.layoutSize.height());
1986 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1987 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1988 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1989 EXPECT_TRUE(page->viewportDescription().userZoom);
1992 TEST_F(ViewportTest, viewport109)
1994 UseMockScrollbarSettings mockScrollbarSettings;
1995 registerMockedHttpURLLoad("viewport/viewport-109.html");
1997 FrameTestHelpers::WebViewHelper webViewHelper;
1998 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-109.html", true, 0, 0, setViewportSettings);
2000 Page* page = webViewHelper.webViewImpl()->page();
2001 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2003 EXPECT_EQ(980, constraints.layoutSize.width());
2004 EXPECT_EQ(1078, constraints.layoutSize.height());
2005 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2006 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2007 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2008 EXPECT_TRUE(page->viewportDescription().userZoom);
2011 TEST_F(ViewportTest, viewport110)
2013 UseMockScrollbarSettings mockScrollbarSettings;
2014 registerMockedHttpURLLoad("viewport/viewport-110.html");
2016 FrameTestHelpers::WebViewHelper webViewHelper;
2017 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-110.html", true, 0, 0, setViewportSettings);
2019 Page* page = webViewHelper.webViewImpl()->page();
2020 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2022 EXPECT_EQ(980, constraints.layoutSize.width());
2023 EXPECT_EQ(1078, constraints.layoutSize.height());
2024 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2025 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2026 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2027 EXPECT_TRUE(page->viewportDescription().userZoom);
2030 TEST_F(ViewportTest, viewport111)
2032 UseMockScrollbarSettings mockScrollbarSettings;
2033 registerMockedHttpURLLoad("viewport/viewport-111.html");
2035 FrameTestHelpers::WebViewHelper webViewHelper;
2036 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-111.html", true, 0, 0, setViewportSettings);
2038 Page* page = webViewHelper.webViewImpl()->page();
2039 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2041 EXPECT_EQ(980, constraints.layoutSize.width());
2042 EXPECT_EQ(1078, constraints.layoutSize.height());
2043 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2044 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2045 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2046 EXPECT_TRUE(page->viewportDescription().userZoom);
2049 TEST_F(ViewportTest, viewport112)
2051 UseMockScrollbarSettings mockScrollbarSettings;
2052 registerMockedHttpURLLoad("viewport/viewport-112.html");
2054 FrameTestHelpers::WebViewHelper webViewHelper;
2055 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-112.html", true, 0, 0, setViewportSettings);
2057 Page* page = webViewHelper.webViewImpl()->page();
2058 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2060 EXPECT_EQ(400, constraints.layoutSize.width());
2061 EXPECT_EQ(440, constraints.layoutSize.height());
2062 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2063 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2064 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2065 EXPECT_TRUE(page->viewportDescription().userZoom);
2068 TEST_F(ViewportTest, viewport113)
2070 UseMockScrollbarSettings mockScrollbarSettings;
2071 registerMockedHttpURLLoad("viewport/viewport-113.html");
2073 FrameTestHelpers::WebViewHelper webViewHelper;
2074 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-113.html", true, 0, 0, setViewportSettings);
2076 Page* page = webViewHelper.webViewImpl()->page();
2077 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2079 EXPECT_EQ(980, constraints.layoutSize.width());
2080 EXPECT_EQ(1078, constraints.layoutSize.height());
2081 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2082 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2083 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2084 EXPECT_TRUE(page->viewportDescription().userZoom);
2087 TEST_F(ViewportTest, viewport114)
2089 UseMockScrollbarSettings mockScrollbarSettings;
2090 registerMockedHttpURLLoad("viewport/viewport-114.html");
2092 FrameTestHelpers::WebViewHelper webViewHelper;
2093 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-114.html", true, 0, 0, setViewportSettings);
2095 Page* page = webViewHelper.webViewImpl()->page();
2096 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2098 EXPECT_EQ(980, constraints.layoutSize.width());
2099 EXPECT_EQ(1078, constraints.layoutSize.height());
2100 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2101 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2102 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2103 EXPECT_TRUE(page->viewportDescription().userZoom);
2106 TEST_F(ViewportTest, viewport115)
2108 UseMockScrollbarSettings mockScrollbarSettings;
2109 registerMockedHttpURLLoad("viewport/viewport-115.html");
2111 FrameTestHelpers::WebViewHelper webViewHelper;
2112 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-115.html", true, 0, 0, setViewportSettings);
2114 Page* page = webViewHelper.webViewImpl()->page();
2115 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2117 EXPECT_EQ(400, constraints.layoutSize.width());
2118 EXPECT_EQ(440, constraints.layoutSize.height());
2119 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2120 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2121 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2122 EXPECT_TRUE(page->viewportDescription().userZoom);
2125 TEST_F(ViewportTest, viewport116)
2127 UseMockScrollbarSettings mockScrollbarSettings;
2128 registerMockedHttpURLLoad("viewport/viewport-116.html");
2130 FrameTestHelpers::WebViewHelper webViewHelper;
2131 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-116.html", true, 0, 0, setViewportSettings);
2133 Page* page = webViewHelper.webViewImpl()->page();
2134 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2136 EXPECT_EQ(400, constraints.layoutSize.width());
2137 EXPECT_EQ(440, constraints.layoutSize.height());
2138 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2139 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2140 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2141 EXPECT_TRUE(page->viewportDescription().userZoom);
2144 TEST_F(ViewportTest, viewport117)
2146 UseMockScrollbarSettings mockScrollbarSettings;
2147 registerMockedHttpURLLoad("viewport/viewport-117.html");
2149 FrameTestHelpers::WebViewHelper webViewHelper;
2150 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-117.html", true, 0, 0, setViewportSettings);
2152 Page* page = webViewHelper.webViewImpl()->page();
2153 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2155 EXPECT_EQ(980, constraints.layoutSize.width());
2156 EXPECT_EQ(400, constraints.layoutSize.height());
2157 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2158 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2159 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2160 EXPECT_TRUE(page->viewportDescription().userZoom);
2163 TEST_F(ViewportTest, viewport118)
2165 UseMockScrollbarSettings mockScrollbarSettings;
2166 registerMockedHttpURLLoad("viewport/viewport-118.html");
2168 FrameTestHelpers::WebViewHelper webViewHelper;
2169 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-118.html", true, 0, 0, setViewportSettings);
2171 Page* page = webViewHelper.webViewImpl()->page();
2172 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2174 EXPECT_EQ(320, constraints.layoutSize.width());
2175 EXPECT_EQ(352, constraints.layoutSize.height());
2176 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2177 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2178 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2179 EXPECT_TRUE(page->viewportDescription().userZoom);
2182 TEST_F(ViewportTest, viewport119)
2184 UseMockScrollbarSettings mockScrollbarSettings;
2185 registerMockedHttpURLLoad("viewport/viewport-119.html");
2187 FrameTestHelpers::WebViewHelper webViewHelper;
2188 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-119.html", true, 0, 0, setViewportSettings);
2190 Page* page = webViewHelper.webViewImpl()->page();
2191 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2193 EXPECT_EQ(320, constraints.layoutSize.width());
2194 EXPECT_EQ(352, constraints.layoutSize.height());
2195 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2196 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2197 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2198 EXPECT_TRUE(page->viewportDescription().userZoom);
2201 TEST_F(ViewportTest, viewport120)
2203 UseMockScrollbarSettings mockScrollbarSettings;
2204 registerMockedHttpURLLoad("viewport/viewport-120.html");
2206 FrameTestHelpers::WebViewHelper webViewHelper;
2207 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-120.html", true, 0, 0, setViewportSettings);
2209 Page* page = webViewHelper.webViewImpl()->page();
2210 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2212 EXPECT_EQ(320, constraints.layoutSize.width());
2213 EXPECT_EQ(352, constraints.layoutSize.height());
2214 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2215 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2216 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2217 EXPECT_TRUE(page->viewportDescription().userZoom);
2220 TEST_F(ViewportTest, viewport121)
2222 UseMockScrollbarSettings mockScrollbarSettings;
2223 registerMockedHttpURLLoad("viewport/viewport-121.html");
2225 FrameTestHelpers::WebViewHelper webViewHelper;
2226 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-121.html", true, 0, 0, setViewportSettings);
2228 Page* page = webViewHelper.webViewImpl()->page();
2229 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2231 EXPECT_EQ(64, constraints.layoutSize.width());
2232 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2233 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2234 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2235 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2236 EXPECT_TRUE(page->viewportDescription().userZoom);
2239 TEST_F(ViewportTest, viewport122)
2241 UseMockScrollbarSettings mockScrollbarSettings;
2242 registerMockedHttpURLLoad("viewport/viewport-122.html");
2244 FrameTestHelpers::WebViewHelper webViewHelper;
2245 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-122.html", true, 0, 0, setViewportSettings);
2247 Page* page = webViewHelper.webViewImpl()->page();
2248 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2250 EXPECT_EQ(64, constraints.layoutSize.width());
2251 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2252 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2253 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2254 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2255 EXPECT_TRUE(page->viewportDescription().userZoom);
2258 TEST_F(ViewportTest, viewport123)
2260 UseMockScrollbarSettings mockScrollbarSettings;
2261 registerMockedHttpURLLoad("viewport/viewport-123.html");
2263 FrameTestHelpers::WebViewHelper webViewHelper;
2264 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-123.html", true, 0, 0, setViewportSettings);
2266 Page* page = webViewHelper.webViewImpl()->page();
2267 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2269 EXPECT_EQ(320, constraints.layoutSize.width());
2270 EXPECT_EQ(352, constraints.layoutSize.height());
2271 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2272 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2273 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2274 EXPECT_TRUE(page->viewportDescription().userZoom);
2277 TEST_F(ViewportTest, viewport124)
2279 UseMockScrollbarSettings mockScrollbarSettings;
2280 registerMockedHttpURLLoad("viewport/viewport-124.html");
2282 FrameTestHelpers::WebViewHelper webViewHelper;
2283 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-124.html", true, 0, 0, setViewportSettings);
2285 Page* page = webViewHelper.webViewImpl()->page();
2286 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2288 EXPECT_EQ(320, constraints.layoutSize.width());
2289 EXPECT_EQ(352, constraints.layoutSize.height());
2290 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2291 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2292 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2293 EXPECT_TRUE(page->viewportDescription().userZoom);
2296 TEST_F(ViewportTest, viewport125)
2298 UseMockScrollbarSettings mockScrollbarSettings;
2299 registerMockedHttpURLLoad("viewport/viewport-125.html");
2301 FrameTestHelpers::WebViewHelper webViewHelper;
2302 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-125.html", true, 0, 0, setViewportSettings);
2304 Page* page = webViewHelper.webViewImpl()->page();
2305 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2307 EXPECT_EQ(64, constraints.layoutSize.width());
2308 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2309 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2310 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2311 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2312 EXPECT_TRUE(page->viewportDescription().userZoom);
2315 TEST_F(ViewportTest, viewport126)
2317 UseMockScrollbarSettings mockScrollbarSettings;
2318 registerMockedHttpURLLoad("viewport/viewport-126.html");
2320 FrameTestHelpers::WebViewHelper webViewHelper;
2321 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-126.html", true, 0, 0, setViewportSettings);
2323 Page* page = webViewHelper.webViewImpl()->page();
2324 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2326 EXPECT_EQ(64, constraints.layoutSize.width());
2327 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2328 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2329 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2330 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2331 EXPECT_TRUE(page->viewportDescription().userZoom);
2334 TEST_F(ViewportTest, viewport127)
2336 UseMockScrollbarSettings mockScrollbarSettings;
2337 registerMockedHttpURLLoad("viewport/viewport-127.html");
2339 FrameTestHelpers::WebViewHelper webViewHelper;
2340 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-127.html", true, 0, 0, setViewportSettings);
2342 Page* page = webViewHelper.webViewImpl()->page();
2343 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2345 EXPECT_EQ(64, constraints.layoutSize.width());
2346 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2347 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2348 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2349 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2350 EXPECT_TRUE(page->viewportDescription().userZoom);
2353 TEST_F(ViewportTest, viewport129)
2355 UseMockScrollbarSettings mockScrollbarSettings;
2356 registerMockedHttpURLLoad("viewport/viewport-129.html");
2358 FrameTestHelpers::WebViewHelper webViewHelper;
2359 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-129.html", true, 0, 0, setViewportSettings);
2361 Page* page = webViewHelper.webViewImpl()->page();
2362 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2364 EXPECT_EQ(123, constraints.layoutSize.width());
2365 EXPECT_NEAR(135.3, constraints.layoutSize.height(), 0.01f);
2366 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
2367 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
2368 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2369 EXPECT_TRUE(page->viewportDescription().userZoom);
2372 TEST_F(ViewportTest, viewport130)
2374 UseMockScrollbarSettings mockScrollbarSettings;
2375 registerMockedHttpURLLoad("viewport/viewport-130.html");
2377 FrameTestHelpers::WebViewHelper webViewHelper;
2378 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettings);
2380 Page* page = webViewHelper.webViewImpl()->page();
2381 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2383 EXPECT_EQ(320, constraints.layoutSize.width());
2384 EXPECT_EQ(352, constraints.layoutSize.height());
2385 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2386 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2387 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2388 EXPECT_TRUE(page->viewportDescription().userZoom);
2391 TEST_F(ViewportTest, viewport131)
2393 UseMockScrollbarSettings mockScrollbarSettings;
2394 registerMockedHttpURLLoad("viewport/viewport-131.html");
2396 FrameTestHelpers::WebViewHelper webViewHelper;
2397 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-131.html", true, 0, 0, setViewportSettings);
2399 Page* page = webViewHelper.webViewImpl()->page();
2400 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2402 EXPECT_EQ(320, constraints.layoutSize.width());
2403 EXPECT_EQ(352, constraints.layoutSize.height());
2404 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2405 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2406 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
2407 EXPECT_FALSE(page->viewportDescription().userZoom);
2410 TEST_F(ViewportTest, viewport132)
2412 UseMockScrollbarSettings mockScrollbarSettings;
2413 registerMockedHttpURLLoad("viewport/viewport-132.html");
2415 FrameTestHelpers::WebViewHelper webViewHelper;
2416 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-132.html", true, 0, 0, setViewportSettings);
2418 Page* page = webViewHelper.webViewImpl()->page();
2419 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2421 EXPECT_EQ(320, constraints.layoutSize.width());
2422 EXPECT_EQ(352, constraints.layoutSize.height());
2423 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2424 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2425 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2426 EXPECT_TRUE(page->viewportDescription().userZoom);
2429 TEST_F(ViewportTest, viewport133)
2431 UseMockScrollbarSettings mockScrollbarSettings;
2432 registerMockedHttpURLLoad("viewport/viewport-133.html");
2434 FrameTestHelpers::WebViewHelper webViewHelper;
2435 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-133.html", true, 0, 0, setViewportSettings);
2437 Page* page = webViewHelper.webViewImpl()->page();
2438 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2440 EXPECT_EQ(980, constraints.layoutSize.width());
2441 EXPECT_EQ(1078, constraints.layoutSize.height());
2442 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
2443 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
2444 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
2445 EXPECT_TRUE(page->viewportDescription().userZoom);
2448 TEST_F(ViewportTest, viewport134)
2450 UseMockScrollbarSettings mockScrollbarSettings;
2451 registerMockedHttpURLLoad("viewport/viewport-134.html");
2453 FrameTestHelpers::WebViewHelper webViewHelper;
2454 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-134.html", true, 0, 0, setViewportSettings);
2456 Page* page = webViewHelper.webViewImpl()->page();
2457 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2459 EXPECT_EQ(160, constraints.layoutSize.width());
2460 EXPECT_EQ(176, constraints.layoutSize.height());
2461 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
2462 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
2463 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2464 EXPECT_TRUE(page->viewportDescription().userZoom);
2467 TEST_F(ViewportTest, viewport135)
2469 UseMockScrollbarSettings mockScrollbarSettings;
2470 registerMockedHttpURLLoad("viewport/viewport-135.html");
2472 FrameTestHelpers::WebViewHelper webViewHelper;
2473 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-135.html", true, 0, 0, setViewportSettings);
2475 Page* page = webViewHelper.webViewImpl()->page();
2476 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2478 EXPECT_EQ(980, constraints.layoutSize.width());
2479 EXPECT_EQ(1078, constraints.layoutSize.height());
2480 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2481 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2482 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2483 EXPECT_TRUE(page->viewportDescription().userZoom);
2486 TEST_F(ViewportTest, viewport136)
2488 UseMockScrollbarSettings mockScrollbarSettings;
2489 registerMockedHttpURLLoad("viewport/viewport-136.html");
2491 FrameTestHelpers::WebViewHelper webViewHelper;
2492 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-136.html", true, 0, 0, setViewportSettings);
2494 Page* page = webViewHelper.webViewImpl()->page();
2495 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2497 EXPECT_EQ(320, constraints.layoutSize.width());
2498 EXPECT_EQ(352, constraints.layoutSize.height());
2499 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2500 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2501 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2502 EXPECT_TRUE(page->viewportDescription().userZoom);
2505 TEST_F(ViewportTest, viewport137)
2507 UseMockScrollbarSettings mockScrollbarSettings;
2508 registerMockedHttpURLLoad("viewport/viewport-137.html");
2510 FrameTestHelpers::WebViewHelper webViewHelper;
2511 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-137.html", true, 0, 0, setViewportSettings);
2513 Page* page = webViewHelper.webViewImpl()->page();
2514 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2516 EXPECT_EQ(980, constraints.layoutSize.width());
2517 EXPECT_EQ(1078, constraints.layoutSize.height());
2518 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2519 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2520 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2521 EXPECT_TRUE(page->viewportDescription().userZoom);
2524 TEST_F(ViewportTest, viewport138)
2526 registerMockedHttpURLLoad("viewport/viewport-138.html");
2528 FrameTestHelpers::WebViewHelper webViewHelper;
2529 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-138.html", true, 0, 0, setViewportSettings);
2531 Page* page = webViewHelper.webViewImpl()->page();
2532 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2534 EXPECT_NEAR(123.0f, constraints.layoutSize.width(), 0.01);
2535 EXPECT_NEAR(135.3f, constraints.layoutSize.height(), 0.01);
2536 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
2537 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
2538 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2539 EXPECT_TRUE(page->viewportDescription().userZoom);
2542 TEST_F(ViewportTest, viewportLegacyHandheldFriendly)
2544 UseMockScrollbarSettings mockScrollbarSettings;
2545 registerMockedHttpURLLoad("viewport/viewport-legacy-handheldfriendly.html");
2547 FrameTestHelpers::WebViewHelper webViewHelper;
2548 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-handheldfriendly.html", true, 0, 0, setViewportSettings);
2550 Page* page = webViewHelper.webViewImpl()->page();
2551 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2553 EXPECT_EQ(320, constraints.layoutSize.width());
2554 EXPECT_EQ(352, constraints.layoutSize.height());
2555 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2556 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2557 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2558 EXPECT_TRUE(page->viewportDescription().userZoom);
2561 static void setQuirkViewportSettings(WebSettings* settings)
2563 setViewportSettings(settings);
2565 // This quirk allows content attributes of meta viewport tags to be merged.
2566 settings->setViewportMetaMergeContentQuirk(true);
2569 TEST_F(ViewportTest, viewportLegacyMergeQuirk1)
2571 UseMockScrollbarSettings mockScrollbarSettings;
2572 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-1.html");
2574 FrameTestHelpers::WebViewHelper webViewHelper;
2575 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-1.html", true, 0, 0, setQuirkViewportSettings);
2577 Page* page = webViewHelper.webViewImpl()->page();
2578 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2580 EXPECT_EQ(640, constraints.layoutSize.width());
2581 EXPECT_EQ(704, constraints.layoutSize.height());
2582 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2583 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2584 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
2585 EXPECT_FALSE(page->viewportDescription().userZoom);
2588 TEST_F(ViewportTest, viewportLegacyMergeQuirk2)
2590 UseMockScrollbarSettings mockScrollbarSettings;
2591 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-2.html");
2593 FrameTestHelpers::WebViewHelper webViewHelper;
2594 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-2.html", true, 0, 0, setQuirkViewportSettings);
2596 Page* page = webViewHelper.webViewImpl()->page();
2598 // This quirk allows content attributes of meta viewport tags to be merged.
2599 page->settings().setViewportMetaMergeContentQuirk(true);
2600 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2602 EXPECT_EQ(500, constraints.layoutSize.width());
2603 EXPECT_EQ(550, constraints.layoutSize.height());
2604 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
2605 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
2606 EXPECT_NEAR(2.0f, constraints.maximumScale, 0.01f);
2607 EXPECT_FALSE(page->viewportDescription().userZoom);
2610 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWithoutContent)
2612 UseMockScrollbarSettings mockScrollbarSettings;
2613 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized.html");
2615 FrameTestHelpers::WebViewHelper webViewHelper;
2616 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized.html", true, 0, 0, setViewportSettings);
2618 Page* page = webViewHelper.webViewImpl()->page();
2620 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2622 EXPECT_EQ(320, constraints.layoutSize.width());
2623 EXPECT_EQ(352, constraints.layoutSize.height());
2624 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2625 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2626 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2627 EXPECT_TRUE(page->viewportDescription().userZoom);
2630 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith0)
2632 UseMockScrollbarSettings mockScrollbarSettings;
2633 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2635 FrameTestHelpers::WebViewHelper webViewHelper;
2636 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2638 Page* page = webViewHelper.webViewImpl()->page();
2640 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2642 EXPECT_EQ(320, constraints.layoutSize.width());
2643 EXPECT_EQ(352, constraints.layoutSize.height());
2644 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2645 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2646 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2647 EXPECT_TRUE(page->viewportDescription().userZoom);
2650 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith400)
2652 UseMockScrollbarSettings mockScrollbarSettings;
2653 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2655 FrameTestHelpers::WebViewHelper webViewHelper;
2656 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2658 Page* page = webViewHelper.webViewImpl()->page();
2660 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2662 EXPECT_EQ(320, constraints.layoutSize.width());
2663 EXPECT_EQ(352, constraints.layoutSize.height());
2664 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2665 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2666 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2667 EXPECT_TRUE(page->viewportDescription().userZoom);
2670 TEST_F(ViewportTest, viewportLegacyOrdering2)
2672 UseMockScrollbarSettings mockScrollbarSettings;
2673 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-2.html");
2675 FrameTestHelpers::WebViewHelper webViewHelper;
2676 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-2.html", true, 0, 0, setViewportSettings);
2678 Page* page = webViewHelper.webViewImpl()->page();
2680 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2682 EXPECT_EQ(300, constraints.layoutSize.width());
2683 EXPECT_EQ(330, constraints.layoutSize.height());
2684 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2685 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2686 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2687 EXPECT_TRUE(page->viewportDescription().userZoom);
2690 TEST_F(ViewportTest, viewportLegacyOrdering3)
2692 UseMockScrollbarSettings mockScrollbarSettings;
2693 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-3.html");
2695 FrameTestHelpers::WebViewHelper webViewHelper;
2696 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-3.html", true, 0, 0, setViewportSettings);
2698 Page* page = webViewHelper.webViewImpl()->page();
2700 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2702 EXPECT_EQ(300, constraints.layoutSize.width());
2703 EXPECT_EQ(330, constraints.layoutSize.height());
2704 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2705 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2706 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2707 EXPECT_TRUE(page->viewportDescription().userZoom);
2710 TEST_F(ViewportTest, viewportLegacyOrdering4)
2712 UseMockScrollbarSettings mockScrollbarSettings;
2713 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-4.html");
2715 FrameTestHelpers::WebViewHelper webViewHelper;
2716 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-4.html", true, 0, 0, setViewportSettings);
2718 Page* page = webViewHelper.webViewImpl()->page();
2720 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2722 EXPECT_EQ(300, constraints.layoutSize.width());
2723 EXPECT_EQ(330, constraints.layoutSize.height());
2724 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2725 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2726 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2727 EXPECT_TRUE(page->viewportDescription().userZoom);
2730 TEST_F(ViewportTest, viewportLegacyOrdering5)
2732 UseMockScrollbarSettings mockScrollbarSettings;
2733 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-5.html");
2735 FrameTestHelpers::WebViewHelper webViewHelper;
2736 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-5.html", true, 0, 0, setViewportSettings);
2738 Page* page = webViewHelper.webViewImpl()->page();
2740 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2742 EXPECT_EQ(320, constraints.layoutSize.width());
2743 EXPECT_EQ(352, constraints.layoutSize.height());
2744 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2745 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2746 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2747 EXPECT_TRUE(page->viewportDescription().userZoom);
2750 TEST_F(ViewportTest, viewportLegacyOrdering6)
2752 UseMockScrollbarSettings mockScrollbarSettings;
2753 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-6.html");
2755 FrameTestHelpers::WebViewHelper webViewHelper;
2756 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-6.html", true, 0, 0, setViewportSettings);
2758 Page* page = webViewHelper.webViewImpl()->page();
2760 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2762 EXPECT_EQ(320, constraints.layoutSize.width());
2763 EXPECT_EQ(352, constraints.layoutSize.height());
2764 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2765 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2766 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2767 EXPECT_TRUE(page->viewportDescription().userZoom);
2770 TEST_F(ViewportTest, viewportLegacyOrdering7)
2772 UseMockScrollbarSettings mockScrollbarSettings;
2773 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-7.html");
2775 FrameTestHelpers::WebViewHelper webViewHelper;
2776 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-7.html", true, 0, 0, setViewportSettings);
2778 Page* page = webViewHelper.webViewImpl()->page();
2780 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2782 EXPECT_EQ(300, constraints.layoutSize.width());
2783 EXPECT_EQ(330, constraints.layoutSize.height());
2784 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2785 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2786 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2787 EXPECT_TRUE(page->viewportDescription().userZoom);
2790 TEST_F(ViewportTest, viewportLegacyOrdering8)
2792 UseMockScrollbarSettings mockScrollbarSettings;
2793 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-8.html");
2795 FrameTestHelpers::WebViewHelper webViewHelper;
2796 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-8.html", true, 0, 0, setViewportSettings);
2798 Page* page = webViewHelper.webViewImpl()->page();
2800 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2802 EXPECT_EQ(300, constraints.layoutSize.width());
2803 EXPECT_EQ(330, constraints.layoutSize.height());
2804 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2805 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2806 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2807 EXPECT_TRUE(page->viewportDescription().userZoom);
2810 TEST_F(ViewportTest, viewportLegacyEmptyAtViewportDoesntOverrideViewportMeta)
2812 UseMockScrollbarSettings mockScrollbarSettings;
2813 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-10.html");
2815 FrameTestHelpers::WebViewHelper webViewHelper;
2816 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-10.html", true, 0, 0, setViewportSettings);
2818 Page* page = webViewHelper.webViewImpl()->page();
2819 PageScaleConstraints constraints = runViewportTest(page, 800, 600);
2821 EXPECT_EQ(5000, constraints.layoutSize.width());
2824 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMP)
2826 UseMockScrollbarSettings mockScrollbarSettings;
2827 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2829 FrameTestHelpers::WebViewHelper webViewHelper;
2830 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2832 Page* page = webViewHelper.webViewImpl()->page();
2833 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2835 EXPECT_EQ(320, constraints.layoutSize.width());
2836 EXPECT_EQ(352, constraints.layoutSize.height());
2837 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2838 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2839 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2840 EXPECT_TRUE(page->viewportDescription().userZoom);
2843 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMPAndOverriddenByMeta)
2845 UseMockScrollbarSettings mockScrollbarSettings;
2846 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html");
2848 FrameTestHelpers::WebViewHelper webViewHelper;
2849 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html", true, 0, 0, setViewportSettings);
2851 Page* page = webViewHelper.webViewImpl()->page();
2852 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2854 EXPECT_EQ(640, constraints.layoutSize.width());
2855 EXPECT_EQ(704, constraints.layoutSize.height());
2856 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
2857 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
2858 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2859 EXPECT_TRUE(page->viewportDescription().userZoom);
2862 TEST_F(ViewportTest, viewportLegacyXHTMLMPOrdering)
2864 UseMockScrollbarSettings mockScrollbarSettings;
2865 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-ordering.html");
2867 FrameTestHelpers::WebViewHelper webViewHelper;
2868 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-ordering.html", true, 0, 0, setViewportSettings);
2870 Page* page = webViewHelper.webViewImpl()->page();
2871 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2873 EXPECT_EQ(640, constraints.layoutSize.width());
2874 EXPECT_EQ(704, constraints.layoutSize.height());
2875 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
2876 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
2877 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2878 EXPECT_TRUE(page->viewportDescription().userZoom);
2881 TEST_F(ViewportTest, viewportLegacyXHTMLMPRemoveAndAdd)
2883 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2885 FrameTestHelpers::WebViewHelper webViewHelper;
2886 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2888 Page* page = webViewHelper.webViewImpl()->page();
2889 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2891 EXPECT_EQ(320, constraints.layoutSize.width());
2892 EXPECT_EQ(352, constraints.layoutSize.height());
2893 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2894 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2895 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2896 EXPECT_TRUE(page->viewportDescription().userZoom);
2898 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2899 "originalDoctype = document.doctype;"
2900 "document.removeChild(originalDoctype);");
2902 constraints = runViewportTest(page, 320, 352);
2904 EXPECT_EQ(320, constraints.layoutSize.width());
2905 EXPECT_EQ(352, constraints.layoutSize.height());
2906 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2907 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2908 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2909 EXPECT_TRUE(page->viewportDescription().userZoom);
2911 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2912 "document.insertBefore(originalDoctype, document.firstChild);");
2914 constraints = runViewportTest(page, 320, 352);
2916 EXPECT_EQ(320, constraints.layoutSize.width());
2917 EXPECT_EQ(352, constraints.layoutSize.height());
2918 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2919 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2920 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2921 EXPECT_TRUE(page->viewportDescription().userZoom);
2924 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScale)
2926 UseMockScrollbarSettings mockScrollbarSettings;
2927 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale.html");
2929 FrameTestHelpers::WebViewHelper webViewHelper;
2930 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale.html", true, 0, 0, setViewportSettings);
2932 Page* page = webViewHelper.webViewImpl()->page();
2934 EXPECT_FALSE(page->viewportDescription().userZoom);
2937 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScaleControl)
2939 UseMockScrollbarSettings mockScrollbarSettings;
2940 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale-control.html");
2942 FrameTestHelpers::WebViewHelper webViewHelper;
2943 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale-control.html", true, 0, 0, setViewportSettings);
2945 Page* page = webViewHelper.webViewImpl()->page();
2947 EXPECT_TRUE(page->viewportDescription().userZoom);
2950 TEST_F(ViewportTest, viewportTriggersGpuRasterization)
2952 UseMockScrollbarSettings mockScrollbarSettings;
2954 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization.html");
2955 FrameTestHelpers::WebViewHelper webViewHelper;
2956 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization.html", true, 0, 0, setViewportSettings);
2957 webViewHelper.webView()->resize(WebSize(640, 480));
2958 EXPECT_TRUE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2960 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization-expanded-heuristics.html");
2961 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization-expanded-heuristics.html", true, 0, 0, setViewportSettings);
2962 webViewHelper.webView()->resize(WebSize(640, 480));
2963 EXPECT_TRUE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2965 registerMockedHttpURLLoad("viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html");
2966 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html", true, 0, 0, setViewportSettings);
2967 webViewHelper.webView()->resize(WebSize(640, 480));
2968 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2970 registerMockedHttpURLLoad("viewport/viewport-1.html");
2971 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
2972 webViewHelper.webView()->resize(WebSize(640, 480));
2973 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2975 registerMockedHttpURLLoad("viewport/viewport-15.html");
2976 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettings);
2977 webViewHelper.webView()->resize(WebSize(640, 480));
2978 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2980 registerMockedHttpURLLoad("viewport/viewport-130.html");
2981 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettings);
2982 webViewHelper.webView()->resize(WebSize(640, 480));
2983 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2986 class ConsoleMessageWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
2988 virtual void didAddMessageToConsole(const WebConsoleMessage& msg, const WebString& sourceName, unsigned sourceLine, const WebString& stackTrace)
2990 messages.push_back(msg);
2993 std::vector<WebConsoleMessage> messages;
2996 TEST_F(ViewportTest, viewportWarnings1)
2998 ConsoleMessageWebFrameClient webFrameClient;
3000 registerMockedHttpURLLoad("viewport/viewport-warnings-1.html");
3002 FrameTestHelpers::WebViewHelper webViewHelper;
3003 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-1.html", true, &webFrameClient, 0, setViewportSettings);
3005 Page* page = webViewHelper.webViewImpl()->page();
3006 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3008 EXPECT_TRUE(webFrameClient.messages.empty());
3010 EXPECT_EQ(320, constraints.layoutSize.width());
3011 EXPECT_EQ(352, constraints.layoutSize.height());
3012 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
3013 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
3014 EXPECT_NEAR(2.0f, constraints.maximumScale, 0.01f);
3015 EXPECT_TRUE(page->viewportDescription().userZoom);
3018 TEST_F(ViewportTest, viewportWarnings2)
3020 ConsoleMessageWebFrameClient webFrameClient;
3022 registerMockedHttpURLLoad("viewport/viewport-warnings-2.html");
3024 FrameTestHelpers::WebViewHelper webViewHelper;
3025 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-2.html", true, &webFrameClient, 0, setViewportSettings);
3027 Page* page = webViewHelper.webViewImpl()->page();
3028 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3030 EXPECT_EQ(1U, webFrameClient.messages.size());
3031 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3032 EXPECT_STREQ("The key \"wwidth\" is not recognized and ignored.", webFrameClient.messages[0].text.utf8().c_str());
3034 EXPECT_EQ(980, constraints.layoutSize.width());
3035 EXPECT_EQ(1078, constraints.layoutSize.height());
3036 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
3037 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
3038 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3039 EXPECT_TRUE(page->viewportDescription().userZoom);
3042 TEST_F(ViewportTest, viewportWarnings3)
3044 ConsoleMessageWebFrameClient webFrameClient;
3046 registerMockedHttpURLLoad("viewport/viewport-warnings-3.html");
3048 FrameTestHelpers::WebViewHelper webViewHelper;
3049 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-3.html", true, &webFrameClient, 0, setViewportSettings);
3051 Page* page = webViewHelper.webViewImpl()->page();
3052 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3054 EXPECT_EQ(1U, webFrameClient.messages.size());
3055 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3056 EXPECT_STREQ("The value \"unrecognized-width\" for key \"width\" is invalid, and has been ignored.",
3057 webFrameClient.messages[0].text.utf8().c_str());
3059 EXPECT_NEAR(64.0f, constraints.layoutSize.width(), 0.01);
3060 EXPECT_NEAR(70.4f, constraints.layoutSize.height(), 0.01);
3061 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
3062 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
3063 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3064 EXPECT_TRUE(page->viewportDescription().userZoom);
3067 TEST_F(ViewportTest, viewportWarnings4)
3069 ConsoleMessageWebFrameClient webFrameClient;
3071 registerMockedHttpURLLoad("viewport/viewport-warnings-4.html");
3073 FrameTestHelpers::WebViewHelper webViewHelper;
3074 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-4.html", true, &webFrameClient, 0, setViewportSettings);
3076 Page* page = webViewHelper.webViewImpl()->page();
3077 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3079 EXPECT_EQ(1U, webFrameClient.messages.size());
3080 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3081 EXPECT_STREQ("The value \"123x456\" for key \"width\" was truncated to its numeric prefix.",
3082 webFrameClient.messages[0].text.utf8().c_str());
3084 EXPECT_NEAR(123.0f, constraints.layoutSize.width(), 0.01);
3085 EXPECT_NEAR(135.3f, constraints.layoutSize.height(), 0.01);
3086 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
3087 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
3088 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3089 EXPECT_TRUE(page->viewportDescription().userZoom);
3092 TEST_F(ViewportTest, viewportWarnings5)
3094 ConsoleMessageWebFrameClient webFrameClient;
3096 registerMockedHttpURLLoad("viewport/viewport-warnings-5.html");
3098 FrameTestHelpers::WebViewHelper webViewHelper;
3099 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-5.html", true, &webFrameClient, 0, setViewportSettings);
3101 Page* page = webViewHelper.webViewImpl()->page();
3102 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3104 EXPECT_EQ(5U, webFrameClient.messages.size());
3106 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3107 EXPECT_STREQ("The value \"device-width;\" for key \"width\" is invalid, and has been ignored.",
3108 webFrameClient.messages[0].text.utf8().c_str());
3110 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[1].level);
3111 EXPECT_STREQ("The value \"1.0;\" for key \"initial-scale\" was truncated to its numeric prefix.",
3112 webFrameClient.messages[1].text.utf8().c_str());
3114 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[2].level);
3115 EXPECT_STREQ("The value \"1.0;\" for key \"maximum-scale\" was truncated to its numeric prefix.",
3116 webFrameClient.messages[2].text.utf8().c_str());
3118 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[3].level);
3119 EXPECT_STREQ("The value \"0;\" for key \"user-scalable\" was truncated to its numeric prefix.",
3120 webFrameClient.messages[3].text.utf8().c_str());
3122 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[4].level);
3123 EXPECT_STREQ("Error parsing a meta element's content: ';' is not a valid key-value pair separator. Please use ',' instead.",
3124 webFrameClient.messages[4].text.utf8().c_str());
3126 EXPECT_NEAR(320.0f, constraints.layoutSize.width(), 0.01);
3127 EXPECT_NEAR(352.0f, constraints.layoutSize.height(), 0.01);
3128 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
3129 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
3130 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
3131 EXPECT_FALSE(page->viewportDescription().userZoom);
3134 TEST_F(ViewportTest, viewportWarnings6)
3136 ConsoleMessageWebFrameClient webFrameClient;
3138 registerMockedHttpURLLoad("viewport/viewport-warnings-6.html");
3140 FrameTestHelpers::WebViewHelper webViewHelper;
3141 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-6.html", true, &webFrameClient, 0, setViewportSettings);
3143 Page* page = webViewHelper.webViewImpl()->page();
3144 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3146 EXPECT_EQ(1U, webFrameClient.messages.size());
3147 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3148 EXPECT_STREQ("The value \"\" for key \"width\" is invalid, and has been ignored.",
3149 webFrameClient.messages[0].text.utf8().c_str());
3151 EXPECT_NEAR(64.0f, constraints.layoutSize.width(), 0.01);
3152 EXPECT_NEAR(70.4f, constraints.layoutSize.height(), 0.01);
3153 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
3154 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
3155 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3156 EXPECT_TRUE(page->viewportDescription().userZoom);
3159 TEST_F(ViewportTest, viewportWarnings7)
3161 ConsoleMessageWebFrameClient webFrameClient;
3163 registerMockedHttpURLLoad("viewport/viewport-warnings-7.html");
3165 FrameTestHelpers::WebViewHelper webViewHelper;
3166 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-7.html", true, &webFrameClient, 0, setViewportSettings);
3168 Page* page = webViewHelper.webViewImpl()->page();
3169 runViewportTest(page, 320, 352);
3171 EXPECT_EQ(0U, webFrameClient.messages.size());