| 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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 settings->setViewportMetaEnabled(true); | 696 settings->setViewportMetaEnabled(true); |
| 697 settings->setViewportEnabled(true); | 697 settings->setViewportEnabled(true); |
| 698 settings->setMainFrameResizesAreOrientationChanges(true); | 698 settings->setMainFrameResizesAreOrientationChanges(true); |
| 699 settings->setShrinksViewportContentToFit(true); | 699 settings->setShrinksViewportContentToFit(true); |
| 700 } | 700 } |
| 701 | 701 |
| 702 // Helper function to set autosizing multipliers on a document. | 702 // Helper function to set autosizing multipliers on a document. |
| 703 static bool setTextAutosizingMultiplier(Document* document, float multiplier) | 703 static bool setTextAutosizingMultiplier(Document* document, float multiplier) |
| 704 { | 704 { |
| 705 bool multiplierSet = false; | 705 bool multiplierSet = false; |
| 706 for (RenderObject* renderer = document->renderView(); renderer; renderer = r
enderer->nextInPreOrder()) { | 706 for (LayoutObject* renderer = document->renderView(); renderer; renderer = r
enderer->nextInPreOrder()) { |
| 707 if (renderer->style()) { | 707 if (renderer->style()) { |
| 708 renderer->style()->setTextAutosizingMultiplier(multiplier); | 708 renderer->style()->setTextAutosizingMultiplier(multiplier); |
| 709 | 709 |
| 710 EXPECT_EQ(multiplier, renderer->style()->textAutosizingMultiplier())
; | 710 EXPECT_EQ(multiplier, renderer->style()->textAutosizingMultiplier())
; |
| 711 multiplierSet = true; | 711 multiplierSet = true; |
| 712 } | 712 } |
| 713 } | 713 } |
| 714 return multiplierSet; | 714 return multiplierSet; |
| 715 } | 715 } |
| 716 | 716 |
| 717 // Helper function to check autosizing multipliers on a document. | 717 // Helper function to check autosizing multipliers on a document. |
| 718 static bool checkTextAutosizingMultiplier(Document* document, float multiplier) | 718 static bool checkTextAutosizingMultiplier(Document* document, float multiplier) |
| 719 { | 719 { |
| 720 bool multiplierChecked = false; | 720 bool multiplierChecked = false; |
| 721 for (RenderObject* renderer = document->renderView(); renderer; renderer = r
enderer->nextInPreOrder()) { | 721 for (LayoutObject* renderer = document->renderView(); renderer; renderer = r
enderer->nextInPreOrder()) { |
| 722 if (renderer->style() && renderer->isText()) { | 722 if (renderer->style() && renderer->isText()) { |
| 723 EXPECT_EQ(multiplier, renderer->style()->textAutosizingMultiplier())
; | 723 EXPECT_EQ(multiplier, renderer->style()->textAutosizingMultiplier())
; |
| 724 multiplierChecked = true; | 724 multiplierChecked = true; |
| 725 } | 725 } |
| 726 } | 726 } |
| 727 return multiplierChecked; | 727 return multiplierChecked; |
| 728 } | 728 } |
| 729 | 729 |
| 730 TEST_F(WebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipliers) | 730 TEST_F(WebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipliers) |
| 731 { | 731 { |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 795 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
| 796 document->settings()->setTextAutosizingEnabled(true); | 796 document->settings()->setTextAutosizingEnabled(true); |
| 797 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); | 797 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); |
| 798 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); | 798 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); |
| 799 webViewHelper.webViewImpl()->layout(); | 799 webViewHelper.webViewImpl()->layout(); |
| 800 | 800 |
| 801 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ | 801 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ |
| 802 if (!frame->isLocalFrame()) | 802 if (!frame->isLocalFrame()) |
| 803 continue; | 803 continue; |
| 804 EXPECT_TRUE(setTextAutosizingMultiplier(toLocalFrame(frame)->document(),
2)); | 804 EXPECT_TRUE(setTextAutosizingMultiplier(toLocalFrame(frame)->document(),
2)); |
| 805 for (RenderObject* renderer = toLocalFrame(frame)->document()->renderVie
w(); renderer; renderer = renderer->nextInPreOrder()) { | 805 for (LayoutObject* renderer = toLocalFrame(frame)->document()->renderVie
w(); renderer; renderer = renderer->nextInPreOrder()) { |
| 806 if (renderer->isText()) | 806 if (renderer->isText()) |
| 807 EXPECT_FALSE(renderer->needsLayout()); | 807 EXPECT_FALSE(renderer->needsLayout()); |
| 808 } | 808 } |
| 809 } | 809 } |
| 810 | 810 |
| 811 frameView->setFrameRect(IntRect(0, 0, 200, 200)); | 811 frameView->setFrameRect(IntRect(0, 0, 200, 200)); |
| 812 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ | 812 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ |
| 813 if (!frame->isLocalFrame()) | 813 if (!frame->isLocalFrame()) |
| 814 continue; | 814 continue; |
| 815 for (RenderObject* renderer = toLocalFrame(frame)->document()->renderVie
w(); renderer; renderer = renderer->nextInPreOrder()) { | 815 for (LayoutObject* renderer = toLocalFrame(frame)->document()->renderVie
w(); renderer; renderer = renderer->nextInPreOrder()) { |
| 816 if (renderer->isText()) | 816 if (renderer->isText()) |
| 817 EXPECT_TRUE(renderer->needsLayout()); | 817 EXPECT_TRUE(renderer->needsLayout()); |
| 818 } | 818 } |
| 819 } | 819 } |
| 820 } | 820 } |
| 821 | 821 |
| 822 TEST_F(WebFrameTest, ZeroHeightPositiveWidthNotIgnored) | 822 TEST_F(WebFrameTest, ZeroHeightPositiveWidthNotIgnored) |
| 823 { | 823 { |
| 824 UseMockScrollbarSettings mockScrollbarSettings; | 824 UseMockScrollbarSettings mockScrollbarSettings; |
| 825 | 825 |
| (...skipping 3390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4216 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4216 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| 4217 EXPECT_EQ("Length", selectionAsString(frame)); | 4217 EXPECT_EQ("Length", selectionAsString(frame)); |
| 4218 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4218 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4219 | 4219 |
| 4220 EXPECT_EQ(0, frame->frame()->selection().rootEditableElement()->scrollLeft()
); | 4220 EXPECT_EQ(0, frame->frame()->selection().rootEditableElement()->scrollLeft()
); |
| 4221 frame->moveRangeSelectionExtent(WebPoint(endWebRect.x + 500, endWebRect.y)); | 4221 frame->moveRangeSelectionExtent(WebPoint(endWebRect.x + 500, endWebRect.y)); |
| 4222 EXPECT_GE(frame->frame()->selection().rootEditableElement()->scrollLeft(), 1
); | 4222 EXPECT_GE(frame->frame()->selection().rootEditableElement()->scrollLeft(), 1
); |
| 4223 EXPECT_EQ("Lengthy text goes here.", selectionAsString(frame)); | 4223 EXPECT_EQ("Lengthy text goes here.", selectionAsString(frame)); |
| 4224 } | 4224 } |
| 4225 | 4225 |
| 4226 static int computeOffset(RenderObject* renderer, int x, int y) | 4226 static int computeOffset(LayoutObject* renderer, int x, int y) |
| 4227 { | 4227 { |
| 4228 return VisiblePosition(renderer->positionForPoint(LayoutPoint(x, y))).deepEq
uivalent().computeOffsetInContainerNode(); | 4228 return VisiblePosition(renderer->positionForPoint(LayoutPoint(x, y))).deepEq
uivalent().computeOffsetInContainerNode(); |
| 4229 } | 4229 } |
| 4230 | 4230 |
| 4231 // positionForPoint returns the wrong values for contenteditable spans. See | 4231 // positionForPoint returns the wrong values for contenteditable spans. See |
| 4232 // http://crbug.com/238334. | 4232 // http://crbug.com/238334. |
| 4233 TEST_F(WebFrameTest, DISABLED_PositionForPointTest) | 4233 TEST_F(WebFrameTest, DISABLED_PositionForPointTest) |
| 4234 { | 4234 { |
| 4235 registerMockedHttpURLLoad("select_range_span_editable.html"); | 4235 registerMockedHttpURLLoad("select_range_span_editable.html"); |
| 4236 FrameTestHelpers::WebViewHelper webViewHelper; | 4236 FrameTestHelpers::WebViewHelper webViewHelper; |
| 4237 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html"
, &webViewHelper); | 4237 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html"
, &webViewHelper); |
| 4238 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 4238 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 4239 RenderObject* renderer = mainFrame->frame()->selection().rootEditableElement
()->renderer(); | 4239 LayoutObject* renderer = mainFrame->frame()->selection().rootEditableElement
()->renderer(); |
| 4240 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); | 4240 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); |
| 4241 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); | 4241 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); |
| 4242 | 4242 |
| 4243 registerMockedHttpURLLoad("select_range_div_editable.html"); | 4243 registerMockedHttpURLLoad("select_range_div_editable.html"); |
| 4244 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html",
&webViewHelper); | 4244 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html",
&webViewHelper); |
| 4245 mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4245 mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| 4246 renderer = mainFrame->frame()->selection().rootEditableElement()->renderer()
; | 4246 renderer = mainFrame->frame()->selection().rootEditableElement()->renderer()
; |
| 4247 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); | 4247 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); |
| 4248 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); | 4248 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); |
| 4249 } | 4249 } |
| (...skipping 2769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7019 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7019 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
| 7020 | 7020 |
| 7021 // Neither should a page reload. | 7021 // Neither should a page reload. |
| 7022 localFrame->reload(); | 7022 localFrame->reload(); |
| 7023 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); | 7023 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); |
| 7024 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); | 7024 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); |
| 7025 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7025 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
| 7026 } | 7026 } |
| 7027 | 7027 |
| 7028 } // namespace | 7028 } // namespace |
| OLD | NEW |