Chromium Code Reviews| Index: Source/web/PluginPlaceholderImplTest.cpp |
| diff --git a/Source/web/PluginPlaceholderImplTest.cpp b/Source/web/PluginPlaceholderImplTest.cpp |
| index 88c4a6410f64897e3fb8ffcd245609db689b6a3d..fafef8658445b5e4e40883c947538c0f59b6f6d0 100644 |
| --- a/Source/web/PluginPlaceholderImplTest.cpp |
| +++ b/Source/web/PluginPlaceholderImplTest.cpp |
| @@ -5,7 +5,12 @@ |
| #include "config.h" |
| #include "web/PluginPlaceholderImpl.h" |
| +#include "core/CSSPropertyNames.h" |
| +#include "core/CSSValueKeywords.h" |
| #include "core/HTMLNames.h" |
| +#include "core/css/CSSPrimitiveValue.h" |
| +#include "core/css/CSSValue.h" |
| +#include "core/css/StylePropertySet.h" |
| #include "core/dom/DocumentFragment.h" |
| #include "core/dom/TagCollection.h" |
| #include "core/testing/DummyPageHolder.h" |
| @@ -29,9 +34,13 @@ public: |
| virtual ~MockWebPluginPlaceholder() { } |
| MOCK_CONST_METHOD0(message, WebString()); |
| + MOCK_CONST_METHOD0(isCloseable, bool()); |
| private: |
| - MockWebPluginPlaceholder() { } |
| + MockWebPluginPlaceholder() |
| + { |
| + ON_CALL(*this, message()).WillByDefault(Return(WebString())); |
| + } |
| }; |
| // Fixture which creates a dummy context for running these this test. |
| @@ -86,5 +95,34 @@ TEST_F(PluginPlaceholderImplTest, MessageDoesNotAcceptElements) |
| EXPECT_FALSE(documentFragment().getElementById("sentinel")); |
| } |
| +bool isHiddenWithInlineStyle(Element* element) |
| +{ |
| + if (!element->inlineStyle()) |
| + return false; |
| + RefPtrWillBeRawPtr<CSSValue> value = element->inlineStyle()->getPropertyCSSValue(CSSPropertyDisplay); |
| + return value && value->isPrimitiveValue() && toCSSPrimitiveValue(value.get())->getValueID() == CSSValueNone; |
| +} |
| + |
| +TEST_F(PluginPlaceholderImplTest, Closeable) |
| +{ |
| + // The closing functionality of PluginPlaceholderElement is tested in |
| + // LayoutTests/fast/plugins. This test only needs to ensure that the |
| + // boolean in WebPluginPlaceholder is respected. |
| + EXPECT_CALL(webPluginPlaceholder(), isCloseable()).WillOnce(Return(true)); |
| + pluginPlaceholder().loadIntoContainer(documentFragment()); |
| + RefPtrWillBeRawPtr<Element> closeButton = documentFragment().getElementById("plugin-placeholder-close-button"); |
| + ASSERT_NE(nullptr, closeButton); |
| + EXPECT_FALSE(isHiddenWithInlineStyle(closeButton.get())); |
| +} |
| + |
| +TEST_F(PluginPlaceholderImplTest, NotCloseable) |
| +{ |
| + EXPECT_CALL(webPluginPlaceholder(), isCloseable()).WillOnce(Return(false)); |
| + pluginPlaceholder().loadIntoContainer(documentFragment()); |
| + RefPtrWillBeRawPtr<Element> closeButton = documentFragment().getElementById("plugin-placeholder-close-button"); |
| + if (closeButton) |
|
Mike West
2014/11/02 14:01:44
Why the `if` here? When is the close button indete
jbroman
2014/11/03 16:20:36
This is premature on my part, I suppose. It cannot
|
| + EXPECT_TRUE(isHiddenWithInlineStyle(closeButton.get())); |
| +} |
| + |
| } // namespace |
| } // namespace blink |