Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: media/base/android/media_source_player_unittest.cc

Issue 1110833004: Move audio focus control from media/ to content/ and make it per WebContents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: with tests Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <string> 5 #include <string>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 30 matching lines...) Expand all
41 // Mock of MediaPlayerManager for testing purpose. 41 // Mock of MediaPlayerManager for testing purpose.
42 class MockMediaPlayerManager : public MediaPlayerManager { 42 class MockMediaPlayerManager : public MediaPlayerManager {
43 public: 43 public:
44 explicit MockMediaPlayerManager(base::MessageLoop* message_loop) 44 explicit MockMediaPlayerManager(base::MessageLoop* message_loop)
45 : message_loop_(message_loop), 45 : message_loop_(message_loop),
46 playback_completed_(false), 46 playback_completed_(false),
47 num_resources_requested_(0), 47 num_resources_requested_(0),
48 num_metadata_changes_(0), 48 num_metadata_changes_(0),
49 timestamp_updated_(false), 49 timestamp_updated_(false),
50 is_audible_(false), 50 is_audible_(false),
51 is_delay_expired_(false) {} 51 is_delay_expired_(false),
52 allow_play_(true) {}
52 ~MockMediaPlayerManager() override {} 53 ~MockMediaPlayerManager() override {}
53 54
54 // MediaPlayerManager implementation. 55 // MediaPlayerManager implementation.
55 MediaResourceGetter* GetMediaResourceGetter() override { return NULL; } 56 MediaResourceGetter* GetMediaResourceGetter() override { return NULL; }
56 MediaUrlInterceptor* GetMediaUrlInterceptor() override { return NULL; } 57 MediaUrlInterceptor* GetMediaUrlInterceptor() override { return NULL; }
57 void OnTimeUpdate(int player_id, 58 void OnTimeUpdate(int player_id,
58 base::TimeDelta current_time, 59 base::TimeDelta current_time,
59 base::TimeTicks current_time_ticks) override { 60 base::TimeTicks current_time_ticks) override {
60 timestamp_updated_ = true; 61 timestamp_updated_ = true;
61 } 62 }
(...skipping 13 matching lines...) Expand all
75 void OnBufferingUpdate(int player_id, int percentage) override {} 76 void OnBufferingUpdate(int player_id, int percentage) override {}
76 void OnSeekComplete(int player_id, 77 void OnSeekComplete(int player_id,
77 const base::TimeDelta& current_time) override {} 78 const base::TimeDelta& current_time) override {}
78 void OnError(int player_id, int error) override {} 79 void OnError(int player_id, int error) override {}
79 void OnVideoSizeChanged(int player_id, int width, int height) override {} 80 void OnVideoSizeChanged(int player_id, int width, int height) override {}
80 void OnWaitingForDecryptionKey(int player_id) override {} 81 void OnWaitingForDecryptionKey(int player_id) override {}
81 MediaPlayerAndroid* GetFullscreenPlayer() override { return NULL; } 82 MediaPlayerAndroid* GetFullscreenPlayer() override { return NULL; }
82 MediaPlayerAndroid* GetPlayer(int player_id) override { return NULL; } 83 MediaPlayerAndroid* GetPlayer(int player_id) override { return NULL; }
83 void RequestFullScreen(int player_id) override {} 84 void RequestFullScreen(int player_id) override {}
84 85
86 bool RequestPlay(int player_id) override {
87 return allow_play_;
88 }
89
85 void OnAudibleStateChanged(int player_id, bool is_audible_now) override { 90 void OnAudibleStateChanged(int player_id, bool is_audible_now) override {
86 is_audible_ = is_audible_now; 91 is_audible_ = is_audible_now;
87 } 92 }
88 93
89 bool playback_completed() const { 94 bool playback_completed() const {
90 return playback_completed_; 95 return playback_completed_;
91 } 96 }
92 97
93 int num_resources_requested() const { 98 int num_resources_requested() const {
94 return num_resources_requested_; 99 return num_resources_requested_;
(...skipping 20 matching lines...) Expand all
115 } 120 }
116 121
117 bool is_delay_expired() const { 122 bool is_delay_expired() const {
118 return is_delay_expired_; 123 return is_delay_expired_;
119 } 124 }
120 125
121 void SetDelayExpired(bool value) { 126 void SetDelayExpired(bool value) {
122 is_delay_expired_ = value; 127 is_delay_expired_ = value;
123 } 128 }
124 129
130 void set_allow_play(bool value) {
131 allow_play_ = value;
132 }
133
125 private: 134 private:
126 base::MessageLoop* message_loop_; 135 base::MessageLoop* message_loop_;
127 bool playback_completed_; 136 bool playback_completed_;
128 // The number of resource requests this object has seen. 137 // The number of resource requests this object has seen.
129 int num_resources_requested_; 138 int num_resources_requested_;
130 // The number of metadata changes reported by the player. 139 // The number of metadata changes reported by the player.
131 int num_metadata_changes_; 140 int num_metadata_changes_;
132 // Playback timestamp was updated. 141 // Playback timestamp was updated.
133 bool timestamp_updated_; 142 bool timestamp_updated_;
134 // Audible state of the pipeline 143 // Audible state of the pipeline
135 bool is_audible_; 144 bool is_audible_;
136 // Helper flag to ensure delay for WaitForDelay(). 145 // Helper flag to ensure delay for WaitForDelay().
137 bool is_delay_expired_; 146 bool is_delay_expired_;
147 // Whether the manager will allow players that request playing.
148 bool allow_play_;
138 149
139 DISALLOW_COPY_AND_ASSIGN(MockMediaPlayerManager); 150 DISALLOW_COPY_AND_ASSIGN(MockMediaPlayerManager);
140 }; 151 };
141 152
142 class MockDemuxerAndroid : public DemuxerAndroid { 153 class MockDemuxerAndroid : public DemuxerAndroid {
143 public: 154 public:
144 explicit MockDemuxerAndroid(base::MessageLoop* message_loop) 155 explicit MockDemuxerAndroid(base::MessageLoop* message_loop)
145 : message_loop_(message_loop), 156 : message_loop_(message_loop),
146 num_data_requests_(0), 157 num_data_requests_(0),
147 num_seek_requests_(0), 158 num_seek_requests_(0),
(...skipping 2358 matching lines...) Expand 10 before | Expand all | Expand 10 after
2506 2517
2507 // Wait for the metadata change. 2518 // Wait for the metadata change.
2508 while(manager_.num_metadata_changes() == 1) { 2519 while(manager_.num_metadata_changes() == 1) {
2509 player_.OnDemuxerDataAvailable(data); 2520 player_.OnDemuxerDataAvailable(data);
2510 WaitForVideoDecodeDone(); 2521 WaitForVideoDecodeDone();
2511 } 2522 }
2512 EXPECT_EQ(2, manager_.num_metadata_changes()); 2523 EXPECT_EQ(2, manager_.num_metadata_changes());
2513 WaitForVideoDecodeDone(); 2524 WaitForVideoDecodeDone();
2514 } 2525 }
2515 2526
2527 TEST_F(MediaSourcePlayerTest, RequestPlayDeniedDontPlay_Audio) {
2528 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2529
2530 EXPECT_EQ(demuxer_->num_data_requests(), 0);
2531 player_.OnDemuxerConfigsAvailable(CreateDemuxerConfigs(true, false));
2532
2533 manager_.set_allow_play(false);
2534 player_.Start();
2535 EXPECT_FALSE(player_.IsPlaying());
2536 }
2537
2538 TEST_F(MediaSourcePlayerTest, RequestPlayDeniedDontPlay_Video) {
2539 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2540
2541 EXPECT_EQ(demuxer_->num_data_requests(), 0);
2542 player_.OnDemuxerConfigsAvailable(CreateDemuxerConfigs(false, true));
2543
2544 manager_.set_allow_play(false);
2545 player_.Start();
2546 EXPECT_FALSE(player_.IsPlaying());
2547 }
2548
2549 TEST_F(MediaSourcePlayerTest, RequestPlayDeniedDontPlay_AV) {
2550 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2551
2552 EXPECT_EQ(demuxer_->num_data_requests(), 0);
2553 player_.OnDemuxerConfigsAvailable(CreateDemuxerConfigs(true, true));
2554
2555 manager_.set_allow_play(false);
2556 player_.Start();
2557 EXPECT_FALSE(player_.IsPlaying());
2558 }
2559
2560 TEST_F(MediaSourcePlayerTest, RequestPlayGrantedPlays) {
2561 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
2562
2563 EXPECT_EQ(demuxer_->num_data_requests(), 0);
2564 player_.OnDemuxerConfigsAvailable(CreateDemuxerConfigs(true, true));
2565
2566 manager_.set_allow_play(true);
2567 player_.Start();
2568 EXPECT_TRUE(player_.IsPlaying());
2569 }
2570
2516 } // namespace media 2571 } // namespace media
OLDNEW
« content/browser/media/android/media_session.cc ('K') | « media/base/android/media_source_player.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698