1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 *
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
13 * distribution.
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.
17 *
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.
29 */
30
31 #include "config.h"
32
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>
55
56 #include <vector>
57
58 using namespace blink;
59 using WebCore::LocalFrame;
60 using WebCore::FrameView;
61 using WebCore::IntPoint;
62 using WebCore::IntRect;
63 using WebCore::IntSize;
64 using WebCore::Page;
65 using WebCore::PageScaleConstraints;
66 using WebCore::ViewportDescription;
67 using blink::FrameTestHelpers::runPendingTasks;
68
69 namespace {
70
71 class ViewportTest : public testing::Test {
72 protected:
ViewportTest()73 ViewportTest()
74 : m_baseURL("http://www.test.com/")
75 , m_chromeURL("chrome://")
76 {
77 }
78
~ViewportTest()79 virtual ~ViewportTest()
80 {
81 Platform::current()->unitTestSupport()->unregisterAllMockedURLs();
82 }
83
registerMockedHttpURLLoad(const std::string & fileName)84 void registerMockedHttpURLLoad(const std::string& fileName)
85 {
86 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8(fileName.c_str()));
87 }
88
registerMockedChromeURLLoad(const std::string & fileName)89 void registerMockedChromeURLLoad(const std::string& fileName)
90 {
91 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_chromeURL.c_str()), WebString::fromUTF8(fileName.c_str()));
92 }
93
executeScript(WebFrame * frame,const WebString & code)94 void executeScript(WebFrame* frame, const WebString& code)
95 {
96 frame->executeScript(WebScriptSource(code));
97 runPendingTasks();
98 }
99
100 std::string m_baseURL;
101 std::string m_chromeURL;
102 };
103
104 class UseMockScrollbarSettings {
105 public:
UseMockScrollbarSettings()106 UseMockScrollbarSettings()
107 {
108 WebCore::Settings::setMockScrollbarsEnabled(true);
109 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true);
110 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars());
111 }
112
~UseMockScrollbarSettings()113 ~UseMockScrollbarSettings()
114 {
115 WebCore::Settings::setMockScrollbarsEnabled(false);
116 WebCore::RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(false);
117 }
118 };
119
setViewportSettings(WebSettings * settings)120 static void setViewportSettings(WebSettings* settings)
121 {
122 settings->setViewportEnabled(true);
123 settings->setViewportMetaEnabled(true);
124 settings->setMainFrameResizesAreOrientationChanges(true);
125 }
126
runViewportTest(Page * page,int initialWidth,int initialHeight)127 static PageScaleConstraints runViewportTest(Page* page, int initialWidth, int initialHeight)
128 {
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));
133
134 constraints.fitToContentsWidth(constraints.layoutSize.width(), initialWidth);
135 return constraints;
136 }
137
TEST_F(ViewportTest,viewport1)138 TEST_F(ViewportTest, viewport1)
139 {
140 UseMockScrollbarSettings mockScrollbarSettings;
141 registerMockedHttpURLLoad("viewport/viewport-1.html");
142
143 FrameTestHelpers::WebViewHelper webViewHelper;
144 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-1.html", true, 0, 0, setViewportSettings);
145
146 Page* page = webViewHelper.webViewImpl()->page();
147 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
148
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);
155 }
156
TEST_F(ViewportTest,viewport2)157 TEST_F(ViewportTest, viewport2)
158 {
159 UseMockScrollbarSettings mockScrollbarSettings;
160 registerMockedHttpURLLoad("viewport/viewport-2.html");
161
162 FrameTestHelpers::WebViewHelper webViewHelper;
163 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-2.html", true, 0, 0, setViewportSettings);
164
165 Page* page = webViewHelper.webViewImpl()->page();
166 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
167
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);
174 }
175
TEST_F(ViewportTest,viewport3)176 TEST_F(ViewportTest, viewport3)
177 {
178 UseMockScrollbarSettings mockScrollbarSettings;
179 registerMockedHttpURLLoad("viewport/viewport-3.html");
180
181 FrameTestHelpers::WebViewHelper webViewHelper;
182 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-3.html", true, 0, 0, setViewportSettings);
183
184 Page* page = webViewHelper.webViewImpl()->page();
185 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
186
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);
193 }
194
TEST_F(ViewportTest,viewport4)195 TEST_F(ViewportTest, viewport4)
196 {
197 UseMockScrollbarSettings mockScrollbarSettings;
198 registerMockedHttpURLLoad("viewport/viewport-4.html");
199
200 FrameTestHelpers::WebViewHelper webViewHelper;
201 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-4.html", true, 0, 0, setViewportSettings);
202
203 Page* page = webViewHelper.webViewImpl()->page();
204 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
205
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);
212 }
213
TEST_F(ViewportTest,viewport5)214 TEST_F(ViewportTest, viewport5)
215 {
216 UseMockScrollbarSettings mockScrollbarSettings;
217 registerMockedHttpURLLoad("viewport/viewport-5.html");
218
219 FrameTestHelpers::WebViewHelper webViewHelper;
220 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-5.html", true, 0, 0, setViewportSettings);
221
222 Page* page = webViewHelper.webViewImpl()->page();
223 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
224
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);
231 }
232
TEST_F(ViewportTest,viewport6)233 TEST_F(ViewportTest, viewport6)
234 {
235 UseMockScrollbarSettings mockScrollbarSettings;
236 registerMockedHttpURLLoad("viewport/viewport-6.html");
237
238 FrameTestHelpers::WebViewHelper webViewHelper;
239 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-6.html", true, 0, 0, setViewportSettings);
240
241 Page* page = webViewHelper.webViewImpl()->page();
242 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
243
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);
250 }
251
TEST_F(ViewportTest,viewport7)252 TEST_F(ViewportTest, viewport7)
253 {
254 UseMockScrollbarSettings mockScrollbarSettings;
255 registerMockedHttpURLLoad("viewport/viewport-7.html");
256
257 FrameTestHelpers::WebViewHelper webViewHelper;
258 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-7.html", true, 0, 0, setViewportSettings);
259
260 Page* page = webViewHelper.webViewImpl()->page();
261 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
262
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);
269 }
270
TEST_F(ViewportTest,viewport8)271 TEST_F(ViewportTest, viewport8)
272 {
273 UseMockScrollbarSettings mockScrollbarSettings;
274 registerMockedHttpURLLoad("viewport/viewport-8.html");
275
276 FrameTestHelpers::WebViewHelper webViewHelper;
277 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-8.html", true, 0, 0, setViewportSettings);
278
279 Page* page = webViewHelper.webViewImpl()->page();
280 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
281
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);
288 }
289
TEST_F(ViewportTest,viewport9)290 TEST_F(ViewportTest, viewport9)
291 {
292 UseMockScrollbarSettings mockScrollbarSettings;
293 registerMockedHttpURLLoad("viewport/viewport-9.html");
294
295 FrameTestHelpers::WebViewHelper webViewHelper;
296 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-9.html", true, 0, 0, setViewportSettings);
297
298 Page* page = webViewHelper.webViewImpl()->page();
299 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
300
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);
307 }
308
TEST_F(ViewportTest,viewport10)309 TEST_F(ViewportTest, viewport10)
310 {
311 UseMockScrollbarSettings mockScrollbarSettings;
312 registerMockedHttpURLLoad("viewport/viewport-10.html");
313
314 FrameTestHelpers::WebViewHelper webViewHelper;
315 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-10.html", true, 0, 0, setViewportSettings);
316
317 Page* page = webViewHelper.webViewImpl()->page();
318 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
319
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);
326 }
327
TEST_F(ViewportTest,viewport11)328 TEST_F(ViewportTest, viewport11)
329 {
330 UseMockScrollbarSettings mockScrollbarSettings;
331 registerMockedHttpURLLoad("viewport/viewport-11.html");
332
333 FrameTestHelpers::WebViewHelper webViewHelper;
334 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-11.html", true, 0, 0, setViewportSettings);
335
336 Page* page = webViewHelper.webViewImpl()->page();
337 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
338
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);
345 }
346
TEST_F(ViewportTest,viewport12)347 TEST_F(ViewportTest, viewport12)
348 {
349 UseMockScrollbarSettings mockScrollbarSettings;
350 registerMockedHttpURLLoad("viewport/viewport-12.html");
351
352 FrameTestHelpers::WebViewHelper webViewHelper;
353 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-12.html", true, 0, 0, setViewportSettings);
354
355 Page* page = webViewHelper.webViewImpl()->page();
356 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
357
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);
364 }
365
TEST_F(ViewportTest,viewport13)366 TEST_F(ViewportTest, viewport13)
367 {
368 UseMockScrollbarSettings mockScrollbarSettings;
369 registerMockedHttpURLLoad("viewport/viewport-13.html");
370
371 FrameTestHelpers::WebViewHelper webViewHelper;
372 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-13.html", true, 0, 0, setViewportSettings);
373
374 Page* page = webViewHelper.webViewImpl()->page();
375 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
376
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);
383 }
384
TEST_F(ViewportTest,viewport14)385 TEST_F(ViewportTest, viewport14)
386 {
387 UseMockScrollbarSettings mockScrollbarSettings;
388 registerMockedHttpURLLoad("viewport/viewport-14.html");
389
390 FrameTestHelpers::WebViewHelper webViewHelper;
391 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-14.html", true, 0, 0, setViewportSettings);
392
393 Page* page = webViewHelper.webViewImpl()->page();
394 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
395
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);
402 }
403
TEST_F(ViewportTest,viewport15)404 TEST_F(ViewportTest, viewport15)
405 {
406 UseMockScrollbarSettings mockScrollbarSettings;
407 registerMockedHttpURLLoad("viewport/viewport-15.html");
408
409 FrameTestHelpers::WebViewHelper webViewHelper;
410 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-15.html", true, 0, 0, setViewportSettings);
411
412 Page* page = webViewHelper.webViewImpl()->page();
413 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
414
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);
421 }
422
TEST_F(ViewportTest,viewport16)423 TEST_F(ViewportTest, viewport16)
424 {
425 UseMockScrollbarSettings mockScrollbarSettings;
426 registerMockedHttpURLLoad("viewport/viewport-16.html");
427
428 FrameTestHelpers::WebViewHelper webViewHelper;
429 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-16.html", true, 0, 0, setViewportSettings);
430
431 Page* page = webViewHelper.webViewImpl()->page();
432 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
433
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);
440 }
441
TEST_F(ViewportTest,viewport17)442 TEST_F(ViewportTest, viewport17)
443 {
444 UseMockScrollbarSettings mockScrollbarSettings;
445 registerMockedHttpURLLoad("viewport/viewport-17.html");
446
447 FrameTestHelpers::WebViewHelper webViewHelper;
448 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-17.html", true, 0, 0, setViewportSettings);
449
450 Page* page = webViewHelper.webViewImpl()->page();
451 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
452
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);
459 }
460
TEST_F(ViewportTest,viewport18)461 TEST_F(ViewportTest, viewport18)
462 {
463 UseMockScrollbarSettings mockScrollbarSettings;
464 registerMockedHttpURLLoad("viewport/viewport-18.html");
465
466 FrameTestHelpers::WebViewHelper webViewHelper;
467 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-18.html", true, 0, 0, setViewportSettings);
468
469 Page* page = webViewHelper.webViewImpl()->page();
470 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
471
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);
478 }
479
TEST_F(ViewportTest,viewport19)480 TEST_F(ViewportTest, viewport19)
481 {
482 UseMockScrollbarSettings mockScrollbarSettings;
483 registerMockedHttpURLLoad("viewport/viewport-19.html");
484
485 FrameTestHelpers::WebViewHelper webViewHelper;
486 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-19.html", true, 0, 0, setViewportSettings);
487
488 Page* page = webViewHelper.webViewImpl()->page();
489 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
490
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);
497 }
498
TEST_F(ViewportTest,viewport20)499 TEST_F(ViewportTest, viewport20)
500 {
501 UseMockScrollbarSettings mockScrollbarSettings;
502 registerMockedHttpURLLoad("viewport/viewport-20.html");
503
504 FrameTestHelpers::WebViewHelper webViewHelper;
505 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-20.html", true, 0, 0, setViewportSettings);
506
507 Page* page = webViewHelper.webViewImpl()->page();
508 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
509
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);
516 }
517
TEST_F(ViewportTest,viewport21)518 TEST_F(ViewportTest, viewport21)
519 {
520 UseMockScrollbarSettings mockScrollbarSettings;
521 registerMockedHttpURLLoad("viewport/viewport-21.html");
522
523 FrameTestHelpers::WebViewHelper webViewHelper;
524 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-21.html", true, 0, 0, setViewportSettings);
525
526 Page* page = webViewHelper.webViewImpl()->page();
527 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
528
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);
535 }
536
TEST_F(ViewportTest,viewport22)537 TEST_F(ViewportTest, viewport22)
538 {
539 UseMockScrollbarSettings mockScrollbarSettings;
540 registerMockedHttpURLLoad("viewport/viewport-22.html");
541
542 FrameTestHelpers::WebViewHelper webViewHelper;
543 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-22.html", true, 0, 0, setViewportSettings);
544
545 Page* page = webViewHelper.webViewImpl()->page();
546 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
547
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);
554 }
555
TEST_F(ViewportTest,viewport23)556 TEST_F(ViewportTest, viewport23)
557 {
558 UseMockScrollbarSettings mockScrollbarSettings;
559 registerMockedHttpURLLoad("viewport/viewport-23.html");
560
561 FrameTestHelpers::WebViewHelper webViewHelper;
562 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-23.html", true, 0, 0, setViewportSettings);
563
564 Page* page = webViewHelper.webViewImpl()->page();
565 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
566
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);
573 }
574
TEST_F(ViewportTest,viewport24)575 TEST_F(ViewportTest, viewport24)
576 {
577 UseMockScrollbarSettings mockScrollbarSettings;
578 registerMockedHttpURLLoad("viewport/viewport-24.html");
579
580 FrameTestHelpers::WebViewHelper webViewHelper;
581 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-24.html", true, 0, 0, setViewportSettings);
582
583 Page* page = webViewHelper.webViewImpl()->page();
584 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
585
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);
592 }
593
TEST_F(ViewportTest,viewport25)594 TEST_F(ViewportTest, viewport25)
595 {
596 UseMockScrollbarSettings mockScrollbarSettings;
597 registerMockedHttpURLLoad("viewport/viewport-25.html");
598
599 FrameTestHelpers::WebViewHelper webViewHelper;
600 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-25.html", true, 0, 0, setViewportSettings);
601
602 Page* page = webViewHelper.webViewImpl()->page();
603 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
604
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);
611 }
612
TEST_F(ViewportTest,viewport26)613 TEST_F(ViewportTest, viewport26)
614 {
615 UseMockScrollbarSettings mockScrollbarSettings;
616 registerMockedHttpURLLoad("viewport/viewport-26.html");
617
618 FrameTestHelpers::WebViewHelper webViewHelper;
619 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-26.html", true, 0, 0, setViewportSettings);
620
621 Page* page = webViewHelper.webViewImpl()->page();
622 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
623
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);
630 }
631
TEST_F(ViewportTest,viewport27)632 TEST_F(ViewportTest, viewport27)
633 {
634 UseMockScrollbarSettings mockScrollbarSettings;
635 registerMockedHttpURLLoad("viewport/viewport-27.html");
636
637 FrameTestHelpers::WebViewHelper webViewHelper;
638 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-27.html", true, 0, 0, setViewportSettings);
639
640 Page* page = webViewHelper.webViewImpl()->page();
641 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
642
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);
649 }
650
TEST_F(ViewportTest,viewport28)651 TEST_F(ViewportTest, viewport28)
652 {
653 UseMockScrollbarSettings mockScrollbarSettings;
654 registerMockedHttpURLLoad("viewport/viewport-28.html");
655
656 FrameTestHelpers::WebViewHelper webViewHelper;
657 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-28.html", true, 0, 0, setViewportSettings);
658
659 Page* page = webViewHelper.webViewImpl()->page();
660 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
661
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);
668 }
669
TEST_F(ViewportTest,viewport29)670 TEST_F(ViewportTest, viewport29)
671 {
672 UseMockScrollbarSettings mockScrollbarSettings;
673 registerMockedHttpURLLoad("viewport/viewport-29.html");
674
675 FrameTestHelpers::WebViewHelper webViewHelper;
676 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-29.html", true, 0, 0, setViewportSettings);
677
678 Page* page = webViewHelper.webViewImpl()->page();
679 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
680
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);
687 }
688
TEST_F(ViewportTest,viewport30)689 TEST_F(ViewportTest, viewport30)
690 {
691 UseMockScrollbarSettings mockScrollbarSettings;
692 registerMockedHttpURLLoad("viewport/viewport-30.html");
693
694 FrameTestHelpers::WebViewHelper webViewHelper;
695 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-30.html", true, 0, 0, setViewportSettings);
696
697 Page* page = webViewHelper.webViewImpl()->page();
698 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
699
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);
706 }
707
TEST_F(ViewportTest,viewport31)708 TEST_F(ViewportTest, viewport31)
709 {
710 UseMockScrollbarSettings mockScrollbarSettings;
711 registerMockedHttpURLLoad("viewport/viewport-31.html");
712
713 FrameTestHelpers::WebViewHelper webViewHelper;
714 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-31.html", true, 0, 0, setViewportSettings);
715
716 Page* page = webViewHelper.webViewImpl()->page();
717 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
718
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);
725 }
726
TEST_F(ViewportTest,viewport32)727 TEST_F(ViewportTest, viewport32)
728 {
729 UseMockScrollbarSettings mockScrollbarSettings;
730 registerMockedHttpURLLoad("viewport/viewport-32.html");
731
732 FrameTestHelpers::WebViewHelper webViewHelper;
733 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-32.html", true, 0, 0, setViewportSettings);
734
735 Page* page = webViewHelper.webViewImpl()->page();
736 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
737
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);
744 }
745
TEST_F(ViewportTest,viewport33)746 TEST_F(ViewportTest, viewport33)
747 {
748 UseMockScrollbarSettings mockScrollbarSettings;
749 registerMockedHttpURLLoad("viewport/viewport-33.html");
750
751 FrameTestHelpers::WebViewHelper webViewHelper;
752 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-33.html", true, 0, 0, setViewportSettings);
753
754 Page* page = webViewHelper.webViewImpl()->page();
755 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
756
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);
763 }
764
TEST_F(ViewportTest,viewport34)765 TEST_F(ViewportTest, viewport34)
766 {
767 UseMockScrollbarSettings mockScrollbarSettings;
768 registerMockedHttpURLLoad("viewport/viewport-34.html");
769
770 FrameTestHelpers::WebViewHelper webViewHelper;
771 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-34.html", true, 0, 0, setViewportSettings);
772
773 Page* page = webViewHelper.webViewImpl()->page();
774 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
775
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);
782 }
783
TEST_F(ViewportTest,viewport35)784 TEST_F(ViewportTest, viewport35)
785 {
786 UseMockScrollbarSettings mockScrollbarSettings;
787 registerMockedHttpURLLoad("viewport/viewport-35.html");
788
789 FrameTestHelpers::WebViewHelper webViewHelper;
790 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-35.html", true, 0, 0, setViewportSettings);
791
792 Page* page = webViewHelper.webViewImpl()->page();
793 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
794
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);
801 }
802
TEST_F(ViewportTest,viewport36)803 TEST_F(ViewportTest, viewport36)
804 {
805 UseMockScrollbarSettings mockScrollbarSettings;
806 registerMockedHttpURLLoad("viewport/viewport-36.html");
807
808 FrameTestHelpers::WebViewHelper webViewHelper;
809 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-36.html", true, 0, 0, setViewportSettings);
810
811 Page* page = webViewHelper.webViewImpl()->page();
812 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
813
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);
820 }
821
TEST_F(ViewportTest,viewport37)822 TEST_F(ViewportTest, viewport37)
823 {
824 UseMockScrollbarSettings mockScrollbarSettings;
825 registerMockedHttpURLLoad("viewport/viewport-37.html");
826
827 FrameTestHelpers::WebViewHelper webViewHelper;
828 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-37.html", true, 0, 0, setViewportSettings);
829
830 Page* page = webViewHelper.webViewImpl()->page();
831 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
832
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);
839 }
840
TEST_F(ViewportTest,viewport38)841 TEST_F(ViewportTest, viewport38)
842 {
843 UseMockScrollbarSettings mockScrollbarSettings;
844 registerMockedHttpURLLoad("viewport/viewport-38.html");
845
846 FrameTestHelpers::WebViewHelper webViewHelper;
847 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-38.html", true, 0, 0, setViewportSettings);
848
849 Page* page = webViewHelper.webViewImpl()->page();
850 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
851
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);
858 }
859
TEST_F(ViewportTest,viewport39)860 TEST_F(ViewportTest, viewport39)
861 {
862 UseMockScrollbarSettings mockScrollbarSettings;
863 registerMockedHttpURLLoad("viewport/viewport-39.html");
864
865 FrameTestHelpers::WebViewHelper webViewHelper;
866 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-39.html", true, 0, 0, setViewportSettings);
867
868 Page* page = webViewHelper.webViewImpl()->page();
869 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
870
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);
877 }
878
TEST_F(ViewportTest,viewport40)879 TEST_F(ViewportTest, viewport40)
880 {
881 UseMockScrollbarSettings mockScrollbarSettings;
882 registerMockedHttpURLLoad("viewport/viewport-40.html");
883
884 FrameTestHelpers::WebViewHelper webViewHelper;
885 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-40.html", true, 0, 0, setViewportSettings);
886
887 Page* page = webViewHelper.webViewImpl()->page();
888 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
889
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);
896 }
897
TEST_F(ViewportTest,viewport41)898 TEST_F(ViewportTest, viewport41)
899 {
900 UseMockScrollbarSettings mockScrollbarSettings;
901 registerMockedHttpURLLoad("viewport/viewport-41.html");
902
903 FrameTestHelpers::WebViewHelper webViewHelper;
904 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-41.html", true, 0, 0, setViewportSettings);
905
906 Page* page = webViewHelper.webViewImpl()->page();
907 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
908
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);
915 }
916
TEST_F(ViewportTest,viewport42)917 TEST_F(ViewportTest, viewport42)
918 {
919 UseMockScrollbarSettings mockScrollbarSettings;
920 registerMockedHttpURLLoad("viewport/viewport-42.html");
921
922 FrameTestHelpers::WebViewHelper webViewHelper;
923 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-42.html", true, 0, 0, setViewportSettings);
924
925 Page* page = webViewHelper.webViewImpl()->page();
926 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
927
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);
934 }
935
TEST_F(ViewportTest,viewport43)936 TEST_F(ViewportTest, viewport43)
937 {
938 UseMockScrollbarSettings mockScrollbarSettings;
939 registerMockedHttpURLLoad("viewport/viewport-43.html");
940
941 FrameTestHelpers::WebViewHelper webViewHelper;
942 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-43.html", true, 0, 0, setViewportSettings);
943
944 Page* page = webViewHelper.webViewImpl()->page();
945 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
946
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);
953 }
954
TEST_F(ViewportTest,viewport44)955 TEST_F(ViewportTest, viewport44)
956 {
957 UseMockScrollbarSettings mockScrollbarSettings;
958 registerMockedHttpURLLoad("viewport/viewport-44.html");
959
960 FrameTestHelpers::WebViewHelper webViewHelper;
961 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-44.html", true, 0, 0, setViewportSettings);
962
963 Page* page = webViewHelper.webViewImpl()->page();
964 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
965
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);
972 }
973
TEST_F(ViewportTest,viewport45)974 TEST_F(ViewportTest, viewport45)
975 {
976 UseMockScrollbarSettings mockScrollbarSettings;
977 registerMockedHttpURLLoad("viewport/viewport-45.html");
978
979 FrameTestHelpers::WebViewHelper webViewHelper;
980 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-45.html", true, 0, 0, setViewportSettings);
981
982 Page* page = webViewHelper.webViewImpl()->page();
983 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
984
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);
991 }
992
TEST_F(ViewportTest,viewport46)993 TEST_F(ViewportTest, viewport46)
994 {
995 UseMockScrollbarSettings mockScrollbarSettings;
996 registerMockedHttpURLLoad("viewport/viewport-46.html");
997
998 FrameTestHelpers::WebViewHelper webViewHelper;
999 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-46.html", true, 0, 0, setViewportSettings);
1000
1001 Page* page = webViewHelper.webViewImpl()->page();
1002 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1003
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);
1010 }
1011
TEST_F(ViewportTest,viewport47)1012 TEST_F(ViewportTest, viewport47)
1013 {
1014 UseMockScrollbarSettings mockScrollbarSettings;
1015 registerMockedHttpURLLoad("viewport/viewport-47.html");
1016
1017 FrameTestHelpers::WebViewHelper webViewHelper;
1018 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-47.html", true, 0, 0, setViewportSettings);
1019
1020 Page* page = webViewHelper.webViewImpl()->page();
1021 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1022
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);
1029 }
1030
TEST_F(ViewportTest,viewport48)1031 TEST_F(ViewportTest, viewport48)
1032 {
1033 UseMockScrollbarSettings mockScrollbarSettings;
1034 registerMockedHttpURLLoad("viewport/viewport-48.html");
1035
1036 FrameTestHelpers::WebViewHelper webViewHelper;
1037 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-48.html", true, 0, 0, setViewportSettings);
1038
1039 Page* page = webViewHelper.webViewImpl()->page();
1040 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1041
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);
1048 }
1049
TEST_F(ViewportTest,viewport49)1050 TEST_F(ViewportTest, viewport49)
1051 {
1052 UseMockScrollbarSettings mockScrollbarSettings;
1053 registerMockedHttpURLLoad("viewport/viewport-49.html");
1054
1055 FrameTestHelpers::WebViewHelper webViewHelper;
1056 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-49.html", true, 0, 0, setViewportSettings);
1057
1058 Page* page = webViewHelper.webViewImpl()->page();
1059 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1060
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);
1067 }
1068
TEST_F(ViewportTest,viewport50)1069 TEST_F(ViewportTest, viewport50)
1070 {
1071 UseMockScrollbarSettings mockScrollbarSettings;
1072 registerMockedHttpURLLoad("viewport/viewport-50.html");
1073
1074 FrameTestHelpers::WebViewHelper webViewHelper;
1075 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-50.html", true, 0, 0, setViewportSettings);
1076
1077 Page* page = webViewHelper.webViewImpl()->page();
1078 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1079
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);
1086 }
1087
TEST_F(ViewportTest,viewport51)1088 TEST_F(ViewportTest, viewport51)
1089 {
1090 UseMockScrollbarSettings mockScrollbarSettings;
1091 registerMockedHttpURLLoad("viewport/viewport-51.html");
1092
1093 FrameTestHelpers::WebViewHelper webViewHelper;
1094 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-51.html", true, 0, 0, setViewportSettings);
1095
1096 Page* page = webViewHelper.webViewImpl()->page();
1097 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1098
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);
1105 }
1106
TEST_F(ViewportTest,viewport52)1107 TEST_F(ViewportTest, viewport52)
1108 {
1109 UseMockScrollbarSettings mockScrollbarSettings;
1110 registerMockedHttpURLLoad("viewport/viewport-52.html");
1111
1112 FrameTestHelpers::WebViewHelper webViewHelper;
1113 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-52.html", true, 0, 0, setViewportSettings);
1114
1115 Page* page = webViewHelper.webViewImpl()->page();
1116 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1117
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);
1124 }
1125
TEST_F(ViewportTest,viewport53)1126 TEST_F(ViewportTest, viewport53)
1127 {
1128 UseMockScrollbarSettings mockScrollbarSettings;
1129 registerMockedHttpURLLoad("viewport/viewport-53.html");
1130
1131 FrameTestHelpers::WebViewHelper webViewHelper;
1132 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-53.html", true, 0, 0, setViewportSettings);
1133
1134 Page* page = webViewHelper.webViewImpl()->page();
1135 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1136
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);
1143 }
1144
TEST_F(ViewportTest,viewport54)1145 TEST_F(ViewportTest, viewport54)
1146 {
1147 UseMockScrollbarSettings mockScrollbarSettings;
1148 registerMockedHttpURLLoad("viewport/viewport-54.html");
1149
1150 FrameTestHelpers::WebViewHelper webViewHelper;
1151 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-54.html", true, 0, 0, setViewportSettings);
1152
1153 Page* page = webViewHelper.webViewImpl()->page();
1154 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1155
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);
1162 }
1163
TEST_F(ViewportTest,viewport55)1164 TEST_F(ViewportTest, viewport55)
1165 {
1166 UseMockScrollbarSettings mockScrollbarSettings;
1167 registerMockedHttpURLLoad("viewport/viewport-55.html");
1168
1169 FrameTestHelpers::WebViewHelper webViewHelper;
1170 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-55.html", true, 0, 0, setViewportSettings);
1171
1172 Page* page = webViewHelper.webViewImpl()->page();
1173 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1174
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);
1181 }
1182
TEST_F(ViewportTest,viewport56)1183 TEST_F(ViewportTest, viewport56)
1184 {
1185 UseMockScrollbarSettings mockScrollbarSettings;
1186 registerMockedHttpURLLoad("viewport/viewport-56.html");
1187
1188 FrameTestHelpers::WebViewHelper webViewHelper;
1189 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-56.html", true, 0, 0, setViewportSettings);
1190
1191 Page* page = webViewHelper.webViewImpl()->page();
1192 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1193
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);
1200 }
1201
TEST_F(ViewportTest,viewport57)1202 TEST_F(ViewportTest, viewport57)
1203 {
1204 UseMockScrollbarSettings mockScrollbarSettings;
1205 registerMockedHttpURLLoad("viewport/viewport-57.html");
1206
1207 FrameTestHelpers::WebViewHelper webViewHelper;
1208 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-57.html", true, 0, 0, setViewportSettings);
1209
1210 Page* page = webViewHelper.webViewImpl()->page();
1211 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1212
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);
1219 }
1220
TEST_F(ViewportTest,viewport58)1221 TEST_F(ViewportTest, viewport58)
1222 {
1223 UseMockScrollbarSettings mockScrollbarSettings;
1224 registerMockedHttpURLLoad("viewport/viewport-58.html");
1225
1226 FrameTestHelpers::WebViewHelper webViewHelper;
1227 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-58.html", true, 0, 0, setViewportSettings);
1228
1229 Page* page = webViewHelper.webViewImpl()->page();
1230 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1231
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);
1238 }
1239
TEST_F(ViewportTest,viewport59)1240 TEST_F(ViewportTest, viewport59)
1241 {
1242 UseMockScrollbarSettings mockScrollbarSettings;
1243 registerMockedHttpURLLoad("viewport/viewport-59.html");
1244
1245 FrameTestHelpers::WebViewHelper webViewHelper;
1246 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-59.html", true, 0, 0, setViewportSettings);
1247
1248 Page* page = webViewHelper.webViewImpl()->page();
1249 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1250
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);
1257 }
1258
TEST_F(ViewportTest,viewport60)1259 TEST_F(ViewportTest, viewport60)
1260 {
1261 UseMockScrollbarSettings mockScrollbarSettings;
1262 registerMockedHttpURLLoad("viewport/viewport-60.html");
1263
1264 FrameTestHelpers::WebViewHelper webViewHelper;
1265 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-60.html", true, 0, 0, setViewportSettings);
1266
1267 Page* page = webViewHelper.webViewImpl()->page();
1268 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1269
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);
1276 }
1277
TEST_F(ViewportTest,viewport61)1278 TEST_F(ViewportTest, viewport61)
1279 {
1280 UseMockScrollbarSettings mockScrollbarSettings;
1281 registerMockedHttpURLLoad("viewport/viewport-61.html");
1282
1283 FrameTestHelpers::WebViewHelper webViewHelper;
1284 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-61.html", true, 0, 0, setViewportSettings);
1285
1286 Page* page = webViewHelper.webViewImpl()->page();
1287 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1288
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);
1295 }
1296
TEST_F(ViewportTest,viewport62)1297 TEST_F(ViewportTest, viewport62)
1298 {
1299 UseMockScrollbarSettings mockScrollbarSettings;
1300 registerMockedHttpURLLoad("viewport/viewport-62.html");
1301
1302 FrameTestHelpers::WebViewHelper webViewHelper;
1303 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-62.html", true, 0, 0, setViewportSettings);
1304
1305 Page* page = webViewHelper.webViewImpl()->page();
1306 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1307
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);
1314 }
1315
TEST_F(ViewportTest,viewport63)1316 TEST_F(ViewportTest, viewport63)
1317 {
1318 UseMockScrollbarSettings mockScrollbarSettings;
1319 registerMockedHttpURLLoad("viewport/viewport-63.html");
1320
1321 FrameTestHelpers::WebViewHelper webViewHelper;
1322 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-63.html", true, 0, 0, setViewportSettings);
1323
1324 Page* page = webViewHelper.webViewImpl()->page();
1325 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1326
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);
1333 }
1334
TEST_F(ViewportTest,viewport64)1335 TEST_F(ViewportTest, viewport64)
1336 {
1337 UseMockScrollbarSettings mockScrollbarSettings;
1338 registerMockedHttpURLLoad("viewport/viewport-64.html");
1339
1340 FrameTestHelpers::WebViewHelper webViewHelper;
1341 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-64.html", true, 0, 0, setViewportSettings);
1342
1343 Page* page = webViewHelper.webViewImpl()->page();
1344 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1345
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);
1352 }
1353
TEST_F(ViewportTest,viewport65)1354 TEST_F(ViewportTest, viewport65)
1355 {
1356 UseMockScrollbarSettings mockScrollbarSettings;
1357 registerMockedHttpURLLoad("viewport/viewport-65.html");
1358
1359 FrameTestHelpers::WebViewHelper webViewHelper;
1360 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-65.html", true, 0, 0, setViewportSettings);
1361
1362 Page* page = webViewHelper.webViewImpl()->page();
1363 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1364
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);
1371 }
1372
TEST_F(ViewportTest,viewport66)1373 TEST_F(ViewportTest, viewport66)
1374 {
1375 UseMockScrollbarSettings mockScrollbarSettings;
1376 registerMockedHttpURLLoad("viewport/viewport-66.html");
1377
1378 FrameTestHelpers::WebViewHelper webViewHelper;
1379 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-66.html", true, 0, 0, setViewportSettings);
1380
1381 Page* page = webViewHelper.webViewImpl()->page();
1382 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1383
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);
1390 }
1391
TEST_F(ViewportTest,viewport67)1392 TEST_F(ViewportTest, viewport67)
1393 {
1394 UseMockScrollbarSettings mockScrollbarSettings;
1395 registerMockedHttpURLLoad("viewport/viewport-67.html");
1396
1397 FrameTestHelpers::WebViewHelper webViewHelper;
1398 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-67.html", true, 0, 0, setViewportSettings);
1399
1400 Page* page = webViewHelper.webViewImpl()->page();
1401 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1402
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);
1409 }
1410
TEST_F(ViewportTest,viewport68)1411 TEST_F(ViewportTest, viewport68)
1412 {
1413 UseMockScrollbarSettings mockScrollbarSettings;
1414 registerMockedHttpURLLoad("viewport/viewport-68.html");
1415
1416 FrameTestHelpers::WebViewHelper webViewHelper;
1417 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-68.html", true, 0, 0, setViewportSettings);
1418
1419 Page* page = webViewHelper.webViewImpl()->page();
1420 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1421
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);
1428 }
1429
TEST_F(ViewportTest,viewport69)1430 TEST_F(ViewportTest, viewport69)
1431 {
1432 UseMockScrollbarSettings mockScrollbarSettings;
1433 registerMockedHttpURLLoad("viewport/viewport-69.html");
1434
1435 FrameTestHelpers::WebViewHelper webViewHelper;
1436 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-69.html", true, 0, 0, setViewportSettings);
1437
1438 Page* page = webViewHelper.webViewImpl()->page();
1439 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1440
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);
1447 }
1448
TEST_F(ViewportTest,viewport70)1449 TEST_F(ViewportTest, viewport70)
1450 {
1451 UseMockScrollbarSettings mockScrollbarSettings;
1452 registerMockedHttpURLLoad("viewport/viewport-70.html");
1453
1454 FrameTestHelpers::WebViewHelper webViewHelper;
1455 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-70.html", true, 0, 0, setViewportSettings);
1456
1457 Page* page = webViewHelper.webViewImpl()->page();
1458 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1459
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);
1466 }
1467
TEST_F(ViewportTest,viewport71)1468 TEST_F(ViewportTest, viewport71)
1469 {
1470 UseMockScrollbarSettings mockScrollbarSettings;
1471 registerMockedHttpURLLoad("viewport/viewport-71.html");
1472
1473 FrameTestHelpers::WebViewHelper webViewHelper;
1474 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-71.html", true, 0, 0, setViewportSettings);
1475
1476 Page* page = webViewHelper.webViewImpl()->page();
1477 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1478
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);
1485 }
1486
TEST_F(ViewportTest,viewport72)1487 TEST_F(ViewportTest, viewport72)
1488 {
1489 UseMockScrollbarSettings mockScrollbarSettings;
1490 registerMockedHttpURLLoad("viewport/viewport-72.html");
1491
1492 FrameTestHelpers::WebViewHelper webViewHelper;
1493 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-72.html", true, 0, 0, setViewportSettings);
1494
1495 Page* page = webViewHelper.webViewImpl()->page();
1496 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1497
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);
1504 }
1505
TEST_F(ViewportTest,viewport73)1506 TEST_F(ViewportTest, viewport73)
1507 {
1508 UseMockScrollbarSettings mockScrollbarSettings;
1509 registerMockedHttpURLLoad("viewport/viewport-73.html");
1510
1511 FrameTestHelpers::WebViewHelper webViewHelper;
1512 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-73.html", true, 0, 0, setViewportSettings);
1513
1514 Page* page = webViewHelper.webViewImpl()->page();
1515 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1516
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);
1523 }
1524
TEST_F(ViewportTest,viewport74)1525 TEST_F(ViewportTest, viewport74)
1526 {
1527 UseMockScrollbarSettings mockScrollbarSettings;
1528 registerMockedHttpURLLoad("viewport/viewport-74.html");
1529
1530 FrameTestHelpers::WebViewHelper webViewHelper;
1531 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-74.html", true, 0, 0, setViewportSettings);
1532
1533 Page* page = webViewHelper.webViewImpl()->page();
1534 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1535
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);
1542 }
1543
TEST_F(ViewportTest,viewport75)1544 TEST_F(ViewportTest, viewport75)
1545 {
1546 UseMockScrollbarSettings mockScrollbarSettings;
1547 registerMockedHttpURLLoad("viewport/viewport-75.html");
1548
1549 FrameTestHelpers::WebViewHelper webViewHelper;
1550 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-75.html", true, 0, 0, setViewportSettings);
1551
1552 Page* page = webViewHelper.webViewImpl()->page();
1553 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1554
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);
1561 }
1562
TEST_F(ViewportTest,viewport76)1563 TEST_F(ViewportTest, viewport76)
1564 {
1565 UseMockScrollbarSettings mockScrollbarSettings;
1566 registerMockedHttpURLLoad("viewport/viewport-76.html");
1567
1568 FrameTestHelpers::WebViewHelper webViewHelper;
1569 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-76.html", true, 0, 0, setViewportSettings);
1570
1571 Page* page = webViewHelper.webViewImpl()->page();
1572 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1573
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);
1580 }
1581
TEST_F(ViewportTest,viewport77)1582 TEST_F(ViewportTest, viewport77)
1583 {
1584 UseMockScrollbarSettings mockScrollbarSettings;
1585 registerMockedHttpURLLoad("viewport/viewport-77.html");
1586
1587 FrameTestHelpers::WebViewHelper webViewHelper;
1588 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-77.html", true, 0, 0, setViewportSettings);
1589
1590 Page* page = webViewHelper.webViewImpl()->page();
1591 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1592
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);
1599 }
1600
TEST_F(ViewportTest,viewport78)1601 TEST_F(ViewportTest, viewport78)
1602 {
1603 UseMockScrollbarSettings mockScrollbarSettings;
1604 registerMockedHttpURLLoad("viewport/viewport-78.html");
1605
1606 FrameTestHelpers::WebViewHelper webViewHelper;
1607 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-78.html", true, 0, 0, setViewportSettings);
1608
1609 Page* page = webViewHelper.webViewImpl()->page();
1610 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1611
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);
1618 }
1619
TEST_F(ViewportTest,viewport79)1620 TEST_F(ViewportTest, viewport79)
1621 {
1622 UseMockScrollbarSettings mockScrollbarSettings;
1623 registerMockedHttpURLLoad("viewport/viewport-79.html");
1624
1625 FrameTestHelpers::WebViewHelper webViewHelper;
1626 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-79.html", true, 0, 0, setViewportSettings);
1627
1628 Page* page = webViewHelper.webViewImpl()->page();
1629 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1630
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);
1637 }
1638
TEST_F(ViewportTest,viewport80)1639 TEST_F(ViewportTest, viewport80)
1640 {
1641 UseMockScrollbarSettings mockScrollbarSettings;
1642 registerMockedHttpURLLoad("viewport/viewport-80.html");
1643
1644 FrameTestHelpers::WebViewHelper webViewHelper;
1645 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-80.html", true, 0, 0, setViewportSettings);
1646
1647 Page* page = webViewHelper.webViewImpl()->page();
1648 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1649
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);
1656 }
1657
TEST_F(ViewportTest,viewport81)1658 TEST_F(ViewportTest, viewport81)
1659 {
1660 UseMockScrollbarSettings mockScrollbarSettings;
1661 registerMockedHttpURLLoad("viewport/viewport-81.html");
1662
1663 FrameTestHelpers::WebViewHelper webViewHelper;
1664 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-81.html", true, 0, 0, setViewportSettings);
1665
1666 Page* page = webViewHelper.webViewImpl()->page();
1667 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1668
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);
1675 }
1676
TEST_F(ViewportTest,viewport82)1677 TEST_F(ViewportTest, viewport82)
1678 {
1679 UseMockScrollbarSettings mockScrollbarSettings;
1680 registerMockedHttpURLLoad("viewport/viewport-82.html");
1681
1682 FrameTestHelpers::WebViewHelper webViewHelper;
1683 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-82.html", true, 0, 0, setViewportSettings);
1684
1685 Page* page = webViewHelper.webViewImpl()->page();
1686 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1687
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);
1694 }
1695
TEST_F(ViewportTest,viewport83)1696 TEST_F(ViewportTest, viewport83)
1697 {
1698 UseMockScrollbarSettings mockScrollbarSettings;
1699 registerMockedHttpURLLoad("viewport/viewport-83.html");
1700
1701 FrameTestHelpers::WebViewHelper webViewHelper;
1702 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-83.html", true, 0, 0, setViewportSettings);
1703
1704 Page* page = webViewHelper.webViewImpl()->page();
1705 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1706
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);
1713 }
1714
TEST_F(ViewportTest,viewport84)1715 TEST_F(ViewportTest, viewport84)
1716 {
1717 UseMockScrollbarSettings mockScrollbarSettings;
1718 registerMockedHttpURLLoad("viewport/viewport-84.html");
1719
1720 FrameTestHelpers::WebViewHelper webViewHelper;
1721 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-84.html", true, 0, 0, setViewportSettings);
1722
1723 Page* page = webViewHelper.webViewImpl()->page();
1724 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1725
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);
1732 }
1733
TEST_F(ViewportTest,viewport85)1734 TEST_F(ViewportTest, viewport85)
1735 {
1736 UseMockScrollbarSettings mockScrollbarSettings;
1737 registerMockedHttpURLLoad("viewport/viewport-85.html");
1738
1739 FrameTestHelpers::WebViewHelper webViewHelper;
1740 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-85.html", true, 0, 0, setViewportSettings);
1741
1742 Page* page = webViewHelper.webViewImpl()->page();
1743 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1744
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);
1751 }
1752
TEST_F(ViewportTest,viewport86)1753 TEST_F(ViewportTest, viewport86)
1754 {
1755 UseMockScrollbarSettings mockScrollbarSettings;
1756 registerMockedHttpURLLoad("viewport/viewport-86.html");
1757
1758 FrameTestHelpers::WebViewHelper webViewHelper;
1759 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-86.html", true, 0, 0, setViewportSettings);
1760
1761 Page* page = webViewHelper.webViewImpl()->page();
1762 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1763
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);
1770 }
1771
TEST_F(ViewportTest,viewport87)1772 TEST_F(ViewportTest, viewport87)
1773 {
1774 UseMockScrollbarSettings mockScrollbarSettings;
1775 registerMockedHttpURLLoad("viewport/viewport-87.html");
1776
1777 FrameTestHelpers::WebViewHelper webViewHelper;
1778 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-87.html", true, 0, 0, setViewportSettings);
1779
1780 Page* page = webViewHelper.webViewImpl()->page();
1781 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1782
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);
1789 }
1790
TEST_F(ViewportTest,viewport88)1791 TEST_F(ViewportTest, viewport88)
1792 {
1793 UseMockScrollbarSettings mockScrollbarSettings;
1794 registerMockedHttpURLLoad("viewport/viewport-88.html");
1795
1796 FrameTestHelpers::WebViewHelper webViewHelper;
1797 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-88.html", true, 0, 0, setViewportSettings);
1798
1799 Page* page = webViewHelper.webViewImpl()->page();
1800 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1801
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);
1808 }
1809
TEST_F(ViewportTest,viewport90)1810 TEST_F(ViewportTest, viewport90)
1811 {
1812 UseMockScrollbarSettings mockScrollbarSettings;
1813 registerMockedHttpURLLoad("viewport/viewport-90.html");
1814
1815 FrameTestHelpers::WebViewHelper webViewHelper;
1816 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-90.html", true, 0, 0, setViewportSettings);
1817
1818 Page* page = webViewHelper.webViewImpl()->page();
1819 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1820
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);
1827 }
1828
TEST_F(ViewportTest,viewport100)1829 TEST_F(ViewportTest, viewport100)
1830 {
1831 UseMockScrollbarSettings mockScrollbarSettings;
1832 registerMockedHttpURLLoad("viewport/viewport-100.html");
1833
1834 FrameTestHelpers::WebViewHelper webViewHelper;
1835 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-100.html", true, 0, 0, setViewportSettings);
1836
1837 Page* page = webViewHelper.webViewImpl()->page();
1838 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1839
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);
1846 }
1847
TEST_F(ViewportTest,viewport101)1848 TEST_F(ViewportTest, viewport101)
1849 {
1850 UseMockScrollbarSettings mockScrollbarSettings;
1851 registerMockedHttpURLLoad("viewport/viewport-101.html");
1852
1853 FrameTestHelpers::WebViewHelper webViewHelper;
1854 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-101.html", true, 0, 0, setViewportSettings);
1855
1856 Page* page = webViewHelper.webViewImpl()->page();
1857 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1858
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);
1865 }
1866
TEST_F(ViewportTest,viewport102)1867 TEST_F(ViewportTest, viewport102)
1868 {
1869 UseMockScrollbarSettings mockScrollbarSettings;
1870 registerMockedHttpURLLoad("viewport/viewport-102.html");
1871
1872 FrameTestHelpers::WebViewHelper webViewHelper;
1873 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-102.html", true, 0, 0, setViewportSettings);
1874
1875 Page* page = webViewHelper.webViewImpl()->page();
1876 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1877
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);
1884 }
1885
TEST_F(ViewportTest,viewport103)1886 TEST_F(ViewportTest, viewport103)
1887 {
1888 UseMockScrollbarSettings mockScrollbarSettings;
1889 registerMockedHttpURLLoad("viewport/viewport-103.html");
1890
1891 FrameTestHelpers::WebViewHelper webViewHelper;
1892 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-103.html", true, 0, 0, setViewportSettings);
1893
1894 Page* page = webViewHelper.webViewImpl()->page();
1895 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1896
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);
1903 }
1904
TEST_F(ViewportTest,viewport104)1905 TEST_F(ViewportTest, viewport104)
1906 {
1907 UseMockScrollbarSettings mockScrollbarSettings;
1908 registerMockedHttpURLLoad("viewport/viewport-104.html");
1909
1910 FrameTestHelpers::WebViewHelper webViewHelper;
1911 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-104.html", true, 0, 0, setViewportSettings);
1912
1913 Page* page = webViewHelper.webViewImpl()->page();
1914 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1915
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);
1922 }
1923
TEST_F(ViewportTest,viewport105)1924 TEST_F(ViewportTest, viewport105)
1925 {
1926 UseMockScrollbarSettings mockScrollbarSettings;
1927 registerMockedHttpURLLoad("viewport/viewport-105.html");
1928
1929 FrameTestHelpers::WebViewHelper webViewHelper;
1930 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-105.html", true, 0, 0, setViewportSettings);
1931
1932 Page* page = webViewHelper.webViewImpl()->page();
1933 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1934
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);
1941 }
1942
TEST_F(ViewportTest,viewport106)1943 TEST_F(ViewportTest, viewport106)
1944 {
1945 UseMockScrollbarSettings mockScrollbarSettings;
1946 registerMockedHttpURLLoad("viewport/viewport-106.html");
1947
1948 FrameTestHelpers::WebViewHelper webViewHelper;
1949 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-106.html", true, 0, 0, setViewportSettings);
1950
1951 Page* page = webViewHelper.webViewImpl()->page();
1952 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1953
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);
1960 }
1961
TEST_F(ViewportTest,viewport107)1962 TEST_F(ViewportTest, viewport107)
1963 {
1964 UseMockScrollbarSettings mockScrollbarSettings;
1965 registerMockedHttpURLLoad("viewport/viewport-107.html");
1966
1967 FrameTestHelpers::WebViewHelper webViewHelper;
1968 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-107.html", true, 0, 0, setViewportSettings);
1969
1970 Page* page = webViewHelper.webViewImpl()->page();
1971 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1972
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);
1979 }
1980
TEST_F(ViewportTest,viewport108)1981 TEST_F(ViewportTest, viewport108)
1982 {
1983 UseMockScrollbarSettings mockScrollbarSettings;
1984 registerMockedHttpURLLoad("viewport/viewport-108.html");
1985
1986 FrameTestHelpers::WebViewHelper webViewHelper;
1987 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-108.html", true, 0, 0, setViewportSettings);
1988
1989 Page* page = webViewHelper.webViewImpl()->page();
1990 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
1991
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);
1998 }
1999
TEST_F(ViewportTest,viewport109)2000 TEST_F(ViewportTest, viewport109)
2001 {
2002 UseMockScrollbarSettings mockScrollbarSettings;
2003 registerMockedHttpURLLoad("viewport/viewport-109.html");
2004
2005 FrameTestHelpers::WebViewHelper webViewHelper;
2006 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-109.html", true, 0, 0, setViewportSettings);
2007
2008 Page* page = webViewHelper.webViewImpl()->page();
2009 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2010
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);
2017 }
2018
TEST_F(ViewportTest,viewport110)2019 TEST_F(ViewportTest, viewport110)
2020 {
2021 UseMockScrollbarSettings mockScrollbarSettings;
2022 registerMockedHttpURLLoad("viewport/viewport-110.html");
2023
2024 FrameTestHelpers::WebViewHelper webViewHelper;
2025 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-110.html", true, 0, 0, setViewportSettings);
2026
2027 Page* page = webViewHelper.webViewImpl()->page();
2028 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2029
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);
2036 }
2037
TEST_F(ViewportTest,viewport111)2038 TEST_F(ViewportTest, viewport111)
2039 {
2040 UseMockScrollbarSettings mockScrollbarSettings;
2041 registerMockedHttpURLLoad("viewport/viewport-111.html");
2042
2043 FrameTestHelpers::WebViewHelper webViewHelper;
2044 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-111.html", true, 0, 0, setViewportSettings);
2045
2046 Page* page = webViewHelper.webViewImpl()->page();
2047 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2048
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);
2055 }
2056
TEST_F(ViewportTest,viewport112)2057 TEST_F(ViewportTest, viewport112)
2058 {
2059 UseMockScrollbarSettings mockScrollbarSettings;
2060 registerMockedHttpURLLoad("viewport/viewport-112.html");
2061
2062 FrameTestHelpers::WebViewHelper webViewHelper;
2063 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-112.html", true, 0, 0, setViewportSettings);
2064
2065 Page* page = webViewHelper.webViewImpl()->page();
2066 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2067
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);
2074 }
2075
TEST_F(ViewportTest,viewport113)2076 TEST_F(ViewportTest, viewport113)
2077 {
2078 UseMockScrollbarSettings mockScrollbarSettings;
2079 registerMockedHttpURLLoad("viewport/viewport-113.html");
2080
2081 FrameTestHelpers::WebViewHelper webViewHelper;
2082 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-113.html", true, 0, 0, setViewportSettings);
2083
2084 Page* page = webViewHelper.webViewImpl()->page();
2085 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2086
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);
2093 }
2094
TEST_F(ViewportTest,viewport114)2095 TEST_F(ViewportTest, viewport114)
2096 {
2097 UseMockScrollbarSettings mockScrollbarSettings;
2098 registerMockedHttpURLLoad("viewport/viewport-114.html");
2099
2100 FrameTestHelpers::WebViewHelper webViewHelper;
2101 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-114.html", true, 0, 0, setViewportSettings);
2102
2103 Page* page = webViewHelper.webViewImpl()->page();
2104 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2105
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);
2112 }
2113
TEST_F(ViewportTest,viewport115)2114 TEST_F(ViewportTest, viewport115)
2115 {
2116 UseMockScrollbarSettings mockScrollbarSettings;
2117 registerMockedHttpURLLoad("viewport/viewport-115.html");
2118
2119 FrameTestHelpers::WebViewHelper webViewHelper;
2120 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-115.html", true, 0, 0, setViewportSettings);
2121
2122 Page* page = webViewHelper.webViewImpl()->page();
2123 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2124
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);
2131 }
2132
TEST_F(ViewportTest,viewport116)2133 TEST_F(ViewportTest, viewport116)
2134 {
2135 UseMockScrollbarSettings mockScrollbarSettings;
2136 registerMockedHttpURLLoad("viewport/viewport-116.html");
2137
2138 FrameTestHelpers::WebViewHelper webViewHelper;
2139 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-116.html", true, 0, 0, setViewportSettings);
2140
2141 Page* page = webViewHelper.webViewImpl()->page();
2142 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2143
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);
2150 }
2151
TEST_F(ViewportTest,viewport117)2152 TEST_F(ViewportTest, viewport117)
2153 {
2154 UseMockScrollbarSettings mockScrollbarSettings;
2155 registerMockedHttpURLLoad("viewport/viewport-117.html");
2156
2157 FrameTestHelpers::WebViewHelper webViewHelper;
2158 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-117.html", true, 0, 0, setViewportSettings);
2159
2160 Page* page = webViewHelper.webViewImpl()->page();
2161 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2162
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);
2169 }
2170
TEST_F(ViewportTest,viewport118)2171 TEST_F(ViewportTest, viewport118)
2172 {
2173 UseMockScrollbarSettings mockScrollbarSettings;
2174 registerMockedHttpURLLoad("viewport/viewport-118.html");
2175
2176 FrameTestHelpers::WebViewHelper webViewHelper;
2177 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-118.html", true, 0, 0, setViewportSettings);
2178
2179 Page* page = webViewHelper.webViewImpl()->page();
2180 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2181
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);
2188 }
2189
TEST_F(ViewportTest,viewport119)2190 TEST_F(ViewportTest, viewport119)
2191 {
2192 UseMockScrollbarSettings mockScrollbarSettings;
2193 registerMockedHttpURLLoad("viewport/viewport-119.html");
2194
2195 FrameTestHelpers::WebViewHelper webViewHelper;
2196 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-119.html", true, 0, 0, setViewportSettings);
2197
2198 Page* page = webViewHelper.webViewImpl()->page();
2199 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2200
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);
2207 }
2208
TEST_F(ViewportTest,viewport120)2209 TEST_F(ViewportTest, viewport120)
2210 {
2211 UseMockScrollbarSettings mockScrollbarSettings;
2212 registerMockedHttpURLLoad("viewport/viewport-120.html");
2213
2214 FrameTestHelpers::WebViewHelper webViewHelper;
2215 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-120.html", true, 0, 0, setViewportSettings);
2216
2217 Page* page = webViewHelper.webViewImpl()->page();
2218 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2219
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);
2226 }
2227
TEST_F(ViewportTest,viewport121)2228 TEST_F(ViewportTest, viewport121)
2229 {
2230 UseMockScrollbarSettings mockScrollbarSettings;
2231 registerMockedHttpURLLoad("viewport/viewport-121.html");
2232
2233 FrameTestHelpers::WebViewHelper webViewHelper;
2234 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-121.html", true, 0, 0, setViewportSettings);
2235
2236 Page* page = webViewHelper.webViewImpl()->page();
2237 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2238
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);
2245 }
2246
TEST_F(ViewportTest,viewport122)2247 TEST_F(ViewportTest, viewport122)
2248 {
2249 UseMockScrollbarSettings mockScrollbarSettings;
2250 registerMockedHttpURLLoad("viewport/viewport-122.html");
2251
2252 FrameTestHelpers::WebViewHelper webViewHelper;
2253 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-122.html", true, 0, 0, setViewportSettings);
2254
2255 Page* page = webViewHelper.webViewImpl()->page();
2256 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2257
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);
2264 }
2265
TEST_F(ViewportTest,viewport123)2266 TEST_F(ViewportTest, viewport123)
2267 {
2268 UseMockScrollbarSettings mockScrollbarSettings;
2269 registerMockedHttpURLLoad("viewport/viewport-123.html");
2270
2271 FrameTestHelpers::WebViewHelper webViewHelper;
2272 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-123.html", true, 0, 0, setViewportSettings);
2273
2274 Page* page = webViewHelper.webViewImpl()->page();
2275 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2276
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);
2283 }
2284
TEST_F(ViewportTest,viewport124)2285 TEST_F(ViewportTest, viewport124)
2286 {
2287 UseMockScrollbarSettings mockScrollbarSettings;
2288 registerMockedHttpURLLoad("viewport/viewport-124.html");
2289
2290 FrameTestHelpers::WebViewHelper webViewHelper;
2291 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-124.html", true, 0, 0, setViewportSettings);
2292
2293 Page* page = webViewHelper.webViewImpl()->page();
2294 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2295
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);
2302 }
2303
TEST_F(ViewportTest,viewport125)2304 TEST_F(ViewportTest, viewport125)
2305 {
2306 UseMockScrollbarSettings mockScrollbarSettings;
2307 registerMockedHttpURLLoad("viewport/viewport-125.html");
2308
2309 FrameTestHelpers::WebViewHelper webViewHelper;
2310 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-125.html", true, 0, 0, setViewportSettings);
2311
2312 Page* page = webViewHelper.webViewImpl()->page();
2313 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2314
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);
2321 }
2322
TEST_F(ViewportTest,viewport126)2323 TEST_F(ViewportTest, viewport126)
2324 {
2325 UseMockScrollbarSettings mockScrollbarSettings;
2326 registerMockedHttpURLLoad("viewport/viewport-126.html");
2327
2328 FrameTestHelpers::WebViewHelper webViewHelper;
2329 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-126.html", true, 0, 0, setViewportSettings);
2330
2331 Page* page = webViewHelper.webViewImpl()->page();
2332 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2333
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);
2340 }
2341
TEST_F(ViewportTest,viewport127)2342 TEST_F(ViewportTest, viewport127)
2343 {
2344 UseMockScrollbarSettings mockScrollbarSettings;
2345 registerMockedHttpURLLoad("viewport/viewport-127.html");
2346
2347 FrameTestHelpers::WebViewHelper webViewHelper;
2348 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-127.html", true, 0, 0, setViewportSettings);
2349
2350 Page* page = webViewHelper.webViewImpl()->page();
2351 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2352
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);
2359 }
2360
TEST_F(ViewportTest,viewport129)2361 TEST_F(ViewportTest, viewport129)
2362 {
2363 UseMockScrollbarSettings mockScrollbarSettings;
2364 registerMockedHttpURLLoad("viewport/viewport-129.html");
2365
2366 FrameTestHelpers::WebViewHelper webViewHelper;
2367 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-129.html", true, 0, 0, setViewportSettings);
2368
2369 Page* page = webViewHelper.webViewImpl()->page();
2370 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2371
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);
2378 }
2379
TEST_F(ViewportTest,viewport130)2380 TEST_F(ViewportTest, viewport130)
2381 {
2382 UseMockScrollbarSettings mockScrollbarSettings;
2383 registerMockedHttpURLLoad("viewport/viewport-130.html");
2384
2385 FrameTestHelpers::WebViewHelper webViewHelper;
2386 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-130.html", true, 0, 0, setViewportSettings);
2387
2388 Page* page = webViewHelper.webViewImpl()->page();
2389 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2390
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);
2397 }
2398
TEST_F(ViewportTest,viewport131)2399 TEST_F(ViewportTest, viewport131)
2400 {
2401 UseMockScrollbarSettings mockScrollbarSettings;
2402 registerMockedHttpURLLoad("viewport/viewport-131.html");
2403
2404 FrameTestHelpers::WebViewHelper webViewHelper;
2405 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-131.html", true, 0, 0, setViewportSettings);
2406
2407 Page* page = webViewHelper.webViewImpl()->page();
2408 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2409
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);
2416 }
2417
TEST_F(ViewportTest,viewport132)2418 TEST_F(ViewportTest, viewport132)
2419 {
2420 UseMockScrollbarSettings mockScrollbarSettings;
2421 registerMockedHttpURLLoad("viewport/viewport-132.html");
2422
2423 FrameTestHelpers::WebViewHelper webViewHelper;
2424 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-132.html", true, 0, 0, setViewportSettings);
2425
2426 Page* page = webViewHelper.webViewImpl()->page();
2427 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2428
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);
2435 }
2436
TEST_F(ViewportTest,viewport133)2437 TEST_F(ViewportTest, viewport133)
2438 {
2439 UseMockScrollbarSettings mockScrollbarSettings;
2440 registerMockedHttpURLLoad("viewport/viewport-133.html");
2441
2442 FrameTestHelpers::WebViewHelper webViewHelper;
2443 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-133.html", true, 0, 0, setViewportSettings);
2444
2445 Page* page = webViewHelper.webViewImpl()->page();
2446 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2447
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);
2454 }
2455
TEST_F(ViewportTest,viewport134)2456 TEST_F(ViewportTest, viewport134)
2457 {
2458 UseMockScrollbarSettings mockScrollbarSettings;
2459 registerMockedHttpURLLoad("viewport/viewport-134.html");
2460
2461 FrameTestHelpers::WebViewHelper webViewHelper;
2462 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-134.html", true, 0, 0, setViewportSettings);
2463
2464 Page* page = webViewHelper.webViewImpl()->page();
2465 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2466
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);
2473 }
2474
TEST_F(ViewportTest,viewport135)2475 TEST_F(ViewportTest, viewport135)
2476 {
2477 UseMockScrollbarSettings mockScrollbarSettings;
2478 registerMockedHttpURLLoad("viewport/viewport-135.html");
2479
2480 FrameTestHelpers::WebViewHelper webViewHelper;
2481 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-135.html", true, 0, 0, setViewportSettings);
2482
2483 Page* page = webViewHelper.webViewImpl()->page();
2484 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2485
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);
2492 }
2493
TEST_F(ViewportTest,viewport136)2494 TEST_F(ViewportTest, viewport136)
2495 {
2496 UseMockScrollbarSettings mockScrollbarSettings;
2497 registerMockedHttpURLLoad("viewport/viewport-136.html");
2498
2499 FrameTestHelpers::WebViewHelper webViewHelper;
2500 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-136.html", true, 0, 0, setViewportSettings);
2501
2502 Page* page = webViewHelper.webViewImpl()->page();
2503 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2504
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);
2511 }
2512
TEST_F(ViewportTest,viewport137)2513 TEST_F(ViewportTest, viewport137)
2514 {
2515 UseMockScrollbarSettings mockScrollbarSettings;
2516 registerMockedHttpURLLoad("viewport/viewport-137.html");
2517
2518 FrameTestHelpers::WebViewHelper webViewHelper;
2519 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-137.html", true, 0, 0, setViewportSettings);
2520
2521 Page* page = webViewHelper.webViewImpl()->page();
2522 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2523
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);
2530 }
2531
TEST_F(ViewportTest,viewport138)2532 TEST_F(ViewportTest, viewport138)
2533 {
2534 registerMockedHttpURLLoad("viewport/viewport-138.html");
2535
2536 FrameTestHelpers::WebViewHelper webViewHelper;
2537 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-138.html", true, 0, 0, setViewportSettings);
2538
2539 Page* page = webViewHelper.webViewImpl()->page();
2540 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2541
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);
2548 }
2549
TEST_F(ViewportTest,viewportLegacyHandheldFriendly)2550 TEST_F(ViewportTest, viewportLegacyHandheldFriendly)
2551 {
2552 UseMockScrollbarSettings mockScrollbarSettings;
2553 registerMockedHttpURLLoad("viewport/viewport-legacy-handheldfriendly.html");
2554
2555 FrameTestHelpers::WebViewHelper webViewHelper;
2556 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-handheldfriendly.html", true, 0, 0, setViewportSettings);
2557
2558 Page* page = webViewHelper.webViewImpl()->page();
2559 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2560
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);
2567 }
2568
setQuirkViewportSettings(WebSettings * settings)2569 static void setQuirkViewportSettings(WebSettings* settings)
2570 {
2571 setViewportSettings(settings);
2572
2573 // This quirk allows content attributes of meta viewport tags to be merged.
2574 settings->setViewportMetaMergeContentQuirk(true);
2575 }
2576
TEST_F(ViewportTest,viewportLegacyMergeQuirk1)2577 TEST_F(ViewportTest, viewportLegacyMergeQuirk1)
2578 {
2579 UseMockScrollbarSettings mockScrollbarSettings;
2580 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-1.html");
2581
2582 FrameTestHelpers::WebViewHelper webViewHelper;
2583 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-1.html", true, 0, 0, setQuirkViewportSettings);
2584
2585 Page* page = webViewHelper.webViewImpl()->page();
2586 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2587
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);
2594 }
2595
TEST_F(ViewportTest,viewportLegacyMergeQuirk2)2596 TEST_F(ViewportTest, viewportLegacyMergeQuirk2)
2597 {
2598 UseMockScrollbarSettings mockScrollbarSettings;
2599 registerMockedHttpURLLoad("viewport/viewport-legacy-merge-quirk-2.html");
2600
2601 FrameTestHelpers::WebViewHelper webViewHelper;
2602 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-merge-quirk-2.html", true, 0, 0, setQuirkViewportSettings);
2603
2604 Page* page = webViewHelper.webViewImpl()->page();
2605
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);
2609
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);
2616 }
2617
TEST_F(ViewportTest,viewportLegacyMobileOptimizedMetaWithoutContent)2618 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWithoutContent)
2619 {
2620 UseMockScrollbarSettings mockScrollbarSettings;
2621 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized.html");
2622
2623 FrameTestHelpers::WebViewHelper webViewHelper;
2624 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized.html", true, 0, 0, setViewportSettings);
2625
2626 Page* page = webViewHelper.webViewImpl()->page();
2627
2628 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2629
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);
2636 }
2637
TEST_F(ViewportTest,viewportLegacyMobileOptimizedMetaWith0)2638 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith0)
2639 {
2640 UseMockScrollbarSettings mockScrollbarSettings;
2641 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2642
2643 FrameTestHelpers::WebViewHelper webViewHelper;
2644 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2645
2646 Page* page = webViewHelper.webViewImpl()->page();
2647
2648 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2649
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);
2656 }
2657
TEST_F(ViewportTest,viewportLegacyMobileOptimizedMetaWith400)2658 TEST_F(ViewportTest, viewportLegacyMobileOptimizedMetaWith400)
2659 {
2660 UseMockScrollbarSettings mockScrollbarSettings;
2661 registerMockedHttpURLLoad("viewport/viewport-legacy-mobileoptimized-2.html");
2662
2663 FrameTestHelpers::WebViewHelper webViewHelper;
2664 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-mobileoptimized-2.html", true, 0, 0, setViewportSettings);
2665
2666 Page* page = webViewHelper.webViewImpl()->page();
2667
2668 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2669
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);
2676 }
2677
TEST_F(ViewportTest,viewportLegacyOrdering2)2678 TEST_F(ViewportTest, viewportLegacyOrdering2)
2679 {
2680 UseMockScrollbarSettings mockScrollbarSettings;
2681 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-2.html");
2682
2683 FrameTestHelpers::WebViewHelper webViewHelper;
2684 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-2.html", true, 0, 0, setViewportSettings);
2685
2686 Page* page = webViewHelper.webViewImpl()->page();
2687
2688 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2689
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);
2696 }
2697
TEST_F(ViewportTest,viewportLegacyOrdering3)2698 TEST_F(ViewportTest, viewportLegacyOrdering3)
2699 {
2700 UseMockScrollbarSettings mockScrollbarSettings;
2701 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-3.html");
2702
2703 FrameTestHelpers::WebViewHelper webViewHelper;
2704 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-3.html", true, 0, 0, setViewportSettings);
2705
2706 Page* page = webViewHelper.webViewImpl()->page();
2707
2708 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2709
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);
2716 }
2717
TEST_F(ViewportTest,viewportLegacyOrdering4)2718 TEST_F(ViewportTest, viewportLegacyOrdering4)
2719 {
2720 UseMockScrollbarSettings mockScrollbarSettings;
2721 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-4.html");
2722
2723 FrameTestHelpers::WebViewHelper webViewHelper;
2724 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-4.html", true, 0, 0, setViewportSettings);
2725
2726 Page* page = webViewHelper.webViewImpl()->page();
2727
2728 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2729
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);
2736 }
2737
TEST_F(ViewportTest,viewportLegacyOrdering5)2738 TEST_F(ViewportTest, viewportLegacyOrdering5)
2739 {
2740 UseMockScrollbarSettings mockScrollbarSettings;
2741 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-5.html");
2742
2743 FrameTestHelpers::WebViewHelper webViewHelper;
2744 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-5.html", true, 0, 0, setViewportSettings);
2745
2746 Page* page = webViewHelper.webViewImpl()->page();
2747
2748 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2749
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);
2756 }
2757
TEST_F(ViewportTest,viewportLegacyOrdering6)2758 TEST_F(ViewportTest, viewportLegacyOrdering6)
2759 {
2760 UseMockScrollbarSettings mockScrollbarSettings;
2761 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-6.html");
2762
2763 FrameTestHelpers::WebViewHelper webViewHelper;
2764 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-6.html", true, 0, 0, setViewportSettings);
2765
2766 Page* page = webViewHelper.webViewImpl()->page();
2767
2768 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2769
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);
2776 }
2777
TEST_F(ViewportTest,viewportLegacyOrdering7)2778 TEST_F(ViewportTest, viewportLegacyOrdering7)
2779 {
2780 UseMockScrollbarSettings mockScrollbarSettings;
2781 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-7.html");
2782
2783 FrameTestHelpers::WebViewHelper webViewHelper;
2784 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-7.html", true, 0, 0, setViewportSettings);
2785
2786 Page* page = webViewHelper.webViewImpl()->page();
2787
2788 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2789
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);
2796 }
2797
TEST_F(ViewportTest,viewportLegacyOrdering8)2798 TEST_F(ViewportTest, viewportLegacyOrdering8)
2799 {
2800 UseMockScrollbarSettings mockScrollbarSettings;
2801 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-8.html");
2802
2803 FrameTestHelpers::WebViewHelper webViewHelper;
2804 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-8.html", true, 0, 0, setViewportSettings);
2805
2806 Page* page = webViewHelper.webViewImpl()->page();
2807
2808 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2809
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);
2816 }
2817
TEST_F(ViewportTest,viewportLegacyEmptyAtViewportDoesntOverrideViewportMeta)2818 TEST_F(ViewportTest, viewportLegacyEmptyAtViewportDoesntOverrideViewportMeta)
2819 {
2820 UseMockScrollbarSettings mockScrollbarSettings;
2821 registerMockedHttpURLLoad("viewport/viewport-legacy-ordering-10.html");
2822
2823 FrameTestHelpers::WebViewHelper webViewHelper;
2824 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-ordering-10.html", true, 0, 0, setViewportSettings);
2825
2826 Page* page = webViewHelper.webViewImpl()->page();
2827 PageScaleConstraints constraints = runViewportTest(page, 800, 600);
2828
2829 EXPECT_EQ(5000, constraints.layoutSize.width());
2830 }
2831
TEST_F(ViewportTest,viewportLegacyDefaultValueChangedByXHTMLMP)2832 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMP)
2833 {
2834 UseMockScrollbarSettings mockScrollbarSettings;
2835 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2836
2837 FrameTestHelpers::WebViewHelper webViewHelper;
2838 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2839
2840 Page* page = webViewHelper.webViewImpl()->page();
2841 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2842
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);
2849 }
2850
TEST_F(ViewportTest,viewportLegacyDefaultValueChangedByXHTMLMPAndOverriddenByMeta)2851 TEST_F(ViewportTest, viewportLegacyDefaultValueChangedByXHTMLMPAndOverriddenByMeta)
2852 {
2853 UseMockScrollbarSettings mockScrollbarSettings;
2854 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html");
2855
2856 FrameTestHelpers::WebViewHelper webViewHelper;
2857 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-misplaced-doctype.html", true, 0, 0, setViewportSettings);
2858
2859 Page* page = webViewHelper.webViewImpl()->page();
2860 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2861
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);
2868 }
2869
TEST_F(ViewportTest,viewportLegacyXHTMLMPOrdering)2870 TEST_F(ViewportTest, viewportLegacyXHTMLMPOrdering)
2871 {
2872 UseMockScrollbarSettings mockScrollbarSettings;
2873 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp-ordering.html");
2874
2875 FrameTestHelpers::WebViewHelper webViewHelper;
2876 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp-ordering.html", true, 0, 0, setViewportSettings);
2877
2878 Page* page = webViewHelper.webViewImpl()->page();
2879 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2880
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);
2887 }
2888
TEST_F(ViewportTest,viewportLegacyXHTMLMPRemoveAndAdd)2889 TEST_F(ViewportTest, viewportLegacyXHTMLMPRemoveAndAdd)
2890 {
2891 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
2892
2893 FrameTestHelpers::WebViewHelper webViewHelper;
2894 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-legacy-xhtmlmp.html", true, 0, 0, setViewportSettings);
2895
2896 Page* page = webViewHelper.webViewImpl()->page();
2897 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
2898
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);
2905
2906 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2907 "originalDoctype = document.doctype;"
2908 "document.removeChild(originalDoctype);");
2909
2910 constraints = runViewportTest(page, 320, 352);
2911
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);
2918
2919 executeScript(webViewHelper.webViewImpl()->mainFrame(),
2920 "document.insertBefore(originalDoctype, document.firstChild);");
2921
2922 constraints = runViewportTest(page, 320, 352);
2923
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);
2930 }
2931
TEST_F(ViewportTest,viewportLimitsAdjustedForNoUserScale)2932 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScale)
2933 {
2934 UseMockScrollbarSettings mockScrollbarSettings;
2935 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale.html");
2936
2937 FrameTestHelpers::WebViewHelper webViewHelper;
2938 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale.html", true, 0, 0, setViewportSettings);
2939
2940 Page* page = webViewHelper.webViewImpl()->page();
2941
2942 EXPECT_FALSE(page->viewportDescription().userZoom);
2943 }
2944
TEST_F(ViewportTest,viewportLimitsAdjustedForNoUserScaleControl)2945 TEST_F(ViewportTest, viewportLimitsAdjustedForNoUserScaleControl)
2946 {
2947 UseMockScrollbarSettings mockScrollbarSettings;
2948 registerMockedHttpURLLoad("viewport/viewport-limits-adjusted-for-no-user-scale-control.html");
2949
2950 FrameTestHelpers::WebViewHelper webViewHelper;
2951 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-limits-adjusted-for-no-user-scale-control.html", true, 0, 0, setViewportSettings);
2952
2953 Page* page = webViewHelper.webViewImpl()->page();
2954
2955 EXPECT_TRUE(page->viewportDescription().userZoom);
2956 }
2957
TEST_F(ViewportTest,viewportTriggersGpuRasterization)2958 TEST_F(ViewportTest, viewportTriggersGpuRasterization)
2959 {
2960 UseMockScrollbarSettings mockScrollbarSettings;
2961
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());
2967
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());
2972
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());
2977
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());
2982
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());
2987
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());
2992 }
2993
setViewportSettingsWithExpandedHeuristicsForGpuRasterization(WebSettings * settings)2994 static void setViewportSettingsWithExpandedHeuristicsForGpuRasterization(WebSettings* settings)
2995 {
2996 setViewportSettings(settings);
2997 settings->setUseExpandedHeuristicsForGpuRasterization(true);
2998 }
2999
TEST_F(ViewportTest,viewportTriggersGpuRasterizationWithExpandedHeuristics)3000 TEST_F(ViewportTest, viewportTriggersGpuRasterizationWithExpandedHeuristics)
3001 {
3002 UseMockScrollbarSettings mockScrollbarSettings;
3003
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());
3009
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());
3014
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());
3019
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());
3024
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());
3029
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());
3034 }
3035
3036 class ConsoleMessageWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
3037 public:
didAddMessageToConsole(const WebConsoleMessage & msg,const WebString & sourceName,unsigned sourceLine,const WebString & stackTrace)3038 virtual void didAddMessageToConsole(const WebConsoleMessage& msg, const WebString& sourceName, unsigned sourceLine, const WebString& stackTrace)
3039 {
3040 messages.push_back(msg);
3041 }
3042
3043 std::vector<WebConsoleMessage> messages;
3044 };
3045
TEST_F(ViewportTest,viewportWarnings1)3046 TEST_F(ViewportTest, viewportWarnings1)
3047 {
3048 ConsoleMessageWebFrameClient webFrameClient;
3049
3050 registerMockedHttpURLLoad("viewport/viewport-warnings-1.html");
3051
3052 FrameTestHelpers::WebViewHelper webViewHelper;
3053 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-1.html", true, &webFrameClient, 0, setViewportSettings);
3054
3055 Page* page = webViewHelper.webViewImpl()->page();
3056 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3057
3058 EXPECT_TRUE(webFrameClient.messages.empty());
3059
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);
3066 }
3067
TEST_F(ViewportTest,viewportWarnings2)3068 TEST_F(ViewportTest, viewportWarnings2)
3069 {
3070 ConsoleMessageWebFrameClient webFrameClient;
3071
3072 registerMockedHttpURLLoad("viewport/viewport-warnings-2.html");
3073
3074 FrameTestHelpers::WebViewHelper webViewHelper;
3075 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-2.html", true, &webFrameClient, 0, setViewportSettings);
3076
3077 Page* page = webViewHelper.webViewImpl()->page();
3078 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3079
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());
3083
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);
3090 }
3091
TEST_F(ViewportTest,viewportWarnings3)3092 TEST_F(ViewportTest, viewportWarnings3)
3093 {
3094 ConsoleMessageWebFrameClient webFrameClient;
3095
3096 registerMockedHttpURLLoad("viewport/viewport-warnings-3.html");
3097
3098 FrameTestHelpers::WebViewHelper webViewHelper;
3099 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-3.html", true, &webFrameClient, 0, setViewportSettings);
3100
3101 Page* page = webViewHelper.webViewImpl()->page();
3102 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3103
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());
3108
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);
3115 }
3116
TEST_F(ViewportTest,viewportWarnings4)3117 TEST_F(ViewportTest, viewportWarnings4)
3118 {
3119 ConsoleMessageWebFrameClient webFrameClient;
3120
3121 registerMockedHttpURLLoad("viewport/viewport-warnings-4.html");
3122
3123 FrameTestHelpers::WebViewHelper webViewHelper;
3124 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-4.html", true, &webFrameClient, 0, setViewportSettings);
3125
3126 Page* page = webViewHelper.webViewImpl()->page();
3127 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3128
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());
3133
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);
3140 }
3141
TEST_F(ViewportTest,viewportWarnings5)3142 TEST_F(ViewportTest, viewportWarnings5)
3143 {
3144 ConsoleMessageWebFrameClient webFrameClient;
3145
3146 registerMockedHttpURLLoad("viewport/viewport-warnings-5.html");
3147
3148 FrameTestHelpers::WebViewHelper webViewHelper;
3149 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-5.html", true, &webFrameClient, 0, setViewportSettings);
3150
3151 Page* page = webViewHelper.webViewImpl()->page();
3152 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3153
3154 EXPECT_EQ(5U, webFrameClient.messages.size());
3155
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());
3159
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());
3163
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());
3167
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());
3171
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());
3175
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);
3182 }
3183
TEST_F(ViewportTest,viewportWarnings6)3184 TEST_F(ViewportTest, viewportWarnings6)
3185 {
3186 ConsoleMessageWebFrameClient webFrameClient;
3187
3188 registerMockedHttpURLLoad("viewport/viewport-warnings-6.html");
3189
3190 FrameTestHelpers::WebViewHelper webViewHelper;
3191 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-6.html", true, &webFrameClient, 0, setViewportSettings);
3192
3193 Page* page = webViewHelper.webViewImpl()->page();
3194 PageScaleConstraints constraints = runViewportTest(page, 320, 352);
3195
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());
3200
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);
3207 }
3208
TEST_F(ViewportTest,viewportWarnings7)3209 TEST_F(ViewportTest, viewportWarnings7)
3210 {
3211 ConsoleMessageWebFrameClient webFrameClient;
3212
3213 registerMockedHttpURLLoad("viewport/viewport-warnings-7.html");
3214
3215 FrameTestHelpers::WebViewHelper webViewHelper;
3216 webViewHelper.initializeAndLoad(m_baseURL + "viewport/viewport-warnings-7.html", true, &webFrameClient, 0, setViewportSettings);
3217
3218 Page* page = webViewHelper.webViewImpl()->page();
3219 runViewportTest(page, 320, 352);
3220
3221 EXPECT_EQ(0U, webFrameClient.messages.size());
3222 }
3223
3224 } // namespace
3225