1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef ASH_TEST_MEDIA_CLIENT_H_
6 #define ASH_TEST_MEDIA_CLIENT_H_
7 
8 #include "ash/public/cpp/media_client.h"
9 #include "base/macros.h"
10 
11 namespace ash {
12 
13 // Implement MediaClient mojo interface to simulate chrome behavior in tests.
14 // This breaks the ash/chrome dependency to allow testing ash code in isolation.
15 class TestMediaClient : public MediaClient {
16  public:
17   TestMediaClient();
18   ~TestMediaClient() override;
19 
20   // MediaClient:
21   void HandleMediaNextTrack() override;
22   void HandleMediaPlayPause() override;
23   void HandleMediaPlay() override;
24   void HandleMediaPause() override;
25   void HandleMediaStop() override;
26   void HandleMediaPrevTrack() override;
27   void HandleMediaSeekBackward() override;
28   void HandleMediaSeekForward() override;
29   void RequestCaptureState() override;
30   void SuspendMediaSessions() override;
31 
handle_media_next_track_count()32   int handle_media_next_track_count() const {
33     return handle_media_next_track_count_;
34   }
handle_media_play_pause_count()35   int handle_media_play_pause_count() const {
36     return handle_media_play_pause_count_;
37   }
handle_media_play_count()38   int handle_media_play_count() const { return handle_media_play_count_; }
handle_media_pause_count()39   int handle_media_pause_count() const { return handle_media_pause_count_; }
handle_media_stop_count()40   int handle_media_stop_count() const { return handle_media_pause_count_; }
handle_media_prev_track_count()41   int handle_media_prev_track_count() const {
42     return handle_media_prev_track_count_;
43   }
handle_media_seek_backward_count()44   int handle_media_seek_backward_count() const {
45     return handle_media_seek_backward_count_;
46   }
handle_media_seek_forward_count()47   int handle_media_seek_forward_count() const {
48     return handle_media_seek_forward_count_;
49   }
media_sessions_suspended()50   bool media_sessions_suspended() const { return media_sessions_suspended_; }
51 
52  private:
53   int handle_media_next_track_count_ = 0;
54   int handle_media_play_pause_count_ = 0;
55   int handle_media_play_count_ = 0;
56   int handle_media_pause_count_ = 0;
57   int handle_media_stop_count_ = 0;
58   int handle_media_prev_track_count_ = 0;
59   int handle_media_seek_backward_count_ = 0;
60   int handle_media_seek_forward_count_ = 0;
61   bool media_sessions_suspended_ = false;
62 
63   DISALLOW_COPY_AND_ASSIGN(TestMediaClient);
64 };
65 
66 }  // namespace ash
67 
68 #endif  // ASH_TEST_MEDIA_CLIENT_H_
69