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 "platform/Length.h"
40 #include "platform/geometry/IntPoint.h"
41 #include "platform/geometry/IntRect.h"
42 #include "platform/geometry/IntSize.h"
43 #include "platform/scroll/ScrollbarTheme.h"
44 #include "public/platform/Platform.h"
45 #include "public/platform/WebUnitTestSupport.h"
46 #include "public/web/WebConsoleMessage.h"
47 #include "public/web/WebFrame.h"
48 #include "public/web/WebScriptSource.h"
49 #include "public/web/WebSettings.h"
50 #include "public/web/WebViewClient.h"
51 #include "web/tests/FrameTestHelpers.h"
52 #include "web/tests/URLTestHelpers.h"
53 #include <gmock/gmock.h>
54 #include <gtest/gtest.h>
58 using namespace blink;
59 using WebCore::LocalFrame;
60 using WebCore::FrameView;
61 using WebCore::IntPoint;
62 using WebCore::IntRect;
63 using WebCore::IntSize;
65 using WebCore::PageScaleConstraints;
66 using WebCore::ViewportDescription;
67 using blink::FrameTestHelpers::runPendingTasks;
71 class ViewportTest : public testing::Test {
74 : m_baseURL("http://www.test.com/")
75 , m_chromeURL("chrome://")
79 virtual ~ViewportTest()
81 Platform::current()->unitTestSupport()->unregisterAllMockedURLs();
84 void registerMockedHttpURLLoad(const std::string& fileName)
86 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8(fileName.c_str()));
89 void registerMockedChromeURLLoad(const std::string& fileName)
91 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_chromeURL.c_str()), WebString::fromUTF8(fileName.c_str()));
94 void executeScript(WebFrame* frame, const WebString& code)
96 frame->executeScript(WebScriptSource(code));
100 std::string m_baseURL;
101 std::string m_chromeURL;
104 class UseMockScrollbarSettings {
106 UseMockScrollbarSettings()
108 WebCore::Settings::setMockScrollbarsEnabled(true);
109 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true);
110 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars());
113 ~UseMockScrollbarSettings()
115 WebCore::Settings::setMockScrollbarsEnabled(false);
116 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false);
120 static void setViewportSettings(WebSettings* settings)
122 settings->setViewportEnabled(true);
123 settings->setViewportMetaEnabled(true);
124 settings->setMainFrameResizesAreOrientationChanges(true);
127 static PageScaleConstraints runViewportTest(Page* page, int initialWidth, int initialHeight)
129 IntSize initialViewportSize(initialWidth, initialHeight);
130 toLocalFrame(page->mainFrame())->view()->setFrameRect(IntRect(IntPoint::zero(), initialViewportSize));
131 ViewportDescription description = page->viewportDescription();
132 PageScaleConstraints constraints = description.resolve(initialViewportSize, WebCore::Length(980, WebCore::Fixed));
134 constraints.fitToContentsWidth(constraints.layoutSize.width(), initialWidth);
138 TEST_F(ViewportTest, viewport1)
140 UseMockScrollbarSettings mockScrollbarSettings;
141 registerMockedHttpURLLoad("viewport/viewport-1.html");
143 FrameTestHelpers::WebViewHelper webViewHelper;
144 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
146 Page* page = webViewHelper.webViewImpl()->page();
147 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
149 EXPECT_EQ(320, constraints.layoutSize.width());
150 EXPECT_EQ(352, constraints.layoutSize.height());
151 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
152 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
153 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
154 EXPECT_TRUE(page->viewportDescription().userZoom);
157 TEST_F(ViewportTest, viewport2)
159 UseMockScrollbarSettings mockScrollbarSettings;
160 registerMockedHttpURLLoad("viewport/viewport-2.html");
162 FrameTestHelpers::WebViewHelper webViewHelper;
163 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-2.html", true, 0, 0, setViewportSettings);
165 Page* page = webViewHelper.webViewImpl()->page();
166 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
168 EXPECT_EQ(980, constraints.layoutSize.width());
169 EXPECT_EQ(352, constraints.layoutSize.height());
170 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
171 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
172 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
173 EXPECT_TRUE(page->viewportDescription().userZoom);
176 TEST_F(ViewportTest, viewport3)
178 UseMockScrollbarSettings mockScrollbarSettings;
179 registerMockedHttpURLLoad("viewport/viewport-3.html");
181 FrameTestHelpers::WebViewHelper webViewHelper;
182 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-3.html", true, 0, 0, setViewportSettings);
184 Page* page = webViewHelper.webViewImpl()->page();
185 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
187 EXPECT_EQ(320, constraints.layoutSize.width());
188 EXPECT_EQ(352, constraints.layoutSize.height());
189 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
190 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
191 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
192 EXPECT_TRUE(page->viewportDescription().userZoom);
195 TEST_F(ViewportTest, viewport4)
197 UseMockScrollbarSettings mockScrollbarSettings;
198 registerMockedHttpURLLoad("viewport/viewport-4.html");
200 FrameTestHelpers::WebViewHelper webViewHelper;
201 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-4.html", true, 0, 0, setViewportSettings);
203 Page* page = webViewHelper.webViewImpl()->page();
204 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
206 EXPECT_EQ(160, constraints.layoutSize.width());
207 EXPECT_EQ(176, constraints.layoutSize.height());
208 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
209 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
210 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
211 EXPECT_TRUE(page->viewportDescription().userZoom);
214 TEST_F(ViewportTest, viewport5)
216 UseMockScrollbarSettings mockScrollbarSettings;
217 registerMockedHttpURLLoad("viewport/viewport-5.html");
219 FrameTestHelpers::WebViewHelper webViewHelper;
220 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-5.html", true, 0, 0, setViewportSettings);
222 Page* page = webViewHelper.webViewImpl()->page();
223 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
225 EXPECT_EQ(640, constraints.layoutSize.width());
226 EXPECT_EQ(704, constraints.layoutSize.height());
227 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
228 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
229 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
230 EXPECT_TRUE(page->viewportDescription().userZoom);
233 TEST_F(ViewportTest, viewport6)
235 UseMockScrollbarSettings mockScrollbarSettings;
236 registerMockedHttpURLLoad("viewport/viewport-6.html");
238 FrameTestHelpers::WebViewHelper webViewHelper;
239 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-6.html", true, 0, 0, setViewportSettings);
241 Page* page = webViewHelper.webViewImpl()->page();
242 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
244 EXPECT_EQ(200, constraints.layoutSize.width());
245 EXPECT_EQ(220, constraints.layoutSize.height());
246 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
247 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
248 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
249 EXPECT_TRUE(page->viewportDescription().userZoom);
252 TEST_F(ViewportTest, viewport7)
254 UseMockScrollbarSettings mockScrollbarSettings;
255 registerMockedHttpURLLoad("viewport/viewport-7.html");
257 FrameTestHelpers::WebViewHelper webViewHelper;
258 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-7.html", true, 0, 0, setViewportSettings);
260 Page* page = webViewHelper.webViewImpl()->page();
261 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
263 EXPECT_EQ(1280, constraints.layoutSize.width());
264 EXPECT_EQ(1408, constraints.layoutSize.height());
265 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
266 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
267 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
268 EXPECT_TRUE(page->viewportDescription().userZoom);
271 TEST_F(ViewportTest, viewport8)
273 UseMockScrollbarSettings mockScrollbarSettings;
274 registerMockedHttpURLLoad("viewport/viewport-8.html");
276 FrameTestHelpers::WebViewHelper webViewHelper;
277 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-8.html", true, 0, 0, setViewportSettings);
279 Page* page = webViewHelper.webViewImpl()->page();
280 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
282 EXPECT_EQ(1280, constraints.layoutSize.width());
283 EXPECT_EQ(1408, constraints.layoutSize.height());
284 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
285 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
286 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
287 EXPECT_TRUE(page->viewportDescription().userZoom);
290 TEST_F(ViewportTest, viewport9)
292 UseMockScrollbarSettings mockScrollbarSettings;
293 registerMockedHttpURLLoad("viewport/viewport-9.html");
295 FrameTestHelpers::WebViewHelper webViewHelper;
296 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-9.html", true, 0, 0, setViewportSettings);
298 Page* page = webViewHelper.webViewImpl()->page();
299 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
301 EXPECT_EQ(1280, constraints.layoutSize.width());
302 EXPECT_EQ(1408, constraints.layoutSize.height());
303 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
304 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
305 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
306 EXPECT_TRUE(page->viewportDescription().userZoom);
309 TEST_F(ViewportTest, viewport10)
311 UseMockScrollbarSettings mockScrollbarSettings;
312 registerMockedHttpURLLoad("viewport/viewport-10.html");
314 FrameTestHelpers::WebViewHelper webViewHelper;
315 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-10.html", true, 0, 0, setViewportSettings);
317 Page* page = webViewHelper.webViewImpl()->page();
318 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
320 EXPECT_EQ(1280, constraints.layoutSize.width());
321 EXPECT_EQ(1408, constraints.layoutSize.height());
322 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
323 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
324 EXPECT_NEAR(0.25f, constraints.maximumScale, 0.01f);
325 EXPECT_TRUE(page->viewportDescription().userZoom);
328 TEST_F(ViewportTest, viewport11)
330 UseMockScrollbarSettings mockScrollbarSettings;
331 registerMockedHttpURLLoad("viewport/viewport-11.html");
333 FrameTestHelpers::WebViewHelper webViewHelper;
334 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-11.html", true, 0, 0, setViewportSettings);
336 Page* page = webViewHelper.webViewImpl()->page();
337 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
339 EXPECT_EQ(980, constraints.layoutSize.width());
340 EXPECT_EQ(1078, constraints.layoutSize.height());
341 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
342 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
343 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
344 EXPECT_TRUE(page->viewportDescription().userZoom);
347 TEST_F(ViewportTest, viewport12)
349 UseMockScrollbarSettings mockScrollbarSettings;
350 registerMockedHttpURLLoad("viewport/viewport-12.html");
352 FrameTestHelpers::WebViewHelper webViewHelper;
353 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-12.html", true, 0, 0, setViewportSettings);
355 Page* page = webViewHelper.webViewImpl()->page();
356 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
358 EXPECT_EQ(640, constraints.layoutSize.width());
359 EXPECT_EQ(704, constraints.layoutSize.height());
360 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
361 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
362 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
363 EXPECT_TRUE(page->viewportDescription().userZoom);
366 TEST_F(ViewportTest, viewport13)
368 UseMockScrollbarSettings mockScrollbarSettings;
369 registerMockedHttpURLLoad("viewport/viewport-13.html");
371 FrameTestHelpers::WebViewHelper webViewHelper;
372 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-13.html", true, 0, 0, setViewportSettings);
374 Page* page = webViewHelper.webViewImpl()->page();
375 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
377 EXPECT_EQ(1280, constraints.layoutSize.width());
378 EXPECT_EQ(1408, constraints.layoutSize.height());
379 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
380 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
381 EXPECT_NEAR(0.5f, constraints.maximumScale, 0.01f);
382 EXPECT_TRUE(page->viewportDescription().userZoom);
385 TEST_F(ViewportTest, viewport14)
387 UseMockScrollbarSettings mockScrollbarSettings;
388 registerMockedHttpURLLoad("viewport/viewport-14.html");
390 FrameTestHelpers::WebViewHelper webViewHelper;
391 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-14.html", true, 0, 0, setViewportSettings);
393 Page* page = webViewHelper.webViewImpl()->page();
394 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
396 EXPECT_EQ(320, constraints.layoutSize.width());
397 EXPECT_EQ(352, constraints.layoutSize.height());
398 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
399 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
400 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
401 EXPECT_TRUE(page->viewportDescription().userZoom);
404 TEST_F(ViewportTest, viewport15)
406 UseMockScrollbarSettings mockScrollbarSettings;
407 registerMockedHttpURLLoad("viewport/viewport-15.html");
409 FrameTestHelpers::WebViewHelper webViewHelper;
410 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettings);
412 Page* page = webViewHelper.webViewImpl()->page();
413 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
415 EXPECT_EQ(980, constraints.layoutSize.width());
416 EXPECT_EQ(1078, constraints.layoutSize.height());
417 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
418 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
419 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
420 EXPECT_TRUE(page->viewportDescription().userZoom);
423 TEST_F(ViewportTest, viewport16)
425 UseMockScrollbarSettings mockScrollbarSettings;
426 registerMockedHttpURLLoad("viewport/viewport-16.html");
428 FrameTestHelpers::WebViewHelper webViewHelper;
429 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-16.html", true, 0, 0, setViewportSettings);
431 Page* page = webViewHelper.webViewImpl()->page();
432 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
434 EXPECT_EQ(980, constraints.layoutSize.width());
435 EXPECT_EQ(1078, constraints.layoutSize.height());
436 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
437 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
438 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
439 EXPECT_TRUE(page->viewportDescription().userZoom);
442 TEST_F(ViewportTest, viewport17)
444 UseMockScrollbarSettings mockScrollbarSettings;
445 registerMockedHttpURLLoad("viewport/viewport-17.html");
447 FrameTestHelpers::WebViewHelper webViewHelper;
448 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-17.html", true, 0, 0, setViewportSettings);
450 Page* page = webViewHelper.webViewImpl()->page();
451 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
453 EXPECT_EQ(980, constraints.layoutSize.width());
454 EXPECT_EQ(1078, constraints.layoutSize.height());
455 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
456 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
457 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
458 EXPECT_TRUE(page->viewportDescription().userZoom);
461 TEST_F(ViewportTest, viewport18)
463 UseMockScrollbarSettings mockScrollbarSettings;
464 registerMockedHttpURLLoad("viewport/viewport-18.html");
466 FrameTestHelpers::WebViewHelper webViewHelper;
467 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-18.html", true, 0, 0, setViewportSettings);
469 Page* page = webViewHelper.webViewImpl()->page();
470 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
472 EXPECT_EQ(64, constraints.layoutSize.width());
473 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
474 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
475 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
476 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
477 EXPECT_TRUE(page->viewportDescription().userZoom);
480 TEST_F(ViewportTest, viewport19)
482 UseMockScrollbarSettings mockScrollbarSettings;
483 registerMockedHttpURLLoad("viewport/viewport-19.html");
485 FrameTestHelpers::WebViewHelper webViewHelper;
486 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-19.html", true, 0, 0, setViewportSettings);
488 Page* page = webViewHelper.webViewImpl()->page();
489 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
491 EXPECT_EQ(160, constraints.layoutSize.width());
492 EXPECT_EQ(176, constraints.layoutSize.height());
493 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
494 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
495 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
496 EXPECT_TRUE(page->viewportDescription().userZoom);
499 TEST_F(ViewportTest, viewport20)
501 UseMockScrollbarSettings mockScrollbarSettings;
502 registerMockedHttpURLLoad("viewport/viewport-20.html");
504 FrameTestHelpers::WebViewHelper webViewHelper;
505 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-20.html", true, 0, 0, setViewportSettings);
507 Page* page = webViewHelper.webViewImpl()->page();
508 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
510 EXPECT_EQ(980, constraints.layoutSize.width());
511 EXPECT_EQ(1078, constraints.layoutSize.height());
512 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
513 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
514 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
515 EXPECT_TRUE(page->viewportDescription().userZoom);
518 TEST_F(ViewportTest, viewport21)
520 UseMockScrollbarSettings mockScrollbarSettings;
521 registerMockedHttpURLLoad("viewport/viewport-21.html");
523 FrameTestHelpers::WebViewHelper webViewHelper;
524 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-21.html", true, 0, 0, setViewportSettings);
526 Page* page = webViewHelper.webViewImpl()->page();
527 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
529 EXPECT_EQ(980, constraints.layoutSize.width());
530 EXPECT_EQ(1078, constraints.layoutSize.height());
531 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
532 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
533 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
534 EXPECT_TRUE(page->viewportDescription().userZoom);
537 TEST_F(ViewportTest, viewport22)
539 UseMockScrollbarSettings mockScrollbarSettings;
540 registerMockedHttpURLLoad("viewport/viewport-22.html");
542 FrameTestHelpers::WebViewHelper webViewHelper;
543 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-22.html", true, 0, 0, setViewportSettings);
545 Page* page = webViewHelper.webViewImpl()->page();
546 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
548 EXPECT_EQ(980, constraints.layoutSize.width());
549 EXPECT_EQ(1078, constraints.layoutSize.height());
550 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
551 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
552 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
553 EXPECT_TRUE(page->viewportDescription().userZoom);
556 TEST_F(ViewportTest, viewport23)
558 UseMockScrollbarSettings mockScrollbarSettings;
559 registerMockedHttpURLLoad("viewport/viewport-23.html");
561 FrameTestHelpers::WebViewHelper webViewHelper;
562 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-23.html", true, 0, 0, setViewportSettings);
564 Page* page = webViewHelper.webViewImpl()->page();
565 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
567 EXPECT_EQ(980, constraints.layoutSize.width());
568 EXPECT_EQ(1078, constraints.layoutSize.height());
569 EXPECT_NEAR(3.0f, constraints.initialScale, 0.01f);
570 EXPECT_NEAR(3.0f, constraints.minimumScale, 0.01f);
571 EXPECT_NEAR(3.0f, constraints.maximumScale, 0.01f);
572 EXPECT_TRUE(page->viewportDescription().userZoom);
575 TEST_F(ViewportTest, viewport24)
577 UseMockScrollbarSettings mockScrollbarSettings;
578 registerMockedHttpURLLoad("viewport/viewport-24.html");
580 FrameTestHelpers::WebViewHelper webViewHelper;
581 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-24.html", true, 0, 0, setViewportSettings);
583 Page* page = webViewHelper.webViewImpl()->page();
584 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
586 EXPECT_EQ(980, constraints.layoutSize.width());
587 EXPECT_EQ(1078, constraints.layoutSize.height());
588 EXPECT_NEAR(4.0f, constraints.initialScale, 0.01f);
589 EXPECT_NEAR(4.0f, constraints.minimumScale, 0.01f);
590 EXPECT_NEAR(4.0f, constraints.maximumScale, 0.01f);
591 EXPECT_TRUE(page->viewportDescription().userZoom);
594 TEST_F(ViewportTest, viewport25)
596 UseMockScrollbarSettings mockScrollbarSettings;
597 registerMockedHttpURLLoad("viewport/viewport-25.html");
599 FrameTestHelpers::WebViewHelper webViewHelper;
600 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-25.html", true, 0, 0, setViewportSettings);
602 Page* page = webViewHelper.webViewImpl()->page();
603 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
605 EXPECT_EQ(980, constraints.layoutSize.width());
606 EXPECT_EQ(1078, constraints.layoutSize.height());
607 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
608 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
609 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
610 EXPECT_TRUE(page->viewportDescription().userZoom);
613 TEST_F(ViewportTest, viewport26)
615 UseMockScrollbarSettings mockScrollbarSettings;
616 registerMockedHttpURLLoad("viewport/viewport-26.html");
618 FrameTestHelpers::WebViewHelper webViewHelper;
619 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-26.html", true, 0, 0, setViewportSettings);
621 Page* page = webViewHelper.webViewImpl()->page();
622 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
624 EXPECT_EQ(980, constraints.layoutSize.width());
625 EXPECT_EQ(1078, constraints.layoutSize.height());
626 EXPECT_NEAR(8.0f, constraints.initialScale, 0.01f);
627 EXPECT_NEAR(8.0f, constraints.minimumScale, 0.01f);
628 EXPECT_NEAR(9.0f, constraints.maximumScale, 0.01f);
629 EXPECT_TRUE(page->viewportDescription().userZoom);
632 TEST_F(ViewportTest, viewport27)
634 UseMockScrollbarSettings mockScrollbarSettings;
635 registerMockedHttpURLLoad("viewport/viewport-27.html");
637 FrameTestHelpers::WebViewHelper webViewHelper;
638 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-27.html", true, 0, 0, setViewportSettings);
640 Page* page = webViewHelper.webViewImpl()->page();
641 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
643 EXPECT_EQ(980, constraints.layoutSize.width());
644 EXPECT_EQ(1078, constraints.layoutSize.height());
645 EXPECT_NEAR(0.32f, constraints.initialScale, 0.01f);
646 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
647 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
648 EXPECT_TRUE(page->viewportDescription().userZoom);
651 TEST_F(ViewportTest, viewport28)
653 UseMockScrollbarSettings mockScrollbarSettings;
654 registerMockedHttpURLLoad("viewport/viewport-28.html");
656 FrameTestHelpers::WebViewHelper webViewHelper;
657 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-28.html", true, 0, 0, setViewportSettings);
659 Page* page = webViewHelper.webViewImpl()->page();
660 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
662 EXPECT_EQ(352, constraints.layoutSize.width());
663 EXPECT_NEAR(387.2, constraints.layoutSize.height(), 0.01);
664 EXPECT_NEAR(0.91f, constraints.initialScale, 0.01f);
665 EXPECT_NEAR(0.91f, constraints.minimumScale, 0.01f);
666 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
667 EXPECT_TRUE(page->viewportDescription().userZoom);
670 TEST_F(ViewportTest, viewport29)
672 UseMockScrollbarSettings mockScrollbarSettings;
673 registerMockedHttpURLLoad("viewport/viewport-29.html");
675 FrameTestHelpers::WebViewHelper webViewHelper;
676 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-29.html", true, 0, 0, setViewportSettings);
678 Page* page = webViewHelper.webViewImpl()->page();
679 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
681 EXPECT_EQ(700, constraints.layoutSize.width());
682 EXPECT_EQ(770, constraints.layoutSize.height());
683 EXPECT_NEAR(0.46f, constraints.initialScale, 0.01f);
684 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
685 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
686 EXPECT_TRUE(page->viewportDescription().userZoom);
689 TEST_F(ViewportTest, viewport30)
691 UseMockScrollbarSettings mockScrollbarSettings;
692 registerMockedHttpURLLoad("viewport/viewport-30.html");
694 FrameTestHelpers::WebViewHelper webViewHelper;
695 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-30.html", true, 0, 0, setViewportSettings);
697 Page* page = webViewHelper.webViewImpl()->page();
698 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
700 EXPECT_EQ(200, constraints.layoutSize.width());
701 EXPECT_EQ(220, constraints.layoutSize.height());
702 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
703 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
704 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
705 EXPECT_TRUE(page->viewportDescription().userZoom);
708 TEST_F(ViewportTest, viewport31)
710 UseMockScrollbarSettings mockScrollbarSettings;
711 registerMockedHttpURLLoad("viewport/viewport-31.html");
713 FrameTestHelpers::WebViewHelper webViewHelper;
714 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-31.html", true, 0, 0, setViewportSettings);
716 Page* page = webViewHelper.webViewImpl()->page();
717 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
719 EXPECT_EQ(980, constraints.layoutSize.width());
720 EXPECT_EQ(700, constraints.layoutSize.height());
721 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
722 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
723 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
724 EXPECT_TRUE(page->viewportDescription().userZoom);
727 TEST_F(ViewportTest, viewport32)
729 UseMockScrollbarSettings mockScrollbarSettings;
730 registerMockedHttpURLLoad("viewport/viewport-32.html");
732 FrameTestHelpers::WebViewHelper webViewHelper;
733 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-32.html", true, 0, 0, setViewportSettings);
735 Page* page = webViewHelper.webViewImpl()->page();
736 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
738 EXPECT_EQ(980, constraints.layoutSize.width());
739 EXPECT_EQ(200, constraints.layoutSize.height());
740 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
741 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
742 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
743 EXPECT_TRUE(page->viewportDescription().userZoom);
746 TEST_F(ViewportTest, viewport33)
748 UseMockScrollbarSettings mockScrollbarSettings;
749 registerMockedHttpURLLoad("viewport/viewport-33.html");
751 FrameTestHelpers::WebViewHelper webViewHelper;
752 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-33.html", true, 0, 0, setViewportSettings);
754 Page* page = webViewHelper.webViewImpl()->page();
755 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
757 EXPECT_EQ(320, constraints.layoutSize.width());
758 EXPECT_EQ(352, constraints.layoutSize.height());
759 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
760 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
761 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
762 EXPECT_TRUE(page->viewportDescription().userZoom);
765 TEST_F(ViewportTest, viewport34)
767 UseMockScrollbarSettings mockScrollbarSettings;
768 registerMockedHttpURLLoad("viewport/viewport-34.html");
770 FrameTestHelpers::WebViewHelper webViewHelper;
771 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-34.html", true, 0, 0, setViewportSettings);
773 Page* page = webViewHelper.webViewImpl()->page();
774 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
776 EXPECT_EQ(640, constraints.layoutSize.width());
777 EXPECT_EQ(704, constraints.layoutSize.height());
778 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
779 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
780 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
781 EXPECT_TRUE(page->viewportDescription().userZoom);
784 TEST_F(ViewportTest, viewport35)
786 UseMockScrollbarSettings mockScrollbarSettings;
787 registerMockedHttpURLLoad("viewport/viewport-35.html");
789 FrameTestHelpers::WebViewHelper webViewHelper;
790 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-35.html", true, 0, 0, setViewportSettings);
792 Page* page = webViewHelper.webViewImpl()->page();
793 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
795 EXPECT_EQ(1280, constraints.layoutSize.width());
796 EXPECT_EQ(1408, constraints.layoutSize.height());
797 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
798 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
799 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
800 EXPECT_TRUE(page->viewportDescription().userZoom);
803 TEST_F(ViewportTest, viewport36)
805 UseMockScrollbarSettings mockScrollbarSettings;
806 registerMockedHttpURLLoad("viewport/viewport-36.html");
808 FrameTestHelpers::WebViewHelper webViewHelper;
809 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-36.html", true, 0, 0, setViewportSettings);
811 Page* page = webViewHelper.webViewImpl()->page();
812 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
814 EXPECT_NEAR(636.36, constraints.layoutSize.width(), 0.01f);
815 EXPECT_EQ(700, constraints.layoutSize.height());
816 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
817 EXPECT_NEAR(0.50f, constraints.minimumScale, 0.01f);
818 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
819 EXPECT_TRUE(page->viewportDescription().userZoom);
822 TEST_F(ViewportTest, viewport37)
824 UseMockScrollbarSettings mockScrollbarSettings;
825 registerMockedHttpURLLoad("viewport/viewport-37.html");
827 FrameTestHelpers::WebViewHelper webViewHelper;
828 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-37.html", true, 0, 0, setViewportSettings);
830 Page* page = webViewHelper.webViewImpl()->page();
831 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
833 EXPECT_EQ(320, constraints.layoutSize.width());
834 EXPECT_EQ(352, constraints.layoutSize.height());
835 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
836 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
837 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
838 EXPECT_TRUE(page->viewportDescription().userZoom);
841 TEST_F(ViewportTest, viewport38)
843 UseMockScrollbarSettings mockScrollbarSettings;
844 registerMockedHttpURLLoad("viewport/viewport-38.html");
846 FrameTestHelpers::WebViewHelper webViewHelper;
847 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-38.html", true, 0, 0, setViewportSettings);
849 Page* page = webViewHelper.webViewImpl()->page();
850 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
852 EXPECT_EQ(640, constraints.layoutSize.width());
853 EXPECT_EQ(704, constraints.layoutSize.height());
854 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
855 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
856 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
857 EXPECT_TRUE(page->viewportDescription().userZoom);
860 TEST_F(ViewportTest, viewport39)
862 UseMockScrollbarSettings mockScrollbarSettings;
863 registerMockedHttpURLLoad("viewport/viewport-39.html");
865 FrameTestHelpers::WebViewHelper webViewHelper;
866 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-39.html", true, 0, 0, setViewportSettings);
868 Page* page = webViewHelper.webViewImpl()->page();
869 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
871 EXPECT_EQ(200, constraints.layoutSize.width());
872 EXPECT_EQ(700, constraints.layoutSize.height());
873 EXPECT_NEAR(1.6f, constraints.initialScale, 0.01f);
874 EXPECT_NEAR(1.6f, constraints.minimumScale, 0.01f);
875 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
876 EXPECT_TRUE(page->viewportDescription().userZoom);
879 TEST_F(ViewportTest, viewport40)
881 UseMockScrollbarSettings mockScrollbarSettings;
882 registerMockedHttpURLLoad("viewport/viewport-40.html");
884 FrameTestHelpers::WebViewHelper webViewHelper;
885 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-40.html", true, 0, 0, setViewportSettings);
887 Page* page = webViewHelper.webViewImpl()->page();
888 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
890 EXPECT_EQ(700, constraints.layoutSize.width());
891 EXPECT_EQ(352, constraints.layoutSize.height());
892 EXPECT_NEAR(0.46f, constraints.initialScale, 0.01f);
893 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
894 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
895 EXPECT_TRUE(page->viewportDescription().userZoom);
898 TEST_F(ViewportTest, viewport41)
900 UseMockScrollbarSettings mockScrollbarSettings;
901 registerMockedHttpURLLoad("viewport/viewport-41.html");
903 FrameTestHelpers::WebViewHelper webViewHelper;
904 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-41.html", true, 0, 0, setViewportSettings);
906 Page* page = webViewHelper.webViewImpl()->page();
907 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
909 EXPECT_EQ(1000, constraints.layoutSize.width());
910 EXPECT_EQ(704, constraints.layoutSize.height());
911 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
912 EXPECT_NEAR(0.32f, constraints.minimumScale, 0.01f);
913 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
914 EXPECT_TRUE(page->viewportDescription().userZoom);
917 TEST_F(ViewportTest, viewport42)
919 UseMockScrollbarSettings mockScrollbarSettings;
920 registerMockedHttpURLLoad("viewport/viewport-42.html");
922 FrameTestHelpers::WebViewHelper webViewHelper;
923 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-42.html", true, 0, 0, setViewportSettings);
925 Page* page = webViewHelper.webViewImpl()->page();
926 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
928 EXPECT_EQ(320, constraints.layoutSize.width());
929 EXPECT_EQ(1000, constraints.layoutSize.height());
930 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
931 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
932 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
933 EXPECT_TRUE(page->viewportDescription().userZoom);
936 TEST_F(ViewportTest, viewport43)
938 UseMockScrollbarSettings mockScrollbarSettings;
939 registerMockedHttpURLLoad("viewport/viewport-43.html");
941 FrameTestHelpers::WebViewHelper webViewHelper;
942 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-43.html", true, 0, 0, setViewportSettings);
944 Page* page = webViewHelper.webViewImpl()->page();
945 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
947 EXPECT_EQ(64, constraints.layoutSize.width());
948 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
949 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
950 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
951 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
952 EXPECT_TRUE(page->viewportDescription().userZoom);
955 TEST_F(ViewportTest, viewport44)
957 UseMockScrollbarSettings mockScrollbarSettings;
958 registerMockedHttpURLLoad("viewport/viewport-44.html");
960 FrameTestHelpers::WebViewHelper webViewHelper;
961 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-44.html", true, 0, 0, setViewportSettings);
963 Page* page = webViewHelper.webViewImpl()->page();
964 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
966 EXPECT_EQ(10000, constraints.layoutSize.width());
967 EXPECT_EQ(10000, constraints.layoutSize.height());
968 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
969 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
970 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
971 EXPECT_TRUE(page->viewportDescription().userZoom);
974 TEST_F(ViewportTest, viewport45)
976 UseMockScrollbarSettings mockScrollbarSettings;
977 registerMockedHttpURLLoad("viewport/viewport-45.html");
979 FrameTestHelpers::WebViewHelper webViewHelper;
980 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-45.html", true, 0, 0, setViewportSettings);
982 Page* page = webViewHelper.webViewImpl()->page();
983 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
985 EXPECT_EQ(3200, constraints.layoutSize.width());
986 EXPECT_EQ(3520, constraints.layoutSize.height());
987 EXPECT_NEAR(0.1f, constraints.initialScale, 0.01f);
988 EXPECT_NEAR(0.1f, constraints.minimumScale, 0.01f);
989 EXPECT_NEAR(0.1f, constraints.maximumScale, 0.01f);
990 EXPECT_TRUE(page->viewportDescription().userZoom);
993 TEST_F(ViewportTest, viewport46)
995 UseMockScrollbarSettings mockScrollbarSettings;
996 registerMockedHttpURLLoad("viewport/viewport-46.html");
998 FrameTestHelpers::WebViewHelper webViewHelper;
999 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-46.html", true, 0, 0, setViewportSettings);
1001 Page* page = webViewHelper.webViewImpl()->page();
1002 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1004 EXPECT_EQ(32, constraints.layoutSize.width());
1005 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01f);
1006 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
1007 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1008 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1009 EXPECT_TRUE(page->viewportDescription().userZoom);
1012 TEST_F(ViewportTest, viewport47)
1014 UseMockScrollbarSettings mockScrollbarSettings;
1015 registerMockedHttpURLLoad("viewport/viewport-47.html");
1017 FrameTestHelpers::WebViewHelper webViewHelper;
1018 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-47.html", true, 0, 0, setViewportSettings);
1020 Page* page = webViewHelper.webViewImpl()->page();
1021 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1023 EXPECT_EQ(320, constraints.layoutSize.width());
1024 EXPECT_EQ(3000, constraints.layoutSize.height());
1025 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1026 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1027 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1028 EXPECT_TRUE(page->viewportDescription().userZoom);
1031 TEST_F(ViewportTest, viewport48)
1033 UseMockScrollbarSettings mockScrollbarSettings;
1034 registerMockedHttpURLLoad("viewport/viewport-48.html");
1036 FrameTestHelpers::WebViewHelper webViewHelper;
1037 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-48.html", true, 0, 0, setViewportSettings);
1039 Page* page = webViewHelper.webViewImpl()->page();
1040 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1042 EXPECT_EQ(3000, constraints.layoutSize.width());
1043 EXPECT_EQ(352, constraints.layoutSize.height());
1044 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1045 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1046 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1047 EXPECT_TRUE(page->viewportDescription().userZoom);
1050 TEST_F(ViewportTest, viewport49)
1052 UseMockScrollbarSettings mockScrollbarSettings;
1053 registerMockedHttpURLLoad("viewport/viewport-49.html");
1055 FrameTestHelpers::WebViewHelper webViewHelper;
1056 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-49.html", true, 0, 0, setViewportSettings);
1058 Page* page = webViewHelper.webViewImpl()->page();
1059 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1061 EXPECT_EQ(320, constraints.layoutSize.width());
1062 EXPECT_EQ(352, constraints.layoutSize.height());
1063 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1064 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1065 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1066 EXPECT_TRUE(page->viewportDescription().userZoom);
1069 TEST_F(ViewportTest, viewport50)
1071 UseMockScrollbarSettings mockScrollbarSettings;
1072 registerMockedHttpURLLoad("viewport/viewport-50.html");
1074 FrameTestHelpers::WebViewHelper webViewHelper;
1075 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-50.html", true, 0, 0, setViewportSettings);
1077 Page* page = webViewHelper.webViewImpl()->page();
1078 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1080 EXPECT_EQ(980, constraints.layoutSize.width());
1081 EXPECT_EQ(1078, constraints.layoutSize.height());
1082 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1083 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1084 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1085 EXPECT_TRUE(page->viewportDescription().userZoom);
1088 TEST_F(ViewportTest, viewport51)
1090 UseMockScrollbarSettings mockScrollbarSettings;
1091 registerMockedHttpURLLoad("viewport/viewport-51.html");
1093 FrameTestHelpers::WebViewHelper webViewHelper;
1094 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-51.html", true, 0, 0, setViewportSettings);
1096 Page* page = webViewHelper.webViewImpl()->page();
1097 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1099 EXPECT_EQ(980, constraints.layoutSize.width());
1100 EXPECT_EQ(1078, constraints.layoutSize.height());
1101 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1102 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1103 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1104 EXPECT_TRUE(page->viewportDescription().userZoom);
1107 TEST_F(ViewportTest, viewport52)
1109 UseMockScrollbarSettings mockScrollbarSettings;
1110 registerMockedHttpURLLoad("viewport/viewport-52.html");
1112 FrameTestHelpers::WebViewHelper webViewHelper;
1113 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-52.html", true, 0, 0, setViewportSettings);
1115 Page* page = webViewHelper.webViewImpl()->page();
1116 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1118 EXPECT_EQ(64, constraints.layoutSize.width());
1119 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1120 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1121 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1122 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1123 EXPECT_TRUE(page->viewportDescription().userZoom);
1126 TEST_F(ViewportTest, viewport53)
1128 UseMockScrollbarSettings mockScrollbarSettings;
1129 registerMockedHttpURLLoad("viewport/viewport-53.html");
1131 FrameTestHelpers::WebViewHelper webViewHelper;
1132 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-53.html", true, 0, 0, setViewportSettings);
1134 Page* page = webViewHelper.webViewImpl()->page();
1135 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1137 EXPECT_EQ(980, constraints.layoutSize.width());
1138 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1139 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1140 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1141 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1142 EXPECT_TRUE(page->viewportDescription().userZoom);
1145 TEST_F(ViewportTest, viewport54)
1147 UseMockScrollbarSettings mockScrollbarSettings;
1148 registerMockedHttpURLLoad("viewport/viewport-54.html");
1150 FrameTestHelpers::WebViewHelper webViewHelper;
1151 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-54.html", true, 0, 0, setViewportSettings);
1153 Page* page = webViewHelper.webViewImpl()->page();
1154 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1156 EXPECT_EQ(64, constraints.layoutSize.width());
1157 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1158 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1159 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1160 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1161 EXPECT_TRUE(page->viewportDescription().userZoom);
1164 TEST_F(ViewportTest, viewport55)
1166 UseMockScrollbarSettings mockScrollbarSettings;
1167 registerMockedHttpURLLoad("viewport/viewport-55.html");
1169 FrameTestHelpers::WebViewHelper webViewHelper;
1170 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-55.html", true, 0, 0, setViewportSettings);
1172 Page* page = webViewHelper.webViewImpl()->page();
1173 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1175 EXPECT_EQ(64, constraints.layoutSize.width());
1176 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1177 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1178 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1179 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1180 EXPECT_TRUE(page->viewportDescription().userZoom);
1183 TEST_F(ViewportTest, viewport56)
1185 UseMockScrollbarSettings mockScrollbarSettings;
1186 registerMockedHttpURLLoad("viewport/viewport-56.html");
1188 FrameTestHelpers::WebViewHelper webViewHelper;
1189 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-56.html", true, 0, 0, setViewportSettings);
1191 Page* page = webViewHelper.webViewImpl()->page();
1192 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1194 EXPECT_EQ(980, constraints.layoutSize.width());
1195 EXPECT_EQ(1078, constraints.layoutSize.height());
1196 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1197 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1198 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1199 EXPECT_TRUE(page->viewportDescription().userZoom);
1202 TEST_F(ViewportTest, viewport57)
1204 UseMockScrollbarSettings mockScrollbarSettings;
1205 registerMockedHttpURLLoad("viewport/viewport-57.html");
1207 FrameTestHelpers::WebViewHelper webViewHelper;
1208 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-57.html", true, 0, 0, setViewportSettings);
1210 Page* page = webViewHelper.webViewImpl()->page();
1211 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1213 EXPECT_EQ(320, constraints.layoutSize.width());
1214 EXPECT_EQ(352, constraints.layoutSize.height());
1215 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1216 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1217 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1218 EXPECT_TRUE(page->viewportDescription().userZoom);
1221 TEST_F(ViewportTest, viewport58)
1223 UseMockScrollbarSettings mockScrollbarSettings;
1224 registerMockedHttpURLLoad("viewport/viewport-58.html");
1226 FrameTestHelpers::WebViewHelper webViewHelper;
1227 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-58.html", true, 0, 0, setViewportSettings);
1229 Page* page = webViewHelper.webViewImpl()->page();
1230 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1232 EXPECT_EQ(3200, constraints.layoutSize.width());
1233 EXPECT_EQ(3520, constraints.layoutSize.height());
1234 EXPECT_NEAR(0.1f, constraints.initialScale, 0.01f);
1235 EXPECT_NEAR(0.1f, constraints.minimumScale, 0.01f);
1236 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1237 EXPECT_TRUE(page->viewportDescription().userZoom);
1240 TEST_F(ViewportTest, viewport59)
1242 UseMockScrollbarSettings mockScrollbarSettings;
1243 registerMockedHttpURLLoad("viewport/viewport-59.html");
1245 FrameTestHelpers::WebViewHelper webViewHelper;
1246 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-59.html", true, 0, 0, setViewportSettings);
1248 Page* page = webViewHelper.webViewImpl()->page();
1249 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1251 EXPECT_EQ(320, constraints.layoutSize.width());
1252 EXPECT_EQ(352, constraints.layoutSize.height());
1253 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1254 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1255 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
1256 EXPECT_TRUE(page->viewportDescription().userZoom);
1259 TEST_F(ViewportTest, viewport60)
1261 UseMockScrollbarSettings mockScrollbarSettings;
1262 registerMockedHttpURLLoad("viewport/viewport-60.html");
1264 FrameTestHelpers::WebViewHelper webViewHelper;
1265 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-60.html", true, 0, 0, setViewportSettings);
1267 Page* page = webViewHelper.webViewImpl()->page();
1268 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1270 EXPECT_EQ(32, constraints.layoutSize.width());
1271 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01f);
1272 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
1273 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1274 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1275 EXPECT_TRUE(page->viewportDescription().userZoom);
1278 TEST_F(ViewportTest, viewport61)
1280 UseMockScrollbarSettings mockScrollbarSettings;
1281 registerMockedHttpURLLoad("viewport/viewport-61.html");
1283 FrameTestHelpers::WebViewHelper webViewHelper;
1284 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-61.html", true, 0, 0, setViewportSettings);
1286 Page* page = webViewHelper.webViewImpl()->page();
1287 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1289 EXPECT_EQ(320, constraints.layoutSize.width());
1290 EXPECT_EQ(352, constraints.layoutSize.height());
1291 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1292 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1293 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1294 EXPECT_TRUE(page->viewportDescription().userZoom);
1297 TEST_F(ViewportTest, viewport62)
1299 UseMockScrollbarSettings mockScrollbarSettings;
1300 registerMockedHttpURLLoad("viewport/viewport-62.html");
1302 FrameTestHelpers::WebViewHelper webViewHelper;
1303 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-62.html", true, 0, 0, setViewportSettings);
1305 Page* page = webViewHelper.webViewImpl()->page();
1306 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1308 EXPECT_EQ(320, constraints.layoutSize.width());
1309 EXPECT_EQ(352, constraints.layoutSize.height());
1310 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1311 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1312 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1313 EXPECT_TRUE(page->viewportDescription().userZoom);
1316 TEST_F(ViewportTest, viewport63)
1318 UseMockScrollbarSettings mockScrollbarSettings;
1319 registerMockedHttpURLLoad("viewport/viewport-63.html");
1321 FrameTestHelpers::WebViewHelper webViewHelper;
1322 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-63.html", true, 0, 0, setViewportSettings);
1324 Page* page = webViewHelper.webViewImpl()->page();
1325 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1327 EXPECT_EQ(320, constraints.layoutSize.width());
1328 EXPECT_EQ(352, constraints.layoutSize.height());
1329 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1330 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1331 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1332 EXPECT_TRUE(page->viewportDescription().userZoom);
1335 TEST_F(ViewportTest, viewport64)
1337 UseMockScrollbarSettings mockScrollbarSettings;
1338 registerMockedHttpURLLoad("viewport/viewport-64.html");
1340 FrameTestHelpers::WebViewHelper webViewHelper;
1341 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-64.html", true, 0, 0, setViewportSettings);
1343 Page* page = webViewHelper.webViewImpl()->page();
1344 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1346 EXPECT_EQ(320, constraints.layoutSize.width());
1347 EXPECT_EQ(352, constraints.layoutSize.height());
1348 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1349 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1350 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1351 EXPECT_TRUE(page->viewportDescription().userZoom);
1354 TEST_F(ViewportTest, viewport65)
1356 UseMockScrollbarSettings mockScrollbarSettings;
1357 registerMockedHttpURLLoad("viewport/viewport-65.html");
1359 FrameTestHelpers::WebViewHelper webViewHelper;
1360 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-65.html", true, 0, 0, setViewportSettings);
1362 Page* page = webViewHelper.webViewImpl()->page();
1363 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1365 EXPECT_EQ(100, constraints.layoutSize.width());
1366 EXPECT_EQ(110, constraints.layoutSize.height());
1367 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1368 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1369 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1370 EXPECT_TRUE(page->viewportDescription().userZoom);
1373 TEST_F(ViewportTest, viewport66)
1375 UseMockScrollbarSettings mockScrollbarSettings;
1376 registerMockedHttpURLLoad("viewport/viewport-66.html");
1378 FrameTestHelpers::WebViewHelper webViewHelper;
1379 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-66.html", true, 0, 0, setViewportSettings);
1381 Page* page = webViewHelper.webViewImpl()->page();
1382 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1384 EXPECT_EQ(100, constraints.layoutSize.width());
1385 EXPECT_EQ(110, constraints.layoutSize.height());
1386 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1387 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1388 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1389 EXPECT_TRUE(page->viewportDescription().userZoom);
1392 TEST_F(ViewportTest, viewport67)
1394 UseMockScrollbarSettings mockScrollbarSettings;
1395 registerMockedHttpURLLoad("viewport/viewport-67.html");
1397 FrameTestHelpers::WebViewHelper webViewHelper;
1398 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-67.html", true, 0, 0, setViewportSettings);
1400 Page* page = webViewHelper.webViewImpl()->page();
1401 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1403 EXPECT_EQ(320, constraints.layoutSize.width());
1404 EXPECT_EQ(352, constraints.layoutSize.height());
1405 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1406 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1407 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1408 EXPECT_TRUE(page->viewportDescription().userZoom);
1411 TEST_F(ViewportTest, viewport68)
1413 UseMockScrollbarSettings mockScrollbarSettings;
1414 registerMockedHttpURLLoad("viewport/viewport-68.html");
1416 FrameTestHelpers::WebViewHelper webViewHelper;
1417 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-68.html", true, 0, 0, setViewportSettings);
1419 Page* page = webViewHelper.webViewImpl()->page();
1420 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1422 EXPECT_EQ(320, constraints.layoutSize.width());
1423 EXPECT_EQ(352, constraints.layoutSize.height());
1424 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1425 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1426 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1427 EXPECT_TRUE(page->viewportDescription().userZoom);
1430 TEST_F(ViewportTest, viewport69)
1432 UseMockScrollbarSettings mockScrollbarSettings;
1433 registerMockedHttpURLLoad("viewport/viewport-69.html");
1435 FrameTestHelpers::WebViewHelper webViewHelper;
1436 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-69.html", true, 0, 0, setViewportSettings);
1438 Page* page = webViewHelper.webViewImpl()->page();
1439 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1441 EXPECT_EQ(100, constraints.layoutSize.width());
1442 EXPECT_EQ(110, constraints.layoutSize.height());
1443 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1444 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1445 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1446 EXPECT_TRUE(page->viewportDescription().userZoom);
1449 TEST_F(ViewportTest, viewport70)
1451 UseMockScrollbarSettings mockScrollbarSettings;
1452 registerMockedHttpURLLoad("viewport/viewport-70.html");
1454 FrameTestHelpers::WebViewHelper webViewHelper;
1455 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-70.html", true, 0, 0, setViewportSettings);
1457 Page* page = webViewHelper.webViewImpl()->page();
1458 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1460 EXPECT_EQ(100, constraints.layoutSize.width());
1461 EXPECT_EQ(110, constraints.layoutSize.height());
1462 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1463 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1464 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1465 EXPECT_TRUE(page->viewportDescription().userZoom);
1468 TEST_F(ViewportTest, viewport71)
1470 UseMockScrollbarSettings mockScrollbarSettings;
1471 registerMockedHttpURLLoad("viewport/viewport-71.html");
1473 FrameTestHelpers::WebViewHelper webViewHelper;
1474 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-71.html", true, 0, 0, setViewportSettings);
1476 Page* page = webViewHelper.webViewImpl()->page();
1477 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1479 EXPECT_EQ(320, constraints.layoutSize.width());
1480 EXPECT_EQ(352, constraints.layoutSize.height());
1481 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1482 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1483 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1484 EXPECT_TRUE(page->viewportDescription().userZoom);
1487 TEST_F(ViewportTest, viewport72)
1489 UseMockScrollbarSettings mockScrollbarSettings;
1490 registerMockedHttpURLLoad("viewport/viewport-72.html");
1492 FrameTestHelpers::WebViewHelper webViewHelper;
1493 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-72.html", true, 0, 0, setViewportSettings);
1495 Page* page = webViewHelper.webViewImpl()->page();
1496 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1498 EXPECT_EQ(100, constraints.layoutSize.width());
1499 EXPECT_EQ(110, constraints.layoutSize.height());
1500 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1501 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1502 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1503 EXPECT_TRUE(page->viewportDescription().userZoom);
1506 TEST_F(ViewportTest, viewport73)
1508 UseMockScrollbarSettings mockScrollbarSettings;
1509 registerMockedHttpURLLoad("viewport/viewport-73.html");
1511 FrameTestHelpers::WebViewHelper webViewHelper;
1512 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-73.html", true, 0, 0, setViewportSettings);
1514 Page* page = webViewHelper.webViewImpl()->page();
1515 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1517 EXPECT_EQ(100, constraints.layoutSize.width());
1518 EXPECT_EQ(110, constraints.layoutSize.height());
1519 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1520 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1521 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1522 EXPECT_TRUE(page->viewportDescription().userZoom);
1525 TEST_F(ViewportTest, viewport74)
1527 UseMockScrollbarSettings mockScrollbarSettings;
1528 registerMockedHttpURLLoad("viewport/viewport-74.html");
1530 FrameTestHelpers::WebViewHelper webViewHelper;
1531 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-74.html", true, 0, 0, setViewportSettings);
1533 Page* page = webViewHelper.webViewImpl()->page();
1534 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1536 EXPECT_EQ(100, constraints.layoutSize.width());
1537 EXPECT_EQ(110, constraints.layoutSize.height());
1538 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1539 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1540 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1541 EXPECT_TRUE(page->viewportDescription().userZoom);
1544 TEST_F(ViewportTest, viewport75)
1546 UseMockScrollbarSettings mockScrollbarSettings;
1547 registerMockedHttpURLLoad("viewport/viewport-75.html");
1549 FrameTestHelpers::WebViewHelper webViewHelper;
1550 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-75.html", true, 0, 0, setViewportSettings);
1552 Page* page = webViewHelper.webViewImpl()->page();
1553 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1555 EXPECT_EQ(64, constraints.layoutSize.width());
1556 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1557 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1558 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1559 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1560 EXPECT_TRUE(page->viewportDescription().userZoom);
1563 TEST_F(ViewportTest, viewport76)
1565 UseMockScrollbarSettings mockScrollbarSettings;
1566 registerMockedHttpURLLoad("viewport/viewport-76.html");
1568 FrameTestHelpers::WebViewHelper webViewHelper;
1569 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-76.html", true, 0, 0, setViewportSettings);
1571 Page* page = webViewHelper.webViewImpl()->page();
1572 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1574 EXPECT_EQ(32, constraints.layoutSize.width());
1575 EXPECT_NEAR(35.2, constraints.layoutSize.height(), 0.01);
1576 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
1577 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
1578 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
1579 EXPECT_TRUE(page->viewportDescription().userZoom);
1582 TEST_F(ViewportTest, viewport77)
1584 UseMockScrollbarSettings mockScrollbarSettings;
1585 registerMockedHttpURLLoad("viewport/viewport-77.html");
1587 FrameTestHelpers::WebViewHelper webViewHelper;
1588 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-77.html", true, 0, 0, setViewportSettings);
1590 Page* page = webViewHelper.webViewImpl()->page();
1591 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1593 EXPECT_EQ(1280, constraints.layoutSize.width());
1594 EXPECT_EQ(1408, constraints.layoutSize.height());
1595 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
1596 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1597 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1598 EXPECT_TRUE(page->viewportDescription().userZoom);
1601 TEST_F(ViewportTest, viewport78)
1603 UseMockScrollbarSettings mockScrollbarSettings;
1604 registerMockedHttpURLLoad("viewport/viewport-78.html");
1606 FrameTestHelpers::WebViewHelper webViewHelper;
1607 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-78.html", true, 0, 0, setViewportSettings);
1609 Page* page = webViewHelper.webViewImpl()->page();
1610 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1612 EXPECT_EQ(100, constraints.layoutSize.width());
1613 EXPECT_EQ(110, constraints.layoutSize.height());
1614 EXPECT_NEAR(3.2f, constraints.initialScale, 0.01f);
1615 EXPECT_NEAR(3.2f, constraints.minimumScale, 0.01f);
1616 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1617 EXPECT_TRUE(page->viewportDescription().userZoom);
1620 TEST_F(ViewportTest, viewport79)
1622 UseMockScrollbarSettings mockScrollbarSettings;
1623 registerMockedHttpURLLoad("viewport/viewport-79.html");
1625 FrameTestHelpers::WebViewHelper webViewHelper;
1626 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-79.html", true, 0, 0, setViewportSettings);
1628 Page* page = webViewHelper.webViewImpl()->page();
1629 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1631 EXPECT_EQ(320, constraints.layoutSize.width());
1632 EXPECT_EQ(352, constraints.layoutSize.height());
1633 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1634 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1635 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1636 EXPECT_TRUE(page->viewportDescription().userZoom);
1639 TEST_F(ViewportTest, viewport80)
1641 UseMockScrollbarSettings mockScrollbarSettings;
1642 registerMockedHttpURLLoad("viewport/viewport-80.html");
1644 FrameTestHelpers::WebViewHelper webViewHelper;
1645 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-80.html", true, 0, 0, setViewportSettings);
1647 Page* page = webViewHelper.webViewImpl()->page();
1648 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1650 EXPECT_EQ(320, constraints.layoutSize.width());
1651 EXPECT_EQ(352, constraints.layoutSize.height());
1652 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
1653 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
1654 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1655 EXPECT_TRUE(page->viewportDescription().userZoom);
1658 TEST_F(ViewportTest, viewport81)
1660 UseMockScrollbarSettings mockScrollbarSettings;
1661 registerMockedHttpURLLoad("viewport/viewport-81.html");
1663 FrameTestHelpers::WebViewHelper webViewHelper;
1664 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-81.html", true, 0, 0, setViewportSettings);
1666 Page* page = webViewHelper.webViewImpl()->page();
1667 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1669 EXPECT_EQ(3000, constraints.layoutSize.width());
1670 EXPECT_EQ(3300, constraints.layoutSize.height());
1671 EXPECT_NEAR(0.25f, constraints.initialScale, 0.01f);
1672 EXPECT_NEAR(0.25f, constraints.minimumScale, 0.01f);
1673 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1674 EXPECT_TRUE(page->viewportDescription().userZoom);
1677 TEST_F(ViewportTest, viewport82)
1679 UseMockScrollbarSettings mockScrollbarSettings;
1680 registerMockedHttpURLLoad("viewport/viewport-82.html");
1682 FrameTestHelpers::WebViewHelper webViewHelper;
1683 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-82.html", true, 0, 0, setViewportSettings);
1685 Page* page = webViewHelper.webViewImpl()->page();
1686 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1688 EXPECT_EQ(400, constraints.layoutSize.width());
1689 EXPECT_EQ(440, constraints.layoutSize.height());
1690 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1691 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1692 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1693 EXPECT_TRUE(page->viewportDescription().userZoom);
1696 TEST_F(ViewportTest, viewport83)
1698 UseMockScrollbarSettings mockScrollbarSettings;
1699 registerMockedHttpURLLoad("viewport/viewport-83.html");
1701 FrameTestHelpers::WebViewHelper webViewHelper;
1702 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-83.html", true, 0, 0, setViewportSettings);
1704 Page* page = webViewHelper.webViewImpl()->page();
1705 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1707 EXPECT_EQ(64, constraints.layoutSize.width());
1708 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1709 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1710 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1711 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1712 EXPECT_TRUE(page->viewportDescription().userZoom);
1715 TEST_F(ViewportTest, viewport84)
1717 UseMockScrollbarSettings mockScrollbarSettings;
1718 registerMockedHttpURLLoad("viewport/viewport-84.html");
1720 FrameTestHelpers::WebViewHelper webViewHelper;
1721 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-84.html", true, 0, 0, setViewportSettings);
1723 Page* page = webViewHelper.webViewImpl()->page();
1724 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1726 EXPECT_EQ(64, constraints.layoutSize.width());
1727 EXPECT_EQ(480, constraints.layoutSize.height());
1728 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1729 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1730 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1731 EXPECT_TRUE(page->viewportDescription().userZoom);
1734 TEST_F(ViewportTest, viewport85)
1736 UseMockScrollbarSettings mockScrollbarSettings;
1737 registerMockedHttpURLLoad("viewport/viewport-85.html");
1739 FrameTestHelpers::WebViewHelper webViewHelper;
1740 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-85.html", true, 0, 0, setViewportSettings);
1742 Page* page = webViewHelper.webViewImpl()->page();
1743 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1745 EXPECT_EQ(540, constraints.layoutSize.width());
1746 EXPECT_EQ(594, constraints.layoutSize.height());
1747 EXPECT_NEAR(0.59f, constraints.initialScale, 0.01f);
1748 EXPECT_NEAR(0.59f, constraints.minimumScale, 0.01f);
1749 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1750 EXPECT_TRUE(page->viewportDescription().userZoom);
1753 TEST_F(ViewportTest, viewport86)
1755 UseMockScrollbarSettings mockScrollbarSettings;
1756 registerMockedHttpURLLoad("viewport/viewport-86.html");
1758 FrameTestHelpers::WebViewHelper webViewHelper;
1759 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-86.html", true, 0, 0, setViewportSettings);
1761 Page* page = webViewHelper.webViewImpl()->page();
1762 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1764 EXPECT_NEAR(457.14, constraints.layoutSize.width(), 0.01f);
1765 EXPECT_NEAR(502.86, constraints.layoutSize.height(), 0.01f);
1766 EXPECT_NEAR(0.7f, constraints.initialScale, 0.01f);
1767 EXPECT_NEAR(0.7f, constraints.minimumScale, 0.01f);
1768 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1769 EXPECT_TRUE(page->viewportDescription().userZoom);
1772 TEST_F(ViewportTest, viewport87)
1774 UseMockScrollbarSettings mockScrollbarSettings;
1775 registerMockedHttpURLLoad("viewport/viewport-87.html");
1777 FrameTestHelpers::WebViewHelper webViewHelper;
1778 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-87.html", true, 0, 0, setViewportSettings);
1780 Page* page = webViewHelper.webViewImpl()->page();
1781 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1783 EXPECT_EQ(64, constraints.layoutSize.width());
1784 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
1785 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
1786 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
1787 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1788 EXPECT_TRUE(page->viewportDescription().userZoom);
1791 TEST_F(ViewportTest, viewport88)
1793 UseMockScrollbarSettings mockScrollbarSettings;
1794 registerMockedHttpURLLoad("viewport/viewport-88.html");
1796 FrameTestHelpers::WebViewHelper webViewHelper;
1797 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-88.html", true, 0, 0, setViewportSettings);
1799 Page* page = webViewHelper.webViewImpl()->page();
1800 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1802 EXPECT_EQ(980, constraints.layoutSize.width());
1803 EXPECT_EQ(1078, constraints.layoutSize.height());
1804 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1805 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1806 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1807 EXPECT_TRUE(page->viewportDescription().userZoom);
1810 TEST_F(ViewportTest, viewport90)
1812 UseMockScrollbarSettings mockScrollbarSettings;
1813 registerMockedHttpURLLoad("viewport/viewport-90.html");
1815 FrameTestHelpers::WebViewHelper webViewHelper;
1816 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-90.html", true, 0, 0, setViewportSettings);
1818 Page* page = webViewHelper.webViewImpl()->page();
1819 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1821 EXPECT_EQ(700, constraints.layoutSize.width());
1822 EXPECT_EQ(770, constraints.layoutSize.height());
1823 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
1824 EXPECT_NEAR(0.46f, constraints.minimumScale, 0.01f);
1825 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1826 EXPECT_TRUE(page->viewportDescription().userZoom);
1829 TEST_F(ViewportTest, viewport100)
1831 UseMockScrollbarSettings mockScrollbarSettings;
1832 registerMockedHttpURLLoad("viewport/viewport-100.html");
1834 FrameTestHelpers::WebViewHelper webViewHelper;
1835 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-100.html", true, 0, 0, setViewportSettings);
1837 Page* page = webViewHelper.webViewImpl()->page();
1838 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1840 EXPECT_EQ(400, constraints.layoutSize.width());
1841 EXPECT_EQ(440, constraints.layoutSize.height());
1842 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1843 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1844 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1845 EXPECT_TRUE(page->viewportDescription().userZoom);
1848 TEST_F(ViewportTest, viewport101)
1850 UseMockScrollbarSettings mockScrollbarSettings;
1851 registerMockedHttpURLLoad("viewport/viewport-101.html");
1853 FrameTestHelpers::WebViewHelper webViewHelper;
1854 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-101.html", true, 0, 0, setViewportSettings);
1856 Page* page = webViewHelper.webViewImpl()->page();
1857 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1859 EXPECT_EQ(400, constraints.layoutSize.width());
1860 EXPECT_EQ(440, constraints.layoutSize.height());
1861 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1862 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1863 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1864 EXPECT_TRUE(page->viewportDescription().userZoom);
1867 TEST_F(ViewportTest, viewport102)
1869 UseMockScrollbarSettings mockScrollbarSettings;
1870 registerMockedHttpURLLoad("viewport/viewport-102.html");
1872 FrameTestHelpers::WebViewHelper webViewHelper;
1873 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-102.html", true, 0, 0, setViewportSettings);
1875 Page* page = webViewHelper.webViewImpl()->page();
1876 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1878 EXPECT_EQ(400, constraints.layoutSize.width());
1879 EXPECT_EQ(440, constraints.layoutSize.height());
1880 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1881 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1882 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1883 EXPECT_TRUE(page->viewportDescription().userZoom);
1886 TEST_F(ViewportTest, viewport103)
1888 UseMockScrollbarSettings mockScrollbarSettings;
1889 registerMockedHttpURLLoad("viewport/viewport-103.html");
1891 FrameTestHelpers::WebViewHelper webViewHelper;
1892 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-103.html", true, 0, 0, setViewportSettings);
1894 Page* page = webViewHelper.webViewImpl()->page();
1895 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1897 EXPECT_EQ(400, constraints.layoutSize.width());
1898 EXPECT_EQ(440, constraints.layoutSize.height());
1899 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
1900 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
1901 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1902 EXPECT_TRUE(page->viewportDescription().userZoom);
1905 TEST_F(ViewportTest, viewport104)
1907 UseMockScrollbarSettings mockScrollbarSettings;
1908 registerMockedHttpURLLoad("viewport/viewport-104.html");
1910 FrameTestHelpers::WebViewHelper webViewHelper;
1911 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-104.html", true, 0, 0, setViewportSettings);
1913 Page* page = webViewHelper.webViewImpl()->page();
1914 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1916 EXPECT_EQ(980, constraints.layoutSize.width());
1917 EXPECT_EQ(1078, constraints.layoutSize.height());
1918 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1919 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1920 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1921 EXPECT_TRUE(page->viewportDescription().userZoom);
1924 TEST_F(ViewportTest, viewport105)
1926 UseMockScrollbarSettings mockScrollbarSettings;
1927 registerMockedHttpURLLoad("viewport/viewport-105.html");
1929 FrameTestHelpers::WebViewHelper webViewHelper;
1930 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-105.html", true, 0, 0, setViewportSettings);
1932 Page* page = webViewHelper.webViewImpl()->page();
1933 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1935 EXPECT_EQ(980, constraints.layoutSize.width());
1936 EXPECT_EQ(1078, constraints.layoutSize.height());
1937 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1938 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1939 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1940 EXPECT_TRUE(page->viewportDescription().userZoom);
1943 TEST_F(ViewportTest, viewport106)
1945 UseMockScrollbarSettings mockScrollbarSettings;
1946 registerMockedHttpURLLoad("viewport/viewport-106.html");
1948 FrameTestHelpers::WebViewHelper webViewHelper;
1949 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-106.html", true, 0, 0, setViewportSettings);
1951 Page* page = webViewHelper.webViewImpl()->page();
1952 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1954 EXPECT_EQ(980, constraints.layoutSize.width());
1955 EXPECT_EQ(1078, constraints.layoutSize.height());
1956 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1957 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1958 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1959 EXPECT_TRUE(page->viewportDescription().userZoom);
1962 TEST_F(ViewportTest, viewport107)
1964 UseMockScrollbarSettings mockScrollbarSettings;
1965 registerMockedHttpURLLoad("viewport/viewport-107.html");
1967 FrameTestHelpers::WebViewHelper webViewHelper;
1968 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-107.html", true, 0, 0, setViewportSettings);
1970 Page* page = webViewHelper.webViewImpl()->page();
1971 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1973 EXPECT_EQ(980, constraints.layoutSize.width());
1974 EXPECT_EQ(1078, constraints.layoutSize.height());
1975 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1976 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1977 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1978 EXPECT_TRUE(page->viewportDescription().userZoom);
1981 TEST_F(ViewportTest, viewport108)
1983 UseMockScrollbarSettings mockScrollbarSettings;
1984 registerMockedHttpURLLoad("viewport/viewport-108.html");
1986 FrameTestHelpers::WebViewHelper webViewHelper;
1987 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-108.html", true, 0, 0, setViewportSettings);
1989 Page* page = webViewHelper.webViewImpl()->page();
1990 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1992 EXPECT_EQ(980, constraints.layoutSize.width());
1993 EXPECT_EQ(1078, constraints.layoutSize.height());
1994 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
1995 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
1996 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
1997 EXPECT_TRUE(page->viewportDescription().userZoom);
2000 TEST_F(ViewportTest, viewport109)
2002 UseMockScrollbarSettings mockScrollbarSettings;
2003 registerMockedHttpURLLoad("viewport/viewport-109.html");
2005 FrameTestHelpers::WebViewHelper webViewHelper;
2006 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-109.html", true, 0, 0, setViewportSettings);
2008 Page* page = webViewHelper.webViewImpl()->page();
2009 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2011 EXPECT_EQ(980, constraints.layoutSize.width());
2012 EXPECT_EQ(1078, constraints.layoutSize.height());
2013 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2014 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2015 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2016 EXPECT_TRUE(page->viewportDescription().userZoom);
2019 TEST_F(ViewportTest, viewport110)
2021 UseMockScrollbarSettings mockScrollbarSettings;
2022 registerMockedHttpURLLoad("viewport/viewport-110.html");
2024 FrameTestHelpers::WebViewHelper webViewHelper;
2025 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-110.html", true, 0, 0, setViewportSettings);
2027 Page* page = webViewHelper.webViewImpl()->page();
2028 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2030 EXPECT_EQ(980, constraints.layoutSize.width());
2031 EXPECT_EQ(1078, constraints.layoutSize.height());
2032 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2033 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2034 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2035 EXPECT_TRUE(page->viewportDescription().userZoom);
2038 TEST_F(ViewportTest, viewport111)
2040 UseMockScrollbarSettings mockScrollbarSettings;
2041 registerMockedHttpURLLoad("viewport/viewport-111.html");
2043 FrameTestHelpers::WebViewHelper webViewHelper;
2044 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-111.html", true, 0, 0, setViewportSettings);
2046 Page* page = webViewHelper.webViewImpl()->page();
2047 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2049 EXPECT_EQ(980, constraints.layoutSize.width());
2050 EXPECT_EQ(1078, constraints.layoutSize.height());
2051 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2052 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2053 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2054 EXPECT_TRUE(page->viewportDescription().userZoom);
2057 TEST_F(ViewportTest, viewport112)
2059 UseMockScrollbarSettings mockScrollbarSettings;
2060 registerMockedHttpURLLoad("viewport/viewport-112.html");
2062 FrameTestHelpers::WebViewHelper webViewHelper;
2063 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-112.html", true, 0, 0, setViewportSettings);
2065 Page* page = webViewHelper.webViewImpl()->page();
2066 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2068 EXPECT_EQ(400, constraints.layoutSize.width());
2069 EXPECT_EQ(440, constraints.layoutSize.height());
2070 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2071 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2072 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2073 EXPECT_TRUE(page->viewportDescription().userZoom);
2076 TEST_F(ViewportTest, viewport113)
2078 UseMockScrollbarSettings mockScrollbarSettings;
2079 registerMockedHttpURLLoad("viewport/viewport-113.html");
2081 FrameTestHelpers::WebViewHelper webViewHelper;
2082 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-113.html", true, 0, 0, setViewportSettings);
2084 Page* page = webViewHelper.webViewImpl()->page();
2085 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2087 EXPECT_EQ(980, constraints.layoutSize.width());
2088 EXPECT_EQ(1078, constraints.layoutSize.height());
2089 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2090 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2091 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2092 EXPECT_TRUE(page->viewportDescription().userZoom);
2095 TEST_F(ViewportTest, viewport114)
2097 UseMockScrollbarSettings mockScrollbarSettings;
2098 registerMockedHttpURLLoad("viewport/viewport-114.html");
2100 FrameTestHelpers::WebViewHelper webViewHelper;
2101 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-114.html", true, 0, 0, setViewportSettings);
2103 Page* page = webViewHelper.webViewImpl()->page();
2104 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2106 EXPECT_EQ(980, constraints.layoutSize.width());
2107 EXPECT_EQ(1078, constraints.layoutSize.height());
2108 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2109 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2110 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2111 EXPECT_TRUE(page->viewportDescription().userZoom);
2114 TEST_F(ViewportTest, viewport115)
2116 UseMockScrollbarSettings mockScrollbarSettings;
2117 registerMockedHttpURLLoad("viewport/viewport-115.html");
2119 FrameTestHelpers::WebViewHelper webViewHelper;
2120 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-115.html", true, 0, 0, setViewportSettings);
2122 Page* page = webViewHelper.webViewImpl()->page();
2123 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2125 EXPECT_EQ(400, constraints.layoutSize.width());
2126 EXPECT_EQ(440, constraints.layoutSize.height());
2127 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2128 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2129 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2130 EXPECT_TRUE(page->viewportDescription().userZoom);
2133 TEST_F(ViewportTest, viewport116)
2135 UseMockScrollbarSettings mockScrollbarSettings;
2136 registerMockedHttpURLLoad("viewport/viewport-116.html");
2138 FrameTestHelpers::WebViewHelper webViewHelper;
2139 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-116.html", true, 0, 0, setViewportSettings);
2141 Page* page = webViewHelper.webViewImpl()->page();
2142 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2144 EXPECT_EQ(400, constraints.layoutSize.width());
2145 EXPECT_EQ(440, constraints.layoutSize.height());
2146 EXPECT_NEAR(0.8f, constraints.initialScale, 0.01f);
2147 EXPECT_NEAR(0.8f, constraints.minimumScale, 0.01f);
2148 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2149 EXPECT_TRUE(page->viewportDescription().userZoom);
2152 TEST_F(ViewportTest, viewport117)
2154 UseMockScrollbarSettings mockScrollbarSettings;
2155 registerMockedHttpURLLoad("viewport/viewport-117.html");
2157 FrameTestHelpers::WebViewHelper webViewHelper;
2158 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-117.html", true, 0, 0, setViewportSettings);
2160 Page* page = webViewHelper.webViewImpl()->page();
2161 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2163 EXPECT_EQ(980, constraints.layoutSize.width());
2164 EXPECT_EQ(400, constraints.layoutSize.height());
2165 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2166 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2167 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2168 EXPECT_TRUE(page->viewportDescription().userZoom);
2171 TEST_F(ViewportTest, viewport118)
2173 UseMockScrollbarSettings mockScrollbarSettings;
2174 registerMockedHttpURLLoad("viewport/viewport-118.html");
2176 FrameTestHelpers::WebViewHelper webViewHelper;
2177 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-118.html", true, 0, 0, setViewportSettings);
2179 Page* page = webViewHelper.webViewImpl()->page();
2180 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2182 EXPECT_EQ(320, constraints.layoutSize.width());
2183 EXPECT_EQ(352, constraints.layoutSize.height());
2184 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2185 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2186 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2187 EXPECT_TRUE(page->viewportDescription().userZoom);
2190 TEST_F(ViewportTest, viewport119)
2192 UseMockScrollbarSettings mockScrollbarSettings;
2193 registerMockedHttpURLLoad("viewport/viewport-119.html");
2195 FrameTestHelpers::WebViewHelper webViewHelper;
2196 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-119.html", true, 0, 0, setViewportSettings);
2198 Page* page = webViewHelper.webViewImpl()->page();
2199 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2201 EXPECT_EQ(320, constraints.layoutSize.width());
2202 EXPECT_EQ(352, constraints.layoutSize.height());
2203 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2204 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2205 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2206 EXPECT_TRUE(page->viewportDescription().userZoom);
2209 TEST_F(ViewportTest, viewport120)
2211 UseMockScrollbarSettings mockScrollbarSettings;
2212 registerMockedHttpURLLoad("viewport/viewport-120.html");
2214 FrameTestHelpers::WebViewHelper webViewHelper;
2215 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-120.html", true, 0, 0, setViewportSettings);
2217 Page* page = webViewHelper.webViewImpl()->page();
2218 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2220 EXPECT_EQ(320, constraints.layoutSize.width());
2221 EXPECT_EQ(352, constraints.layoutSize.height());
2222 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2223 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2224 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2225 EXPECT_TRUE(page->viewportDescription().userZoom);
2228 TEST_F(ViewportTest, viewport121)
2230 UseMockScrollbarSettings mockScrollbarSettings;
2231 registerMockedHttpURLLoad("viewport/viewport-121.html");
2233 FrameTestHelpers::WebViewHelper webViewHelper;
2234 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-121.html", true, 0, 0, setViewportSettings);
2236 Page* page = webViewHelper.webViewImpl()->page();
2237 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2239 EXPECT_EQ(64, constraints.layoutSize.width());
2240 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2241 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2242 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2243 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2244 EXPECT_TRUE(page->viewportDescription().userZoom);
2247 TEST_F(ViewportTest, viewport122)
2249 UseMockScrollbarSettings mockScrollbarSettings;
2250 registerMockedHttpURLLoad("viewport/viewport-122.html");
2252 FrameTestHelpers::WebViewHelper webViewHelper;
2253 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-122.html", true, 0, 0, setViewportSettings);
2255 Page* page = webViewHelper.webViewImpl()->page();
2256 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2258 EXPECT_EQ(64, constraints.layoutSize.width());
2259 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2260 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2261 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2262 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2263 EXPECT_TRUE(page->viewportDescription().userZoom);
2266 TEST_F(ViewportTest, viewport123)
2268 UseMockScrollbarSettings mockScrollbarSettings;
2269 registerMockedHttpURLLoad("viewport/viewport-123.html");
2271 FrameTestHelpers::WebViewHelper webViewHelper;
2272 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-123.html", true, 0, 0, setViewportSettings);
2274 Page* page = webViewHelper.webViewImpl()->page();
2275 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2277 EXPECT_EQ(320, constraints.layoutSize.width());
2278 EXPECT_EQ(352, constraints.layoutSize.height());
2279 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2280 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2281 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2282 EXPECT_TRUE(page->viewportDescription().userZoom);
2285 TEST_F(ViewportTest, viewport124)
2287 UseMockScrollbarSettings mockScrollbarSettings;
2288 registerMockedHttpURLLoad("viewport/viewport-124.html");
2290 FrameTestHelpers::WebViewHelper webViewHelper;
2291 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-124.html", true, 0, 0, setViewportSettings);
2293 Page* page = webViewHelper.webViewImpl()->page();
2294 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2296 EXPECT_EQ(320, constraints.layoutSize.width());
2297 EXPECT_EQ(352, constraints.layoutSize.height());
2298 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2299 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2300 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2301 EXPECT_TRUE(page->viewportDescription().userZoom);
2304 TEST_F(ViewportTest, viewport125)
2306 UseMockScrollbarSettings mockScrollbarSettings;
2307 registerMockedHttpURLLoad("viewport/viewport-125.html");
2309 FrameTestHelpers::WebViewHelper webViewHelper;
2310 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-125.html", true, 0, 0, setViewportSettings);
2312 Page* page = webViewHelper.webViewImpl()->page();
2313 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2315 EXPECT_EQ(64, constraints.layoutSize.width());
2316 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2317 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2318 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2319 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2320 EXPECT_TRUE(page->viewportDescription().userZoom);
2323 TEST_F(ViewportTest, viewport126)
2325 UseMockScrollbarSettings mockScrollbarSettings;
2326 registerMockedHttpURLLoad("viewport/viewport-126.html");
2328 FrameTestHelpers::WebViewHelper webViewHelper;
2329 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-126.html", true, 0, 0, setViewportSettings);
2331 Page* page = webViewHelper.webViewImpl()->page();
2332 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2334 EXPECT_EQ(64, constraints.layoutSize.width());
2335 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2336 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2337 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2338 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2339 EXPECT_TRUE(page->viewportDescription().userZoom);
2342 TEST_F(ViewportTest, viewport127)
2344 UseMockScrollbarSettings mockScrollbarSettings;
2345 registerMockedHttpURLLoad("viewport/viewport-127.html");
2347 FrameTestHelpers::WebViewHelper webViewHelper;
2348 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-127.html", true, 0, 0, setViewportSettings);
2350 Page* page = webViewHelper.webViewImpl()->page();
2351 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2353 EXPECT_EQ(64, constraints.layoutSize.width());
2354 EXPECT_NEAR(70.4, constraints.layoutSize.height(), 0.01f);
2355 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
2356 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
2357 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2358 EXPECT_TRUE(page->viewportDescription().userZoom);
2361 TEST_F(ViewportTest, viewport129)
2363 UseMockScrollbarSettings mockScrollbarSettings;
2364 registerMockedHttpURLLoad("viewport/viewport-129.html");
2366 FrameTestHelpers::WebViewHelper webViewHelper;
2367 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-129.html", true, 0, 0, setViewportSettings);
2369 Page* page = webViewHelper.webViewImpl()->page();
2370 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2372 EXPECT_EQ(123, constraints.layoutSize.width());
2373 EXPECT_NEAR(135.3, constraints.layoutSize.height(), 0.01f);
2374 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
2375 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
2376 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2377 EXPECT_TRUE(page->viewportDescription().userZoom);
2380 TEST_F(ViewportTest, viewport130)
2382 UseMockScrollbarSettings mockScrollbarSettings;
2383 registerMockedHttpURLLoad("viewport/viewport-130.html");
2385 FrameTestHelpers::WebViewHelper webViewHelper;
2386 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettings);
2388 Page* page = webViewHelper.webViewImpl()->page();
2389 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2391 EXPECT_EQ(320, constraints.layoutSize.width());
2392 EXPECT_EQ(352, constraints.layoutSize.height());
2393 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2394 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2395 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2396 EXPECT_TRUE(page->viewportDescription().userZoom);
2399 TEST_F(ViewportTest, viewport131)
2401 UseMockScrollbarSettings mockScrollbarSettings;
2402 registerMockedHttpURLLoad("viewport/viewport-131.html");
2404 FrameTestHelpers::WebViewHelper webViewHelper;
2405 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-131.html", true, 0, 0, setViewportSettings);
2407 Page* page = webViewHelper.webViewImpl()->page();
2408 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2410 EXPECT_EQ(320, constraints.layoutSize.width());
2411 EXPECT_EQ(352, constraints.layoutSize.height());
2412 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2413 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2414 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
2415 EXPECT_FALSE(page->viewportDescription().userZoom);
2418 TEST_F(ViewportTest, viewport132)
2420 UseMockScrollbarSettings mockScrollbarSettings;
2421 registerMockedHttpURLLoad("viewport/viewport-132.html");
2423 FrameTestHelpers::WebViewHelper webViewHelper;
2424 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-132.html", true, 0, 0, setViewportSettings);
2426 Page* page = webViewHelper.webViewImpl()->page();
2427 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2429 EXPECT_EQ(320, constraints.layoutSize.width());
2430 EXPECT_EQ(352, constraints.layoutSize.height());
2431 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2432 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2433 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2434 EXPECT_TRUE(page->viewportDescription().userZoom);
2437 TEST_F(ViewportTest, viewport133)
2439 UseMockScrollbarSettings mockScrollbarSettings;
2440 registerMockedHttpURLLoad("viewport/viewport-133.html");
2442 FrameTestHelpers::WebViewHelper webViewHelper;
2443 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-133.html", true, 0, 0, setViewportSettings);
2445 Page* page = webViewHelper.webViewImpl()->page();
2446 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2448 EXPECT_EQ(980, constraints.layoutSize.width());
2449 EXPECT_EQ(1078, constraints.layoutSize.height());
2450 EXPECT_NEAR(10.0f, constraints.initialScale, 0.01f);
2451 EXPECT_NEAR(10.0f, constraints.minimumScale, 0.01f);
2452 EXPECT_NEAR(10.0f, constraints.maximumScale, 0.01f);
2453 EXPECT_TRUE(page->viewportDescription().userZoom);
2456 TEST_F(ViewportTest, viewport134)
2458 UseMockScrollbarSettings mockScrollbarSettings;
2459 registerMockedHttpURLLoad("viewport/viewport-134.html");
2461 FrameTestHelpers::WebViewHelper webViewHelper;
2462 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-134.html", true, 0, 0, setViewportSettings);
2464 Page* page = webViewHelper.webViewImpl()->page();
2465 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2467 EXPECT_EQ(160, constraints.layoutSize.width());
2468 EXPECT_EQ(176, constraints.layoutSize.height());
2469 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
2470 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
2471 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2472 EXPECT_TRUE(page->viewportDescription().userZoom);
2475 TEST_F(ViewportTest, viewport135)
2477 UseMockScrollbarSettings mockScrollbarSettings;
2478 registerMockedHttpURLLoad("viewport/viewport-135.html");
2480 FrameTestHelpers::WebViewHelper webViewHelper;
2481 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-135.html", true, 0, 0, setViewportSettings);
2483 Page* page = webViewHelper.webViewImpl()->page();
2484 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2486 EXPECT_EQ(980, constraints.layoutSize.width());
2487 EXPECT_EQ(1078, constraints.layoutSize.height());
2488 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2489 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2490 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2491 EXPECT_TRUE(page->viewportDescription().userZoom);
2494 TEST_F(ViewportTest, viewport136)
2496 UseMockScrollbarSettings mockScrollbarSettings;
2497 registerMockedHttpURLLoad("viewport/viewport-136.html");
2499 FrameTestHelpers::WebViewHelper webViewHelper;
2500 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-136.html", true, 0, 0, setViewportSettings);
2502 Page* page = webViewHelper.webViewImpl()->page();
2503 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2505 EXPECT_EQ(320, constraints.layoutSize.width());
2506 EXPECT_EQ(352, constraints.layoutSize.height());
2507 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2508 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2509 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2510 EXPECT_TRUE(page->viewportDescription().userZoom);
2513 TEST_F(ViewportTest, viewport137)
2515 UseMockScrollbarSettings mockScrollbarSettings;
2516 registerMockedHttpURLLoad("viewport/viewport-137.html");
2518 FrameTestHelpers::WebViewHelper webViewHelper;
2519 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-137.html", true, 0, 0, setViewportSettings);
2521 Page* page = webViewHelper.webViewImpl()->page();
2522 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2524 EXPECT_EQ(980, constraints.layoutSize.width());
2525 EXPECT_EQ(1078, constraints.layoutSize.height());
2526 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
2527 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
2528 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2529 EXPECT_TRUE(page->viewportDescription().userZoom);
2532 TEST_F(ViewportTest, viewport138)
2534 registerMockedHttpURLLoad("viewport/viewport-138.html");
2536 FrameTestHelpers::WebViewHelper webViewHelper;
2537 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-138.html", true, 0, 0, setViewportSettings);
2539 Page* page = webViewHelper.webViewImpl()->page();
2540 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2542 EXPECT_NEAR(123.0f, constraints.layoutSize.width(), 0.01);
2543 EXPECT_NEAR(135.3f, constraints.layoutSize.height(), 0.01);
2544 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
2545 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
2546 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2547 EXPECT_TRUE(page->viewportDescription().userZoom);
2550 TEST_F(ViewportTest, viewportLegacyHandheldFriendly)
2552 UseMockScrollbarSettings mockScrollbarSettings;
2553 registerMockedHttpURLLoad("viewport/viewport-legacy-handheldfriendly.html");
2555 FrameTestHelpers::WebViewHelper webViewHelper;
2556 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-handheldfriendly.html", true, 0, 0, setViewportSettings);
2558 Page* page = webViewHelper.webViewImpl()->page();
2559 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2561 EXPECT_EQ(320, constraints.layoutSize.width());
2562 EXPECT_EQ(352, constraints.layoutSize.height());
2563 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2564 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2565 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2566 EXPECT_TRUE(page->viewportDescription().userZoom);
2569 static void setQuirkViewportSettings(WebSettings* settings)
2571 setViewportSettings(settings);
2573 // This quirk allows content attributes of meta viewport tags to be merged.
2574 settings->setViewportMetaMergeContentQuirk(true);
2577 TEST_F(ViewportTest, viewportLegacyMergeQuirk1)
2579 UseMockScrollbarSettings mockScrollbarSettings;
2580 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-1.html");
2582 FrameTestHelpers::WebViewHelper webViewHelper;
2583 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-1.html", true, 0, 0, setQuirkViewportSettings);
2585 Page* page = webViewHelper.webViewImpl()->page();
2586 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2588 EXPECT_EQ(640, constraints.layoutSize.width());
2589 EXPECT_EQ(704, constraints.layoutSize.height());
2590 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2591 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2592 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
2593 EXPECT_FALSE(page->viewportDescription().userZoom);
2596 TEST_F(ViewportTest, viewportLegacyMergeQuirk2)
2598 UseMockScrollbarSettings mockScrollbarSettings;
2599 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-2.html");
2601 FrameTestHelpers::WebViewHelper webViewHelper;
2602 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-2.html", true, 0, 0, setQuirkViewportSettings);
2604 Page* page = webViewHelper.webViewImpl()->page();
2606 // This quirk allows content attributes of meta viewport tags to be merged.
2607 page->settings().setViewportMetaMergeContentQuirk(true);
2608 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2610 EXPECT_EQ(500, constraints.layoutSize.width());
2611 EXPECT_EQ(550, constraints.layoutSize.height());
2612 EXPECT_NEAR(2.0f, constraints.initialScale, 0.01f);
2613 EXPECT_NEAR(2.0f, constraints.minimumScale, 0.01f);
2614 EXPECT_NEAR(2.0f, constraints.maximumScale, 0.01f);
2615 EXPECT_FALSE(page->viewportDescription().userZoom);
2618 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWithoutContent)
2620 UseMockScrollbarSettings mockScrollbarSettings;
2621 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized.html");
2623 FrameTestHelpers::WebViewHelper webViewHelper;
2624 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized.html", true, 0, 0, setViewportSettings);
2626 Page* page = webViewHelper.webViewImpl()->page();
2628 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2630 EXPECT_EQ(320, constraints.layoutSize.width());
2631 EXPECT_EQ(352, constraints.layoutSize.height());
2632 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2633 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2634 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2635 EXPECT_TRUE(page->viewportDescription().userZoom);
2638 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith0)
2640 UseMockScrollbarSettings mockScrollbarSettings;
2641 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2643 FrameTestHelpers::WebViewHelper webViewHelper;
2644 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2646 Page* page = webViewHelper.webViewImpl()->page();
2648 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2650 EXPECT_EQ(320, constraints.layoutSize.width());
2651 EXPECT_EQ(352, constraints.layoutSize.height());
2652 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2653 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2654 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2655 EXPECT_TRUE(page->viewportDescription().userZoom);
2658 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith400)
2660 UseMockScrollbarSettings mockScrollbarSettings;
2661 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2663 FrameTestHelpers::WebViewHelper webViewHelper;
2664 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2666 Page* page = webViewHelper.webViewImpl()->page();
2668 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2670 EXPECT_EQ(320, constraints.layoutSize.width());
2671 EXPECT_EQ(352, constraints.layoutSize.height());
2672 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2673 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2674 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2675 EXPECT_TRUE(page->viewportDescription().userZoom);
2678 TEST_F(ViewportTest, viewportLegacyOrdering2)
2680 UseMockScrollbarSettings mockScrollbarSettings;
2681 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-2.html");
2683 FrameTestHelpers::WebViewHelper webViewHelper;
2684 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-2.html", true, 0, 0, setViewportSettings);
2686 Page* page = webViewHelper.webViewImpl()->page();
2688 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2690 EXPECT_EQ(300, constraints.layoutSize.width());
2691 EXPECT_EQ(330, constraints.layoutSize.height());
2692 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2693 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2694 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2695 EXPECT_TRUE(page->viewportDescription().userZoom);
2698 TEST_F(ViewportTest, viewportLegacyOrdering3)
2700 UseMockScrollbarSettings mockScrollbarSettings;
2701 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-3.html");
2703 FrameTestHelpers::WebViewHelper webViewHelper;
2704 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-3.html", true, 0, 0, setViewportSettings);
2706 Page* page = webViewHelper.webViewImpl()->page();
2708 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2710 EXPECT_EQ(300, constraints.layoutSize.width());
2711 EXPECT_EQ(330, constraints.layoutSize.height());
2712 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2713 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2714 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2715 EXPECT_TRUE(page->viewportDescription().userZoom);
2718 TEST_F(ViewportTest, viewportLegacyOrdering4)
2720 UseMockScrollbarSettings mockScrollbarSettings;
2721 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-4.html");
2723 FrameTestHelpers::WebViewHelper webViewHelper;
2724 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-4.html", true, 0, 0, setViewportSettings);
2726 Page* page = webViewHelper.webViewImpl()->page();
2728 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2730 EXPECT_EQ(300, constraints.layoutSize.width());
2731 EXPECT_EQ(330, constraints.layoutSize.height());
2732 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2733 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2734 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2735 EXPECT_TRUE(page->viewportDescription().userZoom);
2738 TEST_F(ViewportTest, viewportLegacyOrdering5)
2740 UseMockScrollbarSettings mockScrollbarSettings;
2741 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-5.html");
2743 FrameTestHelpers::WebViewHelper webViewHelper;
2744 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-5.html", true, 0, 0, setViewportSettings);
2746 Page* page = webViewHelper.webViewImpl()->page();
2748 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2750 EXPECT_EQ(320, constraints.layoutSize.width());
2751 EXPECT_EQ(352, constraints.layoutSize.height());
2752 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2753 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2754 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2755 EXPECT_TRUE(page->viewportDescription().userZoom);
2758 TEST_F(ViewportTest, viewportLegacyOrdering6)
2760 UseMockScrollbarSettings mockScrollbarSettings;
2761 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-6.html");
2763 FrameTestHelpers::WebViewHelper webViewHelper;
2764 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-6.html", true, 0, 0, setViewportSettings);
2766 Page* page = webViewHelper.webViewImpl()->page();
2768 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2770 EXPECT_EQ(320, constraints.layoutSize.width());
2771 EXPECT_EQ(352, constraints.layoutSize.height());
2772 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2773 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2774 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2775 EXPECT_TRUE(page->viewportDescription().userZoom);
2778 TEST_F(ViewportTest, viewportLegacyOrdering7)
2780 UseMockScrollbarSettings mockScrollbarSettings;
2781 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-7.html");
2783 FrameTestHelpers::WebViewHelper webViewHelper;
2784 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-7.html", true, 0, 0, setViewportSettings);
2786 Page* page = webViewHelper.webViewImpl()->page();
2788 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2790 EXPECT_EQ(300, constraints.layoutSize.width());
2791 EXPECT_EQ(330, constraints.layoutSize.height());
2792 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2793 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2794 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2795 EXPECT_TRUE(page->viewportDescription().userZoom);
2798 TEST_F(ViewportTest, viewportLegacyOrdering8)
2800 UseMockScrollbarSettings mockScrollbarSettings;
2801 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-8.html");
2803 FrameTestHelpers::WebViewHelper webViewHelper;
2804 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-8.html", true, 0, 0, setViewportSettings);
2806 Page* page = webViewHelper.webViewImpl()->page();
2808 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2810 EXPECT_EQ(300, constraints.layoutSize.width());
2811 EXPECT_EQ(330, constraints.layoutSize.height());
2812 EXPECT_NEAR(1.07f, constraints.initialScale, 0.01f);
2813 EXPECT_NEAR(1.07f, constraints.minimumScale, 0.01f);
2814 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2815 EXPECT_TRUE(page->viewportDescription().userZoom);
2818 TEST_F(ViewportTest, viewportLegacyEmptyAtViewportDoesntOverrideViewportMeta)
2820 UseMockScrollbarSettings mockScrollbarSettings;
2821 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-10.html");
2823 FrameTestHelpers::WebViewHelper webViewHelper;
2824 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-10.html", true, 0, 0, setViewportSettings);
2826 Page* page = webViewHelper.webViewImpl()->page();
2827 PageScaleConstraints constraints = runViewportTest(page, 800, 600);
2829 EXPECT_EQ(5000, constraints.layoutSize.width());
2832 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMP)
2834 UseMockScrollbarSettings mockScrollbarSettings;
2835 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2837 FrameTestHelpers::WebViewHelper webViewHelper;
2838 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2840 Page* page = webViewHelper.webViewImpl()->page();
2841 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2843 EXPECT_EQ(320, constraints.layoutSize.width());
2844 EXPECT_EQ(352, constraints.layoutSize.height());
2845 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2846 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2847 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2848 EXPECT_TRUE(page->viewportDescription().userZoom);
2851 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMPAndOverriddenByMeta)
2853 UseMockScrollbarSettings mockScrollbarSettings;
2854 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html");
2856 FrameTestHelpers::WebViewHelper webViewHelper;
2857 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html", true, 0, 0, setViewportSettings);
2859 Page* page = webViewHelper.webViewImpl()->page();
2860 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2862 EXPECT_EQ(640, constraints.layoutSize.width());
2863 EXPECT_EQ(704, constraints.layoutSize.height());
2864 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
2865 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
2866 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2867 EXPECT_TRUE(page->viewportDescription().userZoom);
2870 TEST_F(ViewportTest, viewportLegacyXHTMLMPOrdering)
2872 UseMockScrollbarSettings mockScrollbarSettings;
2873 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-ordering.html");
2875 FrameTestHelpers::WebViewHelper webViewHelper;
2876 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-ordering.html", true, 0, 0, setViewportSettings);
2878 Page* page = webViewHelper.webViewImpl()->page();
2879 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2881 EXPECT_EQ(640, constraints.layoutSize.width());
2882 EXPECT_EQ(704, constraints.layoutSize.height());
2883 EXPECT_NEAR(0.5f, constraints.initialScale, 0.01f);
2884 EXPECT_NEAR(0.5f, constraints.minimumScale, 0.01f);
2885 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2886 EXPECT_TRUE(page->viewportDescription().userZoom);
2889 TEST_F(ViewportTest, viewportLegacyXHTMLMPRemoveAndAdd)
2891 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2893 FrameTestHelpers::WebViewHelper webViewHelper;
2894 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2896 Page* page = webViewHelper.webViewImpl()->page();
2897 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2899 EXPECT_EQ(320, constraints.layoutSize.width());
2900 EXPECT_EQ(352, constraints.layoutSize.height());
2901 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2902 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2903 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2904 EXPECT_TRUE(page->viewportDescription().userZoom);
2906 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2907 "originalDoctype = document.doctype;"
2908 "document.removeChild(originalDoctype);");
2910 constraints = runViewportTest(page, 320, 352);
2912 EXPECT_EQ(320, constraints.layoutSize.width());
2913 EXPECT_EQ(352, constraints.layoutSize.height());
2914 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2915 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2916 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2917 EXPECT_TRUE(page->viewportDescription().userZoom);
2919 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2920 "document.insertBefore(originalDoctype, document.firstChild);");
2922 constraints = runViewportTest(page, 320, 352);
2924 EXPECT_EQ(320, constraints.layoutSize.width());
2925 EXPECT_EQ(352, constraints.layoutSize.height());
2926 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
2927 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
2928 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
2929 EXPECT_TRUE(page->viewportDescription().userZoom);
2932 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScale)
2934 UseMockScrollbarSettings mockScrollbarSettings;
2935 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale.html");
2937 FrameTestHelpers::WebViewHelper webViewHelper;
2938 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale.html", true, 0, 0, setViewportSettings);
2940 Page* page = webViewHelper.webViewImpl()->page();
2942 EXPECT_FALSE(page->viewportDescription().userZoom);
2945 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScaleControl)
2947 UseMockScrollbarSettings mockScrollbarSettings;
2948 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale-control.html");
2950 FrameTestHelpers::WebViewHelper webViewHelper;
2951 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale-control.html", true, 0, 0, setViewportSettings);
2953 Page* page = webViewHelper.webViewImpl()->page();
2955 EXPECT_TRUE(page->viewportDescription().userZoom);
2958 TEST_F(ViewportTest, viewportTriggersGpuRasterization)
2960 UseMockScrollbarSettings mockScrollbarSettings;
2962 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization.html");
2963 FrameTestHelpers::WebViewHelper webViewHelper;
2964 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization.html", true, 0, 0, setViewportSettings);
2965 webViewHelper.webView()->resize(WebSize(640, 480));
2966 EXPECT_TRUE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2968 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization-expanded-heuristics.html");
2969 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization-expanded-heuristics.html", true, 0, 0, setViewportSettings);
2970 webViewHelper.webView()->resize(WebSize(640, 480));
2971 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2973 registerMockedHttpURLLoad("viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html");
2974 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html", true, 0, 0, setViewportSettings);
2975 webViewHelper.webView()->resize(WebSize(640, 480));
2976 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2978 registerMockedHttpURLLoad("viewport/viewport-1.html");
2979 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
2980 webViewHelper.webView()->resize(WebSize(640, 480));
2981 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2983 registerMockedHttpURLLoad("viewport/viewport-15.html");
2984 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettings);
2985 webViewHelper.webView()->resize(WebSize(640, 480));
2986 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2988 registerMockedHttpURLLoad("viewport/viewport-130.html");
2989 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettings);
2990 webViewHelper.webView()->resize(WebSize(640, 480));
2991 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
2994 static void setViewportSettingsWithExpandedHeuristicsForGpuRasterization(WebSettings* settings)
2996 setViewportSettings(settings);
2997 settings->setUseExpandedHeuristicsForGpuRasterization(true);
3000 TEST_F(ViewportTest, viewportTriggersGpuRasterizationWithExpandedHeuristics)
3002 UseMockScrollbarSettings mockScrollbarSettings;
3004 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization.html");
3005 FrameTestHelpers::WebViewHelper webViewHelper;
3006 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization.html", true, 0, 0, setViewportSettingsWithExpandedHeuristicsForGpuRasterization);
3007 webViewHelper.webView()->resize(WebSize(640, 480));
3008 EXPECT_TRUE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3010 registerMockedHttpURLLoad("viewport/viewport-gpu-rasterization-expanded-heuristics.html");
3011 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-gpu-rasterization-expanded-heuristics.html", true, 0, 0, setViewportSettingsWithExpandedHeuristicsForGpuRasterization);
3012 webViewHelper.webView()->resize(WebSize(640, 480));
3013 EXPECT_TRUE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3015 registerMockedHttpURLLoad("viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html");
3016 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-inferred-values-do-not-trigger-gpu-rasterization.html", true, 0, 0, setViewportSettingsWithExpandedHeuristicsForGpuRasterization);
3017 webViewHelper.webView()->resize(WebSize(640, 480));
3018 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3020 registerMockedHttpURLLoad("viewport/viewport-1.html");
3021 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
3022 webViewHelper.webView()->resize(WebSize(640, 480));
3023 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3025 registerMockedHttpURLLoad("viewport/viewport-15.html");
3026 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettingsWithExpandedHeuristicsForGpuRasterization);
3027 webViewHelper.webView()->resize(WebSize(640, 480));
3028 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3030 registerMockedHttpURLLoad("viewport/viewport-130.html");
3031 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettingsWithExpandedHeuristicsForGpuRasterization);
3032 webViewHelper.webView()->resize(WebSize(640, 480));
3033 EXPECT_FALSE(webViewHelper.webViewImpl()->matchesHeuristicsForGpuRasterizationForTesting());
3036 class ConsoleMessageWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
3038 virtual void didAddMessageToConsole(const WebConsoleMessage& msg, const WebString& sourceName, unsigned sourceLine, const WebString& stackTrace)
3040 messages.push_back(msg);
3043 std::vector<WebConsoleMessage> messages;
3046 TEST_F(ViewportTest, viewportWarnings1)
3048 ConsoleMessageWebFrameClient webFrameClient;
3050 registerMockedHttpURLLoad("viewport/viewport-warnings-1.html");
3052 FrameTestHelpers::WebViewHelper webViewHelper;
3053 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-1.html", true, &webFrameClient, 0, setViewportSettings);
3055 Page* page = webViewHelper.webViewImpl()->page();
3056 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3058 EXPECT_TRUE(webFrameClient.messages.empty());
3060 EXPECT_EQ(320, constraints.layoutSize.width());
3061 EXPECT_EQ(352, constraints.layoutSize.height());
3062 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
3063 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
3064 EXPECT_NEAR(2.0f, constraints.maximumScale, 0.01f);
3065 EXPECT_TRUE(page->viewportDescription().userZoom);
3068 TEST_F(ViewportTest, viewportWarnings2)
3070 ConsoleMessageWebFrameClient webFrameClient;
3072 registerMockedHttpURLLoad("viewport/viewport-warnings-2.html");
3074 FrameTestHelpers::WebViewHelper webViewHelper;
3075 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-2.html", true, &webFrameClient, 0, setViewportSettings);
3077 Page* page = webViewHelper.webViewImpl()->page();
3078 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3080 EXPECT_EQ(1U, webFrameClient.messages.size());
3081 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3082 EXPECT_STREQ("The key \"wwidth\" is not recognized and ignored.", webFrameClient.messages[0].text.utf8().c_str());
3084 EXPECT_EQ(980, constraints.layoutSize.width());
3085 EXPECT_EQ(1078, constraints.layoutSize.height());
3086 EXPECT_NEAR(0.33f, constraints.initialScale, 0.01f);
3087 EXPECT_NEAR(0.33f, constraints.minimumScale, 0.01f);
3088 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3089 EXPECT_TRUE(page->viewportDescription().userZoom);
3092 TEST_F(ViewportTest, viewportWarnings3)
3094 ConsoleMessageWebFrameClient webFrameClient;
3096 registerMockedHttpURLLoad("viewport/viewport-warnings-3.html");
3098 FrameTestHelpers::WebViewHelper webViewHelper;
3099 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-3.html", true, &webFrameClient, 0, setViewportSettings);
3101 Page* page = webViewHelper.webViewImpl()->page();
3102 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3104 EXPECT_EQ(1U, webFrameClient.messages.size());
3105 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3106 EXPECT_STREQ("The value \"unrecognized-width\" for key \"width\" is invalid, and has been ignored.",
3107 webFrameClient.messages[0].text.utf8().c_str());
3109 EXPECT_NEAR(64.0f, constraints.layoutSize.width(), 0.01);
3110 EXPECT_NEAR(70.4f, constraints.layoutSize.height(), 0.01);
3111 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
3112 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
3113 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3114 EXPECT_TRUE(page->viewportDescription().userZoom);
3117 TEST_F(ViewportTest, viewportWarnings4)
3119 ConsoleMessageWebFrameClient webFrameClient;
3121 registerMockedHttpURLLoad("viewport/viewport-warnings-4.html");
3123 FrameTestHelpers::WebViewHelper webViewHelper;
3124 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-4.html", true, &webFrameClient, 0, setViewportSettings);
3126 Page* page = webViewHelper.webViewImpl()->page();
3127 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3129 EXPECT_EQ(1U, webFrameClient.messages.size());
3130 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3131 EXPECT_STREQ("The value \"123x456\" for key \"width\" was truncated to its numeric prefix.",
3132 webFrameClient.messages[0].text.utf8().c_str());
3134 EXPECT_NEAR(123.0f, constraints.layoutSize.width(), 0.01);
3135 EXPECT_NEAR(135.3f, constraints.layoutSize.height(), 0.01);
3136 EXPECT_NEAR(2.60f, constraints.initialScale, 0.01f);
3137 EXPECT_NEAR(2.60f, constraints.minimumScale, 0.01f);
3138 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3139 EXPECT_TRUE(page->viewportDescription().userZoom);
3142 TEST_F(ViewportTest, viewportWarnings5)
3144 ConsoleMessageWebFrameClient webFrameClient;
3146 registerMockedHttpURLLoad("viewport/viewport-warnings-5.html");
3148 FrameTestHelpers::WebViewHelper webViewHelper;
3149 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-5.html", true, &webFrameClient, 0, setViewportSettings);
3151 Page* page = webViewHelper.webViewImpl()->page();
3152 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3154 EXPECT_EQ(5U, webFrameClient.messages.size());
3156 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3157 EXPECT_STREQ("The value \"device-width;\" for key \"width\" is invalid, and has been ignored.",
3158 webFrameClient.messages[0].text.utf8().c_str());
3160 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[1].level);
3161 EXPECT_STREQ("The value \"1.0;\" for key \"initial-scale\" was truncated to its numeric prefix.",
3162 webFrameClient.messages[1].text.utf8().c_str());
3164 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[2].level);
3165 EXPECT_STREQ("The value \"1.0;\" for key \"maximum-scale\" was truncated to its numeric prefix.",
3166 webFrameClient.messages[2].text.utf8().c_str());
3168 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[3].level);
3169 EXPECT_STREQ("The value \"0;\" for key \"user-scalable\" was truncated to its numeric prefix.",
3170 webFrameClient.messages[3].text.utf8().c_str());
3172 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[4].level);
3173 EXPECT_STREQ("Error parsing a meta element's content: ';' is not a valid key-value pair separator. Please use ',' instead.",
3174 webFrameClient.messages[4].text.utf8().c_str());
3176 EXPECT_NEAR(320.0f, constraints.layoutSize.width(), 0.01);
3177 EXPECT_NEAR(352.0f, constraints.layoutSize.height(), 0.01);
3178 EXPECT_NEAR(1.0f, constraints.initialScale, 0.01f);
3179 EXPECT_NEAR(1.0f, constraints.minimumScale, 0.01f);
3180 EXPECT_NEAR(1.0f, constraints.maximumScale, 0.01f);
3181 EXPECT_FALSE(page->viewportDescription().userZoom);
3184 TEST_F(ViewportTest, viewportWarnings6)
3186 ConsoleMessageWebFrameClient webFrameClient;
3188 registerMockedHttpURLLoad("viewport/viewport-warnings-6.html");
3190 FrameTestHelpers::WebViewHelper webViewHelper;
3191 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-6.html", true, &webFrameClient, 0, setViewportSettings);
3193 Page* page = webViewHelper.webViewImpl()->page();
3194 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3196 EXPECT_EQ(1U, webFrameClient.messages.size());
3197 EXPECT_EQ(WebConsoleMessage::LevelWarning, webFrameClient.messages[0].level);
3198 EXPECT_STREQ("The value \"\" for key \"width\" is invalid, and has been ignored.",
3199 webFrameClient.messages[0].text.utf8().c_str());
3201 EXPECT_NEAR(64.0f, constraints.layoutSize.width(), 0.01);
3202 EXPECT_NEAR(70.4f, constraints.layoutSize.height(), 0.01);
3203 EXPECT_NEAR(5.0f, constraints.initialScale, 0.01f);
3204 EXPECT_NEAR(5.0f, constraints.minimumScale, 0.01f);
3205 EXPECT_NEAR(5.0f, constraints.maximumScale, 0.01f);
3206 EXPECT_TRUE(page->viewportDescription().userZoom);
3209 TEST_F(ViewportTest, viewportWarnings7)
3211 ConsoleMessageWebFrameClient webFrameClient;
3213 registerMockedHttpURLLoad("viewport/viewport-warnings-7.html");
3215 FrameTestHelpers::WebViewHelper webViewHelper;
3216 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-7.html", true, &webFrameClient, 0, setViewportSettings);
3218 Page* page = webViewHelper.webViewImpl()->page();
3219 runViewportTest(page, 320, 352);
3221 EXPECT_EQ(0U, webFrameClient.messages.size());