TestMediaKeysEvent.cpp (1759B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #include "MediaControlKeySource.h" 6 #include "MediaController.h" 7 #include "gtest/gtest.h" 8 9 using namespace mozilla::dom; 10 11 class MediaControlKeySourceTestImpl : public MediaControlKeySource { 12 public: 13 NS_INLINE_DECL_REFCOUNTING(MediaControlKeySourceTestImpl, override) 14 bool Open() override { return true; } 15 bool IsOpened() const override { return true; } 16 void SetSupportedMediaKeys(const MediaKeysArray& aSupportedKeys) override {} 17 18 private: 19 ~MediaControlKeySourceTestImpl() = default; 20 }; 21 22 TEST(MediaControlKey, TestAddOrRemoveListener) 23 { 24 RefPtr<MediaControlKeySource> source = new MediaControlKeySourceTestImpl(); 25 ASSERT_TRUE(source->GetListenersNum() == 0); 26 27 RefPtr<MediaControlKeyListener> listener = new MediaControlKeyHandler(); 28 29 source->AddListener(listener); 30 ASSERT_TRUE(source->GetListenersNum() == 1); 31 32 source->RemoveListener(listener); 33 ASSERT_TRUE(source->GetListenersNum() == 0); 34 } 35 36 TEST(MediaControlKey, SetSourcePlaybackState) 37 { 38 RefPtr<MediaControlKeySource> source = new MediaControlKeySourceTestImpl(); 39 ASSERT_TRUE(source->GetPlaybackState() == MediaSessionPlaybackState::None); 40 41 source->SetPlaybackState(MediaSessionPlaybackState::Playing); 42 ASSERT_TRUE(source->GetPlaybackState() == MediaSessionPlaybackState::Playing); 43 44 source->SetPlaybackState(MediaSessionPlaybackState::Paused); 45 ASSERT_TRUE(source->GetPlaybackState() == MediaSessionPlaybackState::Paused); 46 47 source->SetPlaybackState(MediaSessionPlaybackState::None); 48 ASSERT_TRUE(source->GetPlaybackState() == MediaSessionPlaybackState::None); 49 }