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

Unified Diff: content/browser/media/audio_stream_monitor_unittest.cc

Issue 2948613002: [AudioStreamMonitor] Adds API to collect frame-level audibility. (Closed)
Patch Set: Fix windows build Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/media/audio_stream_monitor.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/media/audio_stream_monitor_unittest.cc
diff --git a/content/browser/media/audio_stream_monitor_unittest.cc b/content/browser/media/audio_stream_monitor_unittest.cc
index 95f28b9d14d9cc6be16dd257433a53d1b4d3c884..cb6931d5766a6bcb7c931d11c542c3cfc1676e33 100644
--- a/content/browser/media/audio_stream_monitor_unittest.cc
+++ b/content/browser/media/audio_stream_monitor_unittest.cc
@@ -30,6 +30,8 @@ const int kRenderProcessId = 1;
const int kAnotherRenderProcessId = 2;
const int kStreamId = 3;
const int kAnotherStreamId = 6;
+const int kRenderFrameId = 4;
+const int kAnotherRenderFrameId = 8;
// Used to confirm audio indicator state changes occur at the correct times.
class MockWebContentsDelegate : public WebContentsDelegate {
@@ -76,8 +78,12 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
void SimulateOffTimerFired() { monitor_->MaybeToggle(); }
- void ExpectIsPolling(int render_process_id, int stream_id, bool is_polling) {
- const AudioStreamMonitor::StreamID key(render_process_id, stream_id);
+ void ExpectIsPolling(int render_process_id,
+ int render_frame_id,
+ int stream_id,
+ bool is_polling) {
+ const AudioStreamMonitor::StreamID key = {render_process_id,
+ render_frame_id, stream_id};
EXPECT_EQ(is_polling, monitor_->poll_callbacks_.find(key) !=
monitor_->poll_callbacks_.end());
EXPECT_EQ(!monitor_->poll_callbacks_.empty(),
@@ -140,22 +146,26 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
void StartMonitoring(
int render_process_id,
+ int render_frame_id,
int stream_id,
const AudioStreamMonitor::ReadPowerAndClipCallback& callback) {
if (!power_level_monitoring_available() &&
monitor_->poll_callbacks_.empty()) {
ExpectCurrentlyAudibleChangeNotification(true);
}
- monitor_->StartMonitoringStreamOnUIThread(render_process_id, stream_id,
- callback);
+ monitor_->StartMonitoringStreamOnUIThread(
+ render_process_id, render_frame_id, stream_id, callback);
}
- void StopMonitoring(int render_process_id, int stream_id) {
+ void StopMonitoring(int render_process_id,
+ int render_frame_id,
+ int stream_id) {
if (!power_level_monitoring_available() &&
monitor_->poll_callbacks_.size() == 1u) {
ExpectCurrentlyAudibleChangeNotification(false);
}
- monitor_->StopMonitoringStreamOnUIThread(render_process_id, stream_id);
+ monitor_->StopMonitoringStreamOnUIThread(render_process_id, render_frame_id,
+ stream_id);
}
bool power_level_monitoring_available() {
@@ -193,17 +203,18 @@ TEST_F(AudioStreamMonitorTest, PollsWhenProvidedACallback) {
EXPECT_FALSE(monitor_->WasRecentlyAudible());
ExpectNotCurrentlyAudible();
- ExpectIsPolling(kRenderProcessId, kStreamId, false);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
EXPECT_FALSE(monitor_->WasRecentlyAudible());
ExpectNotCurrentlyAudible();
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
- StopMonitoring(kRenderProcessId, kStreamId);
+ StopMonitoring(kRenderProcessId, kRenderFrameId, kStreamId);
EXPECT_FALSE(monitor_->WasRecentlyAudible());
ExpectNotCurrentlyAudible();
- ExpectIsPolling(kRenderProcessId, kStreamId, false);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
}
// Tests that AudioStreamMonitor debounces the power level readings it's taking,
@@ -214,7 +225,8 @@ TEST_F(AudioStreamMonitorTest,
if (!power_level_monitoring_available())
return;
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
// Expect WebContents will get one call form AudioStreamMonitor to toggle the
// indicator on upon the very first poll.
@@ -269,9 +281,10 @@ TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
if (!power_level_monitoring_available())
return;
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- StartMonitoring(
- kRenderProcessId, kAnotherStreamId, CreatePollCallback(kAnotherStreamId));
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
+ StartMonitoring(kRenderProcessId, kAnotherRenderFrameId, kAnotherStreamId,
+ CreatePollCallback(kAnotherStreamId));
base::TimeTicks last_blurt_time;
ExpectTabWasRecentlyAudible(false, last_blurt_time);
@@ -355,28 +368,30 @@ TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
}
TEST_F(AudioStreamMonitorTest, MultipleRendererProcesses) {
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- StartMonitoring(
- kAnotherRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
- ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
- StopMonitoring(kAnotherRenderProcessId, kStreamId);
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
- ExpectIsPolling(kAnotherRenderProcessId, kStreamId, false);
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
+ StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
+ ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
+ StopMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
+ ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, false);
}
TEST_F(AudioStreamMonitorTest, RenderProcessGone) {
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- StartMonitoring(kAnotherRenderProcessId, kStreamId,
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
+ StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
CreatePollCallback(kStreamId));
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
- ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
+ ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
monitor_->RenderProcessGone(kRenderProcessId);
- ExpectIsPolling(kRenderProcessId, kStreamId, false);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
if (!power_level_monitoring_available())
ExpectCurrentlyAudibleChangeNotification(false);
monitor_->RenderProcessGone(kAnotherRenderProcessId);
- ExpectIsPolling(kAnotherRenderProcessId, kStreamId, false);
+ ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, false);
}
TEST_F(AudioStreamMonitorTest, NoPowerLevelMonitoring) {
@@ -384,18 +399,19 @@ TEST_F(AudioStreamMonitorTest, NoPowerLevelMonitoring) {
return;
ExpectNotCurrentlyAudible();
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
+ StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
+ CreatePollCallback(kStreamId));
ExpectIsCurrentlyAudible();
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
+ ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
- StartMonitoring(kAnotherRenderProcessId, kStreamId,
+ StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
CreatePollCallback(kStreamId));
ExpectIsCurrentlyAudible();
- ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
+ ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
- StopMonitoring(kRenderProcessId, kStreamId);
+ StopMonitoring(kRenderProcessId, kRenderFrameId, kStreamId);
ExpectIsCurrentlyAudible();
- StopMonitoring(kAnotherRenderProcessId, kStreamId);
+ StopMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId);
ExpectNotCurrentlyAudible();
}
« no previous file with comments | « content/browser/media/audio_stream_monitor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698