OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 m_webView->setPageScaleFactorPreservingScrollOffset(0.5); | 350 m_webView->setPageScaleFactorPreservingScrollOffset(0.5); |
351 m_webView->layout(); | 351 m_webView->layout(); |
352 EXPECT_EQ(1, m_webView->pageScaleFactor()); | 352 EXPECT_EQ(1, m_webView->pageScaleFactor()); |
353 | 353 |
354 // Force the layout to happen before leaving the test. | 354 // Force the layout to happen before leaving the test. |
355 m_webView->mainFrame()->contentAsText(1024).utf8(); | 355 m_webView->mainFrame()->contentAsText(1024).utf8(); |
356 } | 356 } |
357 | 357 |
358 TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumPageScale) | 358 TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumPageScale) |
359 { | 359 { |
| 360 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 361 WebCore::Settings::setUsesOverlayScrollbars(true); |
| 362 |
360 registerMockedHttpURLLoad("fixed_layout.html"); | 363 registerMockedHttpURLLoad("fixed_layout.html"); |
361 | 364 |
362 FixedLayoutTestWebViewClient client; | 365 FixedLayoutTestWebViewClient client; |
363 client.m_screenInfo.deviceScaleFactor = 1; | 366 client.m_screenInfo.deviceScaleFactor = 1; |
364 int viewportWidth = 640; | 367 int viewportWidth = 640; |
365 int viewportHeight = 480; | 368 int viewportHeight = 480; |
366 | 369 |
367 // Make sure we initialize to minimum scale, even if the window size | 370 // Make sure we initialize to minimum scale, even if the window size |
368 // only becomes available after the load begins. | 371 // only becomes available after the load begins. |
369 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout
.html", true, 0, &client); | 372 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout
.html", true, 0, &client); |
370 m_webView->enableFixedLayoutMode(true); | 373 m_webView->enableFixedLayoutMode(true); |
371 m_webView->settings()->setViewportEnabled(true); | 374 m_webView->settings()->setViewportEnabled(true); |
372 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 375 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
373 | 376 |
374 int defaultFixedLayoutWidth = 980; | 377 int defaultFixedLayoutWidth = 980; |
375 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; | 378 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; |
376 EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); | 379 EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); |
| 380 EXPECT_EQ(minimumPageScaleFactor, m_webView->minimumPageScaleFactor()); |
377 | 381 |
378 // Assume the user has pinch zoomed to page scale factor 2. | 382 // Assume the user has pinch zoomed to page scale factor 2. |
379 float userPinchPageScaleFactor = 2; | 383 float userPinchPageScaleFactor = 2; |
| 384 m_webView->setPageScaleFactorPreservingScrollOffset(userPinchPageScaleFactor
); |
| 385 m_webView->layout(); |
| 386 |
| 387 // Make sure we don't reset to initial scale if the page continues to load. |
| 388 bool isNewNavigation; |
| 389 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); |
| 390 webViewImpl ->didCommitLoad(&isNewNavigation, false); |
| 391 webViewImpl ->didChangeContentsSize(); |
| 392 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
| 393 |
| 394 // Make sure we don't reset to initial scale if the viewport size changes. |
| 395 m_webView->resize(WebSize(viewportWidth, viewportHeight + 100)); |
| 396 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
| 397 } |
| 398 |
| 399 TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumPageScale) |
| 400 { |
| 401 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 402 WebCore::Settings::setUsesOverlayScrollbars(true); |
| 403 |
| 404 registerMockedHttpURLLoad("wide_document.html"); |
| 405 |
| 406 FixedLayoutTestWebViewClient client; |
| 407 client.m_screenInfo.deviceScaleFactor = 1; |
| 408 int viewportWidth = 640; |
| 409 int viewportHeight = 480; |
| 410 |
| 411 // Make sure we initialize to minimum scale, even if the window size |
| 412 // only becomes available after the load begins. |
| 413 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "wide_documen
t.html", true, 0, &client); |
| 414 m_webView->enableFixedLayoutMode(true); |
| 415 m_webView->settings()->setViewportEnabled(true); |
| 416 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
| 417 |
| 418 int wideDocumentWidth = 1500; |
| 419 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| 420 EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); |
| 421 EXPECT_EQ(minimumPageScaleFactor, m_webView->minimumPageScaleFactor()); |
| 422 |
| 423 // Assume the user has pinch zoomed to page scale factor 2. |
| 424 float userPinchPageScaleFactor = 2; |
380 m_webView->setPageScaleFactorPreservingScrollOffset(userPinchPageScaleFactor
); | 425 m_webView->setPageScaleFactorPreservingScrollOffset(userPinchPageScaleFactor
); |
381 m_webView->layout(); | 426 m_webView->layout(); |
382 | 427 |
383 // Make sure we don't reset to initial scale if the page continues to load. | 428 // Make sure we don't reset to initial scale if the page continues to load. |
384 bool isNewNavigation; | 429 bool isNewNavigation; |
385 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); | 430 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); |
386 webViewImpl ->didCommitLoad(&isNewNavigation, false); | 431 webViewImpl ->didCommitLoad(&isNewNavigation, false); |
387 webViewImpl ->didChangeContentsSize(); | 432 webViewImpl ->didChangeContentsSize(); |
388 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); | 433 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
389 | 434 |
390 // Make sure we don't reset to initial scale if the viewport size changes. | 435 // Make sure we don't reset to initial scale if the viewport size changes. |
391 m_webView->resize(WebSize(viewportWidth, viewportHeight + 100)); | 436 m_webView->resize(WebSize(viewportWidth, viewportHeight + 100)); |
392 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); | 437 EXPECT_EQ(userPinchPageScaleFactor, m_webView->pageScaleFactor()); |
393 } | 438 } |
394 | 439 |
395 TEST_F(WebFrameTest, setInitializeAtMinimumPageScaleToFalse) | 440 TEST_F(WebFrameTest, setInitializeAtMinimumPageScaleToFalse) |
396 { | 441 { |
397 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 442 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
398 | 443 |
399 FixedLayoutTestWebViewClient client; | 444 FixedLayoutTestWebViewClient client; |
400 client.m_screenInfo.deviceScaleFactor = 1; | 445 client.m_screenInfo.deviceScaleFactor = 1; |
401 int viewportWidth = 640; | 446 int viewportWidth = 640; |
402 int viewportHeight = 480; | 447 int viewportHeight = 480; |
403 | 448 |
404 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-aut
o-initial-scale.html", true, 0, &client); | 449 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-aut
o-initial-scale.html", true, 0, &client); |
405 m_webView->enableFixedLayoutMode(true); | 450 m_webView->enableFixedLayoutMode(true); |
406 m_webView->settings()->setViewportEnabled(true); | 451 m_webView->settings()->setViewportEnabled(true); |
407 m_webView->settings()->setInitializeAtMinimumPageScale(false); | 452 m_webView->settings()->setInitializeAtMinimumPageScale(false); |
| 453 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
408 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 454 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
409 | 455 |
410 // The page must be displayed at 100% zoom. | 456 // The page must be displayed at 100% zoom. |
411 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); | 457 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); |
412 } | 458 } |
413 | 459 |
414 TEST_F(WebFrameTest, SetInitializeAtMinimumPageScaleToFalseAndNoWideViewport) | 460 TEST_F(WebFrameTest, SetInitializeAtMinimumPageScaleToFalseAndNoWideViewport) |
415 { | 461 { |
416 registerMockedHttpURLLoad("large-div.html"); | 462 registerMockedHttpURLLoad("large-div.html"); |
417 | 463 |
418 FixedLayoutTestWebViewClient client; | 464 FixedLayoutTestWebViewClient client; |
419 client.m_screenInfo.deviceScaleFactor = 1; | 465 client.m_screenInfo.deviceScaleFactor = 1; |
420 int viewportWidth = 640; | 466 int viewportWidth = 640; |
421 int viewportHeight = 480; | 467 int viewportHeight = 480; |
422 | 468 |
423 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "large-div.ht
ml", true, 0, &client); | 469 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "large-div.ht
ml", true, 0, &client); |
424 m_webView->enableFixedLayoutMode(true); | 470 m_webView->enableFixedLayoutMode(true); |
425 m_webView->settings()->setViewportEnabled(true); | 471 m_webView->settings()->setViewportEnabled(true); |
426 m_webView->settings()->setInitializeAtMinimumPageScale(false); | 472 m_webView->settings()->setInitializeAtMinimumPageScale(false); |
427 m_webView->settings()->setUseWideViewport(false); | 473 m_webView->settings()->setUseWideViewport(false); |
| 474 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
428 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 475 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
429 | 476 |
430 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. | 477 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. |
431 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); | 478 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); |
432 } | 479 } |
433 | 480 |
434 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth) | 481 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth) |
435 { | 482 { |
436 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 483 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
437 | 484 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 m_webView->settings()->setViewportEnabled(true); | 556 m_webView->settings()->setViewportEnabled(true); |
510 m_webView->settings()->setInitializeAtMinimumPageScale(false); | 557 m_webView->settings()->setInitializeAtMinimumPageScale(false); |
511 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 558 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
512 | 559 |
513 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. | 560 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. |
514 EXPECT_EQ(2.0f, m_webView->pageScaleFactor()); | 561 EXPECT_EQ(2.0f, m_webView->pageScaleFactor()); |
515 } | 562 } |
516 | 563 |
517 TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) | 564 TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) |
518 { | 565 { |
| 566 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 567 WebCore::Settings::setUsesOverlayScrollbars(true); |
| 568 |
519 registerMockedHttpURLLoad("fixed_layout.html"); | 569 registerMockedHttpURLLoad("fixed_layout.html"); |
520 | 570 |
521 FixedLayoutTestWebViewClient client; | 571 FixedLayoutTestWebViewClient client; |
522 client.m_screenInfo.deviceScaleFactor = 1; | 572 client.m_screenInfo.deviceScaleFactor = 1; |
523 float enforcedPageScalePactor = 2.0f; | 573 float enforcedPageScaleFactor = 2.0f; |
524 | 574 |
525 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout
.html", true, 0, &client); | 575 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout
.html", true, 0, &client); |
526 m_webView->setInitialPageScaleOverride(enforcedPageScalePactor); | 576 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
| 577 m_webView->settings()->setInitializeAtMinimumPageScale(false); |
| 578 m_webView->setInitialPageScaleOverride(enforcedPageScaleFactor); |
| 579 m_webView->enableFixedLayoutMode(true); |
| 580 m_webView->settings()->setViewportEnabled(true); |
| 581 m_webView->layout(); |
527 | 582 |
528 EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); | 583 EXPECT_EQ(enforcedPageScaleFactor, m_webView->pageScaleFactor()); |
529 | 584 |
530 int viewportWidth = 640; | 585 int viewportWidth = 640; |
531 int viewportHeight = 480; | 586 int viewportHeight = 480; |
532 m_webView->enableFixedLayoutMode(true); | |
533 m_webView->settings()->setViewportEnabled(true); | |
534 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 587 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
535 m_webView->layout(); | 588 m_webView->layout(); |
536 | 589 |
537 EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); | 590 EXPECT_EQ(enforcedPageScaleFactor, m_webView->pageScaleFactor()); |
538 | |
539 m_webView->enableFixedLayoutMode(false); | |
540 m_webView->settings()->setViewportEnabled(false); | |
541 m_webView->layout(); | |
542 | |
543 EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); | |
544 | 591 |
545 m_webView->setInitialPageScaleOverride(-1); | 592 m_webView->setInitialPageScaleOverride(-1); |
546 m_webView->layout(); | 593 m_webView->layout(); |
547 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); | 594 EXPECT_EQ(1.0, m_webView->pageScaleFactor()); |
548 } | 595 } |
549 | 596 |
550 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimum
Scale) | 597 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimum
Scale) |
551 { | 598 { |
552 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 599 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
553 | 600 |
554 FixedLayoutTestWebViewClient client; | 601 FixedLayoutTestWebViewClient client; |
555 client.m_screenInfo.deviceScaleFactor = 1; | 602 client.m_screenInfo.deviceScaleFactor = 1; |
556 int viewportWidth = 640; | 603 int viewportWidth = 640; |
557 int viewportHeight = 480; | 604 int viewportHeight = 480; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 | 790 |
744 m_webView->setPageScaleFactor(2, WebPoint()); | 791 m_webView->setPageScaleFactor(2, WebPoint()); |
745 | 792 |
746 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); | 793 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); |
747 EXPECT_EQ(980, webViewImpl->page()->mainFrame()->contentRenderer()->unscaled
DocumentRect().width()); | 794 EXPECT_EQ(980, webViewImpl->page()->mainFrame()->contentRenderer()->unscaled
DocumentRect().width()); |
748 EXPECT_EQ(980, webViewImpl->mainFrameImpl()->frameView()->contentsSize().wid
th()); | 795 EXPECT_EQ(980, webViewImpl->mainFrameImpl()->frameView()->contentsSize().wid
th()); |
749 } | 796 } |
750 | 797 |
751 TEST_F(WebFrameTest, targetDensityDpiHigh) | 798 TEST_F(WebFrameTest, targetDensityDpiHigh) |
752 { | 799 { |
| 800 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 801 WebCore::Settings::setUsesOverlayScrollbars(true); |
753 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 802 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
754 | 803 |
755 FixedLayoutTestWebViewClient client; | 804 FixedLayoutTestWebViewClient client; |
756 client.m_screenInfo.deviceScaleFactor = 4.0f / 3.0f; | 805 client.m_screenInfo.deviceScaleFactor = 4.0f / 3.0f; |
757 int viewportWidth = 640; | 806 int viewportWidth = 640; |
758 int viewportHeight = 480; | 807 int viewportHeight = 480; |
759 | 808 |
760 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-tar
get-densitydpi-high.html", true, 0, &client); | 809 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-tar
get-densitydpi-high.html", true, 0, &client); |
761 m_webView->enableFixedLayoutMode(true); | 810 m_webView->enableFixedLayoutMode(true); |
762 m_webView->settings()->setViewportEnabled(true); | 811 m_webView->settings()->setViewportEnabled(true); |
763 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); | 812 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
764 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 813 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
765 | 814 |
766 // high-dpi = 240, device-dpi = 160 | 815 // high-dpi = 240, device-dpi = 160 |
767 EXPECT_NEAR(viewportWidth * (240.0f / 160.0f), m_webView->fixedLayoutSize().
width, 1.0f); | 816 EXPECT_NEAR(viewportWidth * (240.0f / 160.0f), m_webView->fixedLayoutSize().
width, 1.0f); |
768 EXPECT_NEAR(viewportHeight * (240.0f / 160.0f), m_webView->fixedLayoutSize()
.height, 1.0f); | 817 EXPECT_NEAR(viewportHeight * (240.0f / 160.0f), m_webView->fixedLayoutSize()
.height, 1.0f); |
769 EXPECT_NEAR(160.0f / 240.0f, m_webView->pageScaleFactor(), 0.01f); | 818 EXPECT_NEAR(160.0f / 240.0f, m_webView->pageScaleFactor(), 0.01f); |
770 } | 819 } |
771 | 820 |
772 TEST_F(WebFrameTest, targetDensityDpiDevice) | 821 TEST_F(WebFrameTest, targetDensityDpiDevice) |
773 { | 822 { |
| 823 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 824 WebCore::Settings::setUsesOverlayScrollbars(true); |
774 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); | 825 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
775 | 826 |
776 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 827 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
777 | 828 |
778 FixedLayoutTestWebViewClient client; | 829 FixedLayoutTestWebViewClient client; |
779 int viewportWidth = 640; | 830 int viewportWidth = 640; |
780 int viewportHeight = 480; | 831 int viewportHeight = 480; |
781 | 832 |
782 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 833 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
783 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; | 834 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 WebCore::FrameView* view = static_cast<WebViewImpl*>(m_webView)->mainFrameIm
pl()->frameView(); | 1019 WebCore::FrameView* view = static_cast<WebViewImpl*>(m_webView)->mainFrameIm
pl()->frameView(); |
969 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 1020 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
970 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 1021 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
971 | 1022 |
972 m_webView->setPageScaleFactor(10, WebPoint()); | 1023 m_webView->setPageScaleFactor(10, WebPoint()); |
973 | 1024 |
974 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 1025 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
975 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 1026 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
976 } | 1027 } |
977 | 1028 |
978 TEST_F(WebFrameTest, CanOverrideMaximumScaleFactor) | 1029 TEST_F(WebFrameTest, CanOverrideScaleLimits) |
979 { | 1030 { |
| 1031 WebCore::Settings::setMockScrollbarsEnabled(true); |
| 1032 WebCore::Settings::setUsesOverlayScrollbars(true); |
| 1033 |
980 registerMockedHttpURLLoad("no_scale_for_you.html"); | 1034 registerMockedHttpURLLoad("no_scale_for_you.html"); |
981 | 1035 |
982 FixedLayoutTestWebViewClient client; | 1036 FixedLayoutTestWebViewClient client; |
983 client.m_screenInfo.deviceScaleFactor = 1; | 1037 client.m_screenInfo.deviceScaleFactor = 1; |
984 int viewportWidth = 640; | 1038 int viewportWidth = 640; |
985 int viewportHeight = 480; | 1039 int viewportHeight = 480; |
986 | 1040 |
987 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_scale_for
_you.html", true, 0, &client); | 1041 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_scale_for
_you.html", true, 0, &client); |
988 m_webView->enableFixedLayoutMode(true); | 1042 m_webView->enableFixedLayoutMode(true); |
989 m_webView->settings()->setViewportEnabled(true); | 1043 m_webView->settings()->setViewportEnabled(true); |
990 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 1044 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
991 | 1045 |
992 EXPECT_EQ(1.0f, m_webView->maximumPageScaleFactor()); | 1046 EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); |
| 1047 EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); |
993 | 1048 |
994 m_webView->setIgnoreViewportTagMaximumScale(true); | 1049 m_webView->setIgnoreViewportTagScaleLimits(true); |
995 m_webView->layout(); | 1050 m_webView->layout(); |
996 | 1051 |
997 EXPECT_EQ(4.0f, m_webView->maximumPageScaleFactor()); | 1052 EXPECT_EQ(1.0f, m_webView->minimumPageScaleFactor()); |
| 1053 EXPECT_EQ(5.0f, m_webView->maximumPageScaleFactor()); |
| 1054 |
| 1055 m_webView->setIgnoreViewportTagScaleLimits(false); |
| 1056 m_webView->layout(); |
| 1057 |
| 1058 EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); |
| 1059 EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); |
998 } | 1060 } |
999 | 1061 |
1000 TEST_F(WebFrameTest, updateOverlayScrollbarLayers) | 1062 TEST_F(WebFrameTest, updateOverlayScrollbarLayers) |
1001 { | 1063 { |
1002 WebCore::Settings::setMockScrollbarsEnabled(true); | 1064 WebCore::Settings::setMockScrollbarsEnabled(true); |
1003 WebCore::Settings::setUsesOverlayScrollbars(true); | 1065 WebCore::Settings::setUsesOverlayScrollbars(true); |
1004 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars()); | 1066 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars()); |
1005 | 1067 |
1006 registerMockedHttpURLLoad("large-div.html"); | 1068 registerMockedHttpURLLoad("large-div.html"); |
1007 | 1069 |
(...skipping 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2992 EXPECT_FALSE(client.wasProgrammaticScroll()); | 3054 EXPECT_FALSE(client.wasProgrammaticScroll()); |
2993 EXPECT_TRUE(client.wasUserScroll()); | 3055 EXPECT_TRUE(client.wasUserScroll()); |
2994 client.reset(); | 3056 client.reset(); |
2995 | 3057 |
2996 m_webView->close(); | 3058 m_webView->close(); |
2997 m_webView = 0; | 3059 m_webView = 0; |
2998 } | 3060 } |
2999 | 3061 |
3000 | 3062 |
3001 } // namespace | 3063 } // namespace |
OLD | NEW |