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 |