| Index: third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
|
| index d3c222399630eb1914a0b2905e793c6653c14809..fcac598f633f1aace508d038e37520358419e042 100644
|
| --- a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
|
| @@ -320,4 +320,58 @@ TEST_F(StyleEngineTest, HasViewportDependentMediaQueries) {
|
| EXPECT_FALSE(document().styleEngine().hasViewportDependentMediaQueries());
|
| }
|
|
|
| +TEST_F(StyleEngineTest, StyleMediaAttributeStyleChange) {
|
| + document().body()->setInnerHTML(
|
| + "<style id='s1' media='(max-width: 1px)'>#t1 { color: green }</style>"
|
| + "<div id='t1'>Green</div><div></div>");
|
| + document().view()->updateAllLifecyclePhases();
|
| +
|
| + Element* t1 = document().getElementById("t1");
|
| + ASSERT_TRUE(t1);
|
| + ASSERT_TRUE(t1->computedStyle());
|
| + EXPECT_EQ(makeRGB(0, 0, 0),
|
| + t1->computedStyle()->visitedDependentColor(CSSPropertyColor));
|
| +
|
| + unsigned beforeCount = styleEngine().styleForElementCount();
|
| +
|
| + Element* s1 = document().getElementById("s1");
|
| + s1->setAttribute(blink::HTMLNames::mediaAttr, "(max-width: 2000px)");
|
| + document().view()->updateAllLifecyclePhases();
|
| +
|
| + unsigned afterCount = styleEngine().styleForElementCount();
|
| + // TODO(rune@opera.com): Should be 1u for ruleset based invalidations.
|
| + EXPECT_EQ(8u, afterCount - beforeCount);
|
| +
|
| + ASSERT_TRUE(t1->computedStyle());
|
| + EXPECT_EQ(makeRGB(0, 128, 0),
|
| + t1->computedStyle()->visitedDependentColor(CSSPropertyColor));
|
| +}
|
| +
|
| +TEST_F(StyleEngineTest, StyleMediaAttributeNoStyleChange) {
|
| + document().body()->setInnerHTML(
|
| + "<style id='s1' media='(max-width: 1000px)'>#t1 { color: green }</style>"
|
| + "<div id='t1'>Green</div><div></div>");
|
| + document().view()->updateAllLifecyclePhases();
|
| +
|
| + Element* t1 = document().getElementById("t1");
|
| + ASSERT_TRUE(t1);
|
| + ASSERT_TRUE(t1->computedStyle());
|
| + EXPECT_EQ(makeRGB(0, 128, 0),
|
| + t1->computedStyle()->visitedDependentColor(CSSPropertyColor));
|
| +
|
| + unsigned beforeCount = styleEngine().styleForElementCount();
|
| +
|
| + Element* s1 = document().getElementById("s1");
|
| + s1->setAttribute(blink::HTMLNames::mediaAttr, "(max-width: 2000px)");
|
| + document().view()->updateAllLifecyclePhases();
|
| +
|
| + unsigned afterCount = styleEngine().styleForElementCount();
|
| + // TODO(rune@opera.com): Should be 0 for ruleset based invalidations.
|
| + EXPECT_EQ(8u, afterCount - beforeCount);
|
| +
|
| + ASSERT_TRUE(t1->computedStyle());
|
| + EXPECT_EQ(makeRGB(0, 128, 0),
|
| + t1->computedStyle()->visitedDependentColor(CSSPropertyColor));
|
| +}
|
| +
|
| } // namespace blink
|
|
|