Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 23441020: Make it possibe to lock the fixedLayoutSize (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add one more test Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 while (renderer) { 379 while (renderer) {
380 if (renderer->style()) { 380 if (renderer->style()) {
381 EXPECT_EQ(1, renderer->style()->textAutosizingMultiplier()); 381 EXPECT_EQ(1, renderer->style()->textAutosizingMultiplier());
382 multiplierCheckedAtLeastOnce = true; 382 multiplierCheckedAtLeastOnce = true;
383 } 383 }
384 renderer = renderer->nextInPreOrder(); 384 renderer = renderer->nextInPreOrder();
385 } 385 }
386 EXPECT_TRUE(multiplierCheckedAtLeastOnce); 386 EXPECT_TRUE(multiplierCheckedAtLeastOnce);
387 } 387 }
388 388
389 TEST_F(WebFrameTest, FixedLayoutLockStopsResizeFromChangingFixedLayoutSize)
390 {
391 registerMockedHttpURLLoad("fixed_layout.html");
392
393 int viewportWidth = 640;
394 int viewportHeight = 480;
395
396 int fixedLayoutWidth = viewportWidth / 2;
397 int fixedLayoutHeight = viewportHeight / 2;
398
399 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout .html");
400 m_webView->enableFixedLayoutMode(true);
401 m_webView->settings()->setViewportEnabled(true);
402 m_webView->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedLayoutHeight));
403 m_webView->setFixedLayoutSizeLock(true);
404 m_webView->resize(WebSize(viewportWidth, viewportHeight));
405 m_webView->layout();
406
407 EXPECT_EQ(fixedLayoutWidth, m_webView->fixedLayoutSize().width);
408 EXPECT_EQ(fixedLayoutHeight, m_webView->fixedLayoutSize().height);
409 }
410
411 TEST_F(WebFrameTest, FixedLayoutLockPreventsResizeFromChangingPageScale)
412 {
413 registerMockedHttpURLLoad("fixed_layout.html");
414
415 int viewportWidth = 640;
416 int viewportHeight = 480;
417
418 int fixedLayoutWidth = viewportWidth / 2;
419 int fixedLayoutHeight = viewportHeight / 2;
420
421 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout .html");
422 m_webView->enableFixedLayoutMode(true);
423 m_webView->settings()->setViewportEnabled(true);
424 m_webView->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedLayoutHeight));
425 m_webView->setFixedLayoutSizeLock(true);
426 m_webView->resize(WebSize(viewportWidth, viewportHeight));
427 m_webView->layout();
428 float pageScaleFactor = m_webView->pageScaleFactor();
429
430 m_webView->resize(WebSize(viewportWidth * 2, viewportHeight * 2));
431
432 EXPECT_EQ(pageScaleFactor, m_webView->pageScaleFactor());
433 }
434
435 TEST_F(WebFrameTest, FixedLayoutLockPreventsLayoutFromChangingPageScale)
436 {
437 registerMockedHttpURLLoad("fixed_layout.html");
438
439 int viewportWidth = 640;
440 int viewportHeight = 480;
441
442 int fixedLayoutWidth = viewportWidth * 2;
443 int fixedLayoutHeight = viewportHeight * 2;
444
445 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout .html");
446 m_webView->enableFixedLayoutMode(true);
447 m_webView->settings()->setViewportEnabled(true);
448 m_webView->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
449 m_webView->resize(WebSize(viewportWidth, viewportHeight));
450 m_webView->layout();
451 float pageScaleFactor = m_webView->pageScaleFactor();
452
453 m_webView->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedLayoutHeight));
454 m_webView->setFixedLayoutSizeLock(true);
455 m_webView->layout();
456
457 EXPECT_EQ(pageScaleFactor, m_webView->pageScaleFactor());
458 }
459
460 TEST_F(WebFrameTest, FixedLayoutLockPreventsContentRectScaling)
461 {
462 registerMockedHttpURLLoad("fixed_layout.html");
463
464 int viewportWidth = 640;
465 int viewportHeight = 480;
466
467 FixedLayoutTestWebViewClient client;
468 client.m_screenInfo.deviceScaleFactor = 1;
469
470 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "fixed_layout .html", true, 0, &client);
471 m_webView->enableFixedLayoutMode(true);
472 m_webView->settings()->setViewportEnabled(true);
473 m_webView->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
474 m_webView->resize(WebSize(viewportWidth, viewportHeight));
475 m_webView->layout();
476
477 m_webView->setPageScaleFactor(1, WebPoint());
478 int contentRectWidth = m_webView->mainFrame()->visibleContentRect().width;
479 int contentRectHeight = m_webView->mainFrame()->visibleContentRect().height;
480
481 m_webView->setFixedLayoutSizeLock(true);
482 m_webView->setPageScaleFactor(2, WebPoint());
483 EXPECT_EQ(contentRectWidth, m_webView->mainFrame()->visibleContentRect().wid th);
484 EXPECT_EQ(contentRectHeight, m_webView->mainFrame()->visibleContentRect().he ight);
485 }
486
487 TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightF ixedLayout)
488 {
489 registerMockedHttpURLLoad("200-by-300.html");
490
491 int windowWidth = 100;
492 int windowHeight = 100;
493 int viewportWidth = 100;
494 int viewportHeight = 0;
495 int divWidth = 200;
496 int divHeight = 300;
497
498 FixedLayoutTestWebViewClient client;
499 client.m_screenInfo.deviceScaleFactor = 1;
500
501 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "200-by-300.h tml", true, 0, &client);
502 m_webView->enableFixedLayoutMode(true);
503 m_webView->settings()->setViewportEnabled(true);
504 m_webView->resize(WebSize(windowWidth, windowHeight));
505 m_webView->setFixedLayoutSize(WebSize(viewportWidth, viewportHeight));
506 m_webView->setFixedLayoutSizeLock(true);
507 m_webView->layout();
508
509 EXPECT_EQ(divWidth, m_webView->mainFrame()->contentsSize().width);
510 EXPECT_EQ(divHeight, m_webView->mainFrame()->contentsSize().height);
511
512 EXPECT_EQ(divWidth, m_webView->contentsPreferredMinimumSize().width);
513 EXPECT_EQ(divHeight, m_webView->contentsPreferredMinimumSize().height);
514 }
515
389 TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) 516 TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag)
390 { 517 {
391 registerMockedHttpURLLoad("no_viewport_tag.html"); 518 registerMockedHttpURLLoad("no_viewport_tag.html");
392 519
393 int viewportWidth = 640; 520 int viewportWidth = 640;
394 int viewportHeight = 480; 521 int viewportHeight = 480;
395 522
396 FixedLayoutTestWebViewClient client; 523 FixedLayoutTestWebViewClient client;
397 client.m_screenInfo.deviceScaleFactor = 2; 524 client.m_screenInfo.deviceScaleFactor = 2;
398 525
(...skipping 3279 matching lines...) Expand 10 before | Expand all | Expand 10 after
3678 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "push_state.h tml", true, 0, &client); 3805 m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "push_state.h tml", true, 0, &client);
3679 runPendingTasks(); 3806 runPendingTasks();
3680 3807
3681 EXPECT_EQ(client.startLoadingCount(), 2); 3808 EXPECT_EQ(client.startLoadingCount(), 2);
3682 EXPECT_EQ(client.stopLoadingCount(), 2); 3809 EXPECT_EQ(client.stopLoadingCount(), 2);
3683 m_webView->close(); 3810 m_webView->close();
3684 m_webView = 0; 3811 m_webView = 0;
3685 } 3812 }
3686 3813
3687 } // namespace 3814 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698