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 |