Chromium Code Reviews| 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 |