Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/TextAutosizerTest.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/TextAutosizerTest.cpp b/third_party/WebKit/Source/core/layout/TextAutosizerTest.cpp |
| index f60be84782e83130a34f20bae85a1a030b712912..da3ee5c1e0a555ce60c379f1e0f47ea458b14bb6 100644 |
| --- a/third_party/WebKit/Source/core/layout/TextAutosizerTest.cpp |
| +++ b/third_party/WebKit/Source/core/layout/TextAutosizerTest.cpp |
| @@ -7,7 +7,6 @@ |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace blink { |
| - |
| class TextAutosizerTest : public RenderingTest { |
| private: |
| void SetUp() override { |
| @@ -661,4 +660,99 @@ TEST_F(TextAutosizerTest, ChangingInheritedClusterTextInsideSuperCluster) { |
| EXPECT_FLOAT_EQ(16.f, shortText->style()->specifiedFontSize()); |
| EXPECT_FLOAT_EQ(28.f, shortText->style()->computedFontSize()); |
| } |
| + |
| +TEST_F(TextAutosizerTest, AutosizeInnerContentOfRuby) { |
| + setBodyInnerHTML( |
| + "<meta name='viewport' content='width=800'>" |
| + "<style>" |
| + " html { font-size: 16px; }" |
| + " body { width: 800px; margin: 0; overflow-y: hidden; }" |
| + "</style>" |
| + "<div id='autosized'>" |
| + " 東京特許許可局許可局長 今日" |
| + " <ruby>" |
| + " <rb id='rubyInline'>急遽</rb>" |
| + " <rp>(</rp>" |
| + " <rt>きゅうきょ</rt>" |
| + " <rp>)</rp>" |
| + " </ruby>" |
| + " 許可却下、<br><br>" |
| + " <span>" |
| + " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec " |
| + " sed diam facilisis, elementum elit at, elementum sem. Aliquam " |
| + " consectetur leo at nisi fermentum, vitae maximus libero " |
| + "sodales. Sed " |
| + " laoreet congue ipsum, at tincidunt ante tempor sed. Cras eget " |
| + "erat " |
| + " mattis urna vestibulum porta. Sed tempus vitae dui et suscipit. " |
| + " Curabitur laoreet accumsan pharetra. Nunc facilisis, elit sit " |
| + "amet " |
| + " sollicitudin condimentum, ipsum velit ultricies mi, eget " |
| + "dapibus nunc " |
| + " nulla nec sapien. Fusce dictum imperdiet aliquet." |
| + " </span>" |
| + " <ruby style='display:block'>" |
| + " <rb id='rubyBlock'>拼音</rb>" |
| + " <rt>pin yin</rt>" |
| + " </ruby>" |
| + "</div>"); |
| + document().view()->updateAllLifecyclePhases(); |
| + |
| + Element* rubyInline = document().getElementById("rubyInline"); |
| + EXPECT_FLOAT_EQ(16.f, |
| + rubyInline->layoutObject()->style()->specifiedFontSize()); |
| + // (specified font-size = 16px) * (viewport width = 800px) / |
| + // (window width = 320px) = 40px. |
| + EXPECT_FLOAT_EQ(40.f, |
| + rubyInline->layoutObject()->style()->computedFontSize()); |
| + |
| + Element* rubyBlock = document().getElementById("rubyBlock"); |
| + EXPECT_FLOAT_EQ(16.f, |
| + rubyBlock->layoutObject()->style()->specifiedFontSize()); |
| + // (specified font-size = 16px) * (viewport width = 800px) / |
| + // (window width = 320px) = 40px. |
| + EXPECT_FLOAT_EQ(40.f, rubyBlock->layoutObject()->style()->computedFontSize()); |
| +} |
| + |
| +TEST_F(TextAutosizerTest, ResizeRubyPage) { |
|
cathiechentx
2017/02/13 14:53:56
To produce DCHECK fail in LayoutText, we should us
|
| + document().settings()->setTextAutosizingWindowSizeOverride(IntSize(360, 640)); |
| + Element* html = document().body()->parentElement(); |
| + html->setInnerHTML( |
| + "<head>" |
| + " <meta name='viewport' content='width=800'>" |
| + " <style>" |
| + " html { font-size: 16px; }" |
| + " body { width: 784px; margin: 0;}" |
| + " </style>" |
| + "</head>" |
| + "<body>" |
| + " <ruby id='ruby'>" |
| + " <rb id='rubyInline'>急遽</rb>" |
| + " <rt>きゅうきょ</rt>" |
| + " </ruby>" |
| + " <span>" |
| + " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec " |
| + " sed diam facilisis, elementum elit at, elementum sem. Aliquam " |
| + " consectetur leo at nisi fermentum, vitae maximus libero " |
| + "sodales. Sed " |
| + " laoreet congue ipsum, at tincidunt ante tempor sed. Cras eget " |
| + "erat " |
| + " mattis urna vestibulum porta. Sed tempus vitae dui et suscipit. " |
| + " Curabitur laoreet accumsan pharetra. Nunc facilisis, elit sit " |
| + "amet " |
| + " sollicitudin condimentum, ipsum velit ultricies mi, eget " |
| + "dapibus nunc " |
| + " nulla nec sapien. Fusce dictum imperdiet aliquet." |
| + " </span>" |
| + " <ruby style='display:block'>" |
| + " <rb id='rubyBlock'>拼音</rb>" |
| + " <rt>pin yin</rt>" |
| + " </ruby>" |
| + "</body>", |
| + ASSERT_NO_EXCEPTION); |
| + document().view()->updateAllLifecyclePhases(); |
| + |
| + document().settings()->setTextAutosizingWindowSizeOverride(IntSize(640, 360)); |
| + document().view()->updateAllLifecyclePhases(); |
| +} |
| } // namespace blink |