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->setInitialPageScaleOverride(enforcedPageScaleFactor); | |
578 m_webView->layout(); | |
527 | 579 |
528 EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); | 580 EXPECT_EQ(enforcedPageScaleFactor, m_webView->pageScaleFactor()); |
529 | 581 |
530 int viewportWidth = 640; | 582 int viewportWidth = 640; |
531 int viewportHeight = 480; | 583 int viewportHeight = 480; |
532 m_webView->enableFixedLayoutMode(true); | 584 m_webView->enableFixedLayoutMode(true); |
533 m_webView->settings()->setViewportEnabled(true); | 585 m_webView->settings()->setViewportEnabled(true); |
534 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 586 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
535 m_webView->layout(); | 587 m_webView->layout(); |
536 | 588 |
537 EXPECT_EQ(enforcedPageScalePactor, m_webView->pageScaleFactor()); | 589 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 | 590 |
545 m_webView->setInitialPageScaleOverride(-1); | 591 m_webView->setInitialPageScaleOverride(-1); |
546 m_webView->layout(); | 592 m_webView->layout(); |
547 EXPECT_EQ(1.0f, m_webView->pageScaleFactor()); | 593 |
594 int defaultFixedLayoutWidth = 980; | |
595 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid th; | |
596 EXPECT_EQ(minimumPageScaleFactor, m_webView->pageScaleFactor()); | |
mnaganov (inactive)
2013/05/14 09:31:23
I'm a bit worried about this condition. There is a
aelias_OOO_until_Jul13
2013/05/14 21:39:52
OK, changed this to 1.0 + setInitializeAtMinimumPa
| |
548 } | 597 } |
549 | 598 |
550 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimum Scale) | 599 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimum Scale) |
551 { | 600 { |
552 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 601 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
553 | 602 |
554 FixedLayoutTestWebViewClient client; | 603 FixedLayoutTestWebViewClient client; |
555 client.m_screenInfo.deviceScaleFactor = 1; | 604 client.m_screenInfo.deviceScaleFactor = 1; |
556 int viewportWidth = 640; | 605 int viewportWidth = 640; |
557 int viewportHeight = 480; | 606 int viewportHeight = 480; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
743 | 792 |
744 m_webView->setPageScaleFactor(2, WebPoint()); | 793 m_webView->setPageScaleFactor(2, WebPoint()); |
745 | 794 |
746 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); | 795 WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView); |
747 EXPECT_EQ(980, webViewImpl->page()->mainFrame()->contentRenderer()->unscaled DocumentRect().width()); | 796 EXPECT_EQ(980, webViewImpl->page()->mainFrame()->contentRenderer()->unscaled DocumentRect().width()); |
748 EXPECT_EQ(980, webViewImpl->mainFrameImpl()->frameView()->contentsSize().wid th()); | 797 EXPECT_EQ(980, webViewImpl->mainFrameImpl()->frameView()->contentsSize().wid th()); |
749 } | 798 } |
750 | 799 |
751 TEST_F(WebFrameTest, targetDensityDpiHigh) | 800 TEST_F(WebFrameTest, targetDensityDpiHigh) |
752 { | 801 { |
802 WebCore::Settings::setMockScrollbarsEnabled(true); | |
803 WebCore::Settings::setUsesOverlayScrollbars(true); | |
753 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 804 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
754 | 805 |
755 FixedLayoutTestWebViewClient client; | 806 FixedLayoutTestWebViewClient client; |
756 client.m_screenInfo.deviceScaleFactor = 4.0f / 3.0f; | 807 client.m_screenInfo.deviceScaleFactor = 4.0f / 3.0f; |
757 int viewportWidth = 640; | 808 int viewportWidth = 640; |
758 int viewportHeight = 480; | 809 int viewportHeight = 480; |
759 | 810 |
760 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-tar get-densitydpi-high.html", true, 0, &client); | 811 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-tar get-densitydpi-high.html", true, 0, &client); |
761 m_webView->enableFixedLayoutMode(true); | 812 m_webView->enableFixedLayoutMode(true); |
762 m_webView->settings()->setViewportEnabled(true); | 813 m_webView->settings()->setViewportEnabled(true); |
763 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); | 814 m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true); |
764 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 815 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
765 | 816 |
766 // high-dpi = 240, device-dpi = 160 | 817 // high-dpi = 240, device-dpi = 160 |
767 EXPECT_NEAR(viewportWidth * (240.0f / 160.0f), m_webView->fixedLayoutSize(). width, 1.0f); | 818 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); | 819 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); | 820 EXPECT_NEAR(160.0f / 240.0f, m_webView->pageScaleFactor(), 0.01f); |
770 } | 821 } |
771 | 822 |
772 TEST_F(WebFrameTest, targetDensityDpiDevice) | 823 TEST_F(WebFrameTest, targetDensityDpiDevice) |
773 { | 824 { |
825 WebCore::Settings::setMockScrollbarsEnabled(true); | |
826 WebCore::Settings::setUsesOverlayScrollbars(true); | |
774 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); | 827 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
775 | 828 |
776 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 829 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
777 | 830 |
778 FixedLayoutTestWebViewClient client; | 831 FixedLayoutTestWebViewClient client; |
779 int viewportWidth = 640; | 832 int viewportWidth = 640; |
780 int viewportHeight = 480; | 833 int viewportHeight = 480; |
781 | 834 |
782 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 835 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
783 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; | 836 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(); | 1021 WebCore::FrameView* view = static_cast<WebViewImpl*>(m_webView)->mainFrameIm pl()->frameView(); |
969 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize ().width() - view->visibleContentRect().width()); | 1022 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()); | 1023 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize() .height() - view->visibleContentRect().height()); |
971 | 1024 |
972 m_webView->setPageScaleFactor(10, WebPoint()); | 1025 m_webView->setPageScaleFactor(10, WebPoint()); |
973 | 1026 |
974 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize ().width() - view->visibleContentRect().width()); | 1027 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()); | 1028 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize() .height() - view->visibleContentRect().height()); |
976 } | 1029 } |
977 | 1030 |
978 TEST_F(WebFrameTest, CanOverrideMaximumScaleFactor) | 1031 TEST_F(WebFrameTest, CanOverrideScaleLimits) |
979 { | 1032 { |
1033 WebCore::Settings::setMockScrollbarsEnabled(true); | |
1034 WebCore::Settings::setUsesOverlayScrollbars(true); | |
1035 | |
980 registerMockedHttpURLLoad("no_scale_for_you.html"); | 1036 registerMockedHttpURLLoad("no_scale_for_you.html"); |
981 | 1037 |
982 FixedLayoutTestWebViewClient client; | 1038 FixedLayoutTestWebViewClient client; |
983 client.m_screenInfo.deviceScaleFactor = 1; | 1039 client.m_screenInfo.deviceScaleFactor = 1; |
984 int viewportWidth = 640; | 1040 int viewportWidth = 640; |
985 int viewportHeight = 480; | 1041 int viewportHeight = 480; |
986 | 1042 |
987 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_scale_for _you.html", true, 0, &client); | 1043 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_scale_for _you.html", true, 0, &client); |
988 m_webView->enableFixedLayoutMode(true); | 1044 m_webView->enableFixedLayoutMode(true); |
989 m_webView->settings()->setViewportEnabled(true); | 1045 m_webView->settings()->setViewportEnabled(true); |
990 m_webView->resize(WebSize(viewportWidth, viewportHeight)); | 1046 m_webView->resize(WebSize(viewportWidth, viewportHeight)); |
991 | 1047 |
992 EXPECT_EQ(1.0f, m_webView->maximumPageScaleFactor()); | 1048 EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); |
1049 EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); | |
993 | 1050 |
994 m_webView->setIgnoreViewportTagMaximumScale(true); | 1051 m_webView->setIgnoreViewportTagScaleLimits(true); |
995 m_webView->layout(); | 1052 m_webView->layout(); |
996 | 1053 |
997 EXPECT_EQ(4.0f, m_webView->maximumPageScaleFactor()); | 1054 EXPECT_EQ(1.0f, m_webView->minimumPageScaleFactor()); |
1055 EXPECT_EQ(5.0f, m_webView->maximumPageScaleFactor()); | |
1056 | |
1057 m_webView->setIgnoreViewportTagScaleLimits(false); | |
1058 m_webView->layout(); | |
1059 | |
1060 EXPECT_EQ(2.0f, m_webView->minimumPageScaleFactor()); | |
1061 EXPECT_EQ(2.0f, m_webView->maximumPageScaleFactor()); | |
998 } | 1062 } |
999 | 1063 |
1000 TEST_F(WebFrameTest, updateOverlayScrollbarLayers) | 1064 TEST_F(WebFrameTest, updateOverlayScrollbarLayers) |
1001 { | 1065 { |
1002 WebCore::Settings::setMockScrollbarsEnabled(true); | 1066 WebCore::Settings::setMockScrollbarsEnabled(true); |
1003 WebCore::Settings::setUsesOverlayScrollbars(true); | 1067 WebCore::Settings::setUsesOverlayScrollbars(true); |
1004 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars()); | 1068 EXPECT_TRUE(WebCore::ScrollbarTheme::theme()->usesOverlayScrollbars()); |
1005 | 1069 |
1006 registerMockedHttpURLLoad("large-div.html"); | 1070 registerMockedHttpURLLoad("large-div.html"); |
1007 | 1071 |
(...skipping 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2992 EXPECT_FALSE(client.wasProgrammaticScroll()); | 3056 EXPECT_FALSE(client.wasProgrammaticScroll()); |
2993 EXPECT_TRUE(client.wasUserScroll()); | 3057 EXPECT_TRUE(client.wasUserScroll()); |
2994 client.reset(); | 3058 client.reset(); |
2995 | 3059 |
2996 m_webView->close(); | 3060 m_webView->close(); |
2997 m_webView = 0; | 3061 m_webView = 0; |
2998 } | 3062 } |
2999 | 3063 |
3000 | 3064 |
3001 } // namespace | 3065 } // namespace |
OLD | NEW |