OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/html/shadow/MediaControls.h" | 5 #include "core/html/shadow/MediaControls.h" |
6 | 6 |
7 #include "core/HTMLNames.h" | 7 #include "core/HTMLNames.h" |
8 #include "core/css/StylePropertySet.h" | 8 #include "core/css/StylePropertySet.h" |
9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
10 #include "core/dom/ElementTraversal.h" | 10 #include "core/dom/ElementTraversal.h" |
11 #include "core/dom/StyleEngine.h" | 11 #include "core/dom/StyleEngine.h" |
12 #include "core/frame/Settings.h" | 12 #include "core/frame/Settings.h" |
13 #include "core/html/HTMLVideoElement.h" | 13 #include "core/html/HTMLVideoElement.h" |
14 #include "core/testing/DummyPageHolder.h" | 14 #include "core/testing/DummyPageHolder.h" |
15 #include "platform/heap/Handle.h" | 15 #include "platform/heap/Handle.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
17 #include <memory> | |
18 | 17 |
19 namespace blink { | 18 namespace blink { |
20 | 19 |
21 namespace { | 20 namespace { |
22 | 21 |
23 Element* getElementByShadowPseudoId(Node& rootNode, const char* shadowPseudoId) | 22 Element* getElementByShadowPseudoId(Node& rootNode, const char* shadowPseudoId) |
24 { | 23 { |
25 for (Element& element : ElementTraversal::descendantsOf(rootNode)) { | 24 for (Element& element : ElementTraversal::descendantsOf(rootNode)) { |
26 if (element.shadowPseudoId() == shadowPseudoId) | 25 if (element.shadowPseudoId() == shadowPseudoId) |
27 return &element; | 26 return &element; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 { | 77 { |
79 // Force a relayout, so that the controls know the width. Otherwise, | 78 // Force a relayout, so that the controls know the width. Otherwise, |
80 // they don't know if, for example, the cast button will fit. | 79 // they don't know if, for example, the cast button will fit. |
81 m_mediaControls->mediaElement().clientWidth(); | 80 m_mediaControls->mediaElement().clientWidth(); |
82 } | 81 } |
83 | 82 |
84 MediaControls& mediaControls() { return *m_mediaControls; } | 83 MediaControls& mediaControls() { return *m_mediaControls; } |
85 Document& document() { return m_pageHolder->document(); } | 84 Document& document() { return m_pageHolder->document(); } |
86 | 85 |
87 private: | 86 private: |
88 std::unique_ptr<DummyPageHolder> m_pageHolder; | 87 OwnPtr<DummyPageHolder> m_pageHolder; |
89 Persistent<MediaControls> m_mediaControls; | 88 Persistent<MediaControls> m_mediaControls; |
90 }; | 89 }; |
91 | 90 |
92 TEST_F(MediaControlsTest, HideAndShow) | 91 TEST_F(MediaControlsTest, HideAndShow) |
93 { | 92 { |
94 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::controlsAttr,
true); | 93 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::controlsAttr,
true); |
95 | 94 |
96 Element* panel = getElementByShadowPseudoId(mediaControls(), "-webkit-media-
controls-panel"); | 95 Element* panel = getElementByShadowPseudoId(mediaControls(), "-webkit-media-
controls-panel"); |
97 ASSERT_NE(nullptr, panel); | 96 ASSERT_NE(nullptr, panel); |
98 | 97 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::disableremotep
laybackAttr, true); | 187 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::disableremotep
laybackAttr, true); |
189 simulateRouteAvailabe(); | 188 simulateRouteAvailabe(); |
190 ASSERT_FALSE(isElementVisible(*castOverlayButton)); | 189 ASSERT_FALSE(isElementVisible(*castOverlayButton)); |
191 | 190 |
192 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::disableremotep
laybackAttr, false); | 191 mediaControls().mediaElement().setBooleanAttribute(HTMLNames::disableremotep
laybackAttr, false); |
193 mediaControls().reset(); | 192 mediaControls().reset(); |
194 ASSERT_TRUE(isElementVisible(*castOverlayButton)); | 193 ASSERT_TRUE(isElementVisible(*castOverlayButton)); |
195 } | 194 } |
196 | 195 |
197 } // namespace blink | 196 } // namespace blink |
OLD | NEW |