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

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

Issue 562863002: Gardening: Revert "Use AudioStreamMonitor to control power save blocking." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
Index: chrome/browser/media/audio_stream_monitor_unittest.cc
diff --git a/content/browser/media/audio_stream_monitor_unittest.cc b/chrome/browser/media/audio_stream_monitor_unittest.cc
similarity index 68%
rename from content/browser/media/audio_stream_monitor_unittest.cc
rename to chrome/browser/media/audio_stream_monitor_unittest.cc
index b8871af65636e896ebe4b84eba3787ca67961b6a..58c4adbbcef579bc7c6b09736bcc1abc0d189697 100644
--- a/content/browser/media/audio_stream_monitor_unittest.cc
+++ b/chrome/browser/media/audio_stream_monitor_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/media/audio_stream_monitor.h"
+#include "chrome/browser/media/audio_stream_monitor.h"
#include <map>
#include <utility>
@@ -11,49 +11,52 @@
#include "base/bind_helpers.h"
#include "base/memory/scoped_ptr.h"
#include "base/test/simple_test_tick_clock.h"
-#include "content/browser/web_contents/web_contents_impl.h"
+#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/invalidate_type.h"
+#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
-#include "content/public/test/test_renderer_host.h"
+#include "content/public/test/test_browser_thread_bundle.h"
#include "media/audio/audio_power_monitor.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
using ::testing::InvokeWithoutArgs;
-namespace content {
-
namespace {
-const int kRenderProcessId = 1;
-const int kAnotherRenderProcessId = 2;
const int kStreamId = 3;
const int kAnotherStreamId = 6;
// Used to confirm audio indicator state changes occur at the correct times.
-class MockWebContentsDelegate : public WebContentsDelegate {
+class MockWebContentsDelegate : public content::WebContentsDelegate {
public:
MOCK_METHOD2(NavigationStateChanged,
- void(const WebContents* source, InvalidateTypes changed_flags));
+ void(const content::WebContents* source,
+ content::InvalidateTypes changed_flags));
};
} // namespace
-class AudioStreamMonitorTest : public RenderViewHostTestHarness {
+class AudioStreamMonitorTest : public testing::Test {
public:
AudioStreamMonitorTest() {
// Start |clock_| at non-zero.
clock_.Advance(base::TimeDelta::FromSeconds(1000000));
- }
- virtual void SetUp() OVERRIDE {
- RenderViewHostTestHarness::SetUp();
+ // Create a WebContents instance and set it to use our mock delegate.
+ web_contents_.reset(content::WebContents::Create(
+ content::WebContents::CreateParams(&profile_, NULL)));
+ web_contents_->SetDelegate(&mock_web_contents_delegate_);
+
+ // Create an AudioStreamMonitor instance whose lifecycle is tied to that of
+ // |web_contents_|, and override its clock with the test clock.
+ AudioStreamMonitor::CreateForWebContents(web_contents_.get());
+ CHECK(audio_stream_monitor());
+ const_cast<base::TickClock*&>(audio_stream_monitor()->clock_) = &clock_;
+ }
- WebContentsImpl* web_contents = reinterpret_cast<WebContentsImpl*>(
- RenderViewHostTestHarness::web_contents());
- web_contents->SetDelegate(&mock_web_contents_delegate_);
- monitor_ = web_contents->audio_stream_monitor();
- const_cast<base::TickClock*&>(monitor_->clock_) = &clock_;
+ AudioStreamMonitor* audio_stream_monitor() {
+ return AudioStreamMonitor::FromWebContents(web_contents_.get());
}
base::TimeTicks GetTestClockTime() { return clock_.NowTicks(); }
@@ -70,32 +73,31 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
current_power_[stream_id] = power;
}
- void SimulatePollTimerFired() { monitor_->Poll(); }
+ void SimulatePollTimerFired() { audio_stream_monitor()->Poll(); }
- void SimulateOffTimerFired() { monitor_->MaybeToggle(); }
+ void SimulateOffTimerFired() { audio_stream_monitor()->MaybeToggle(); }
- void ExpectIsPolling(int render_process_id, int stream_id, bool is_polling) {
- const AudioStreamMonitor::StreamID key(render_process_id, stream_id);
- EXPECT_EQ(
- is_polling,
- monitor_->poll_callbacks_.find(key) != monitor_->poll_callbacks_.end());
- EXPECT_EQ(!monitor_->poll_callbacks_.empty(),
- monitor_->poll_timer_.IsRunning());
+ void ExpectIsPolling(int stream_id, bool is_polling) {
+ AudioStreamMonitor* const monitor = audio_stream_monitor();
+ EXPECT_EQ(is_polling,
+ monitor->poll_callbacks_.find(stream_id) !=
+ monitor->poll_callbacks_.end());
+ EXPECT_EQ(!monitor->poll_callbacks_.empty(),
+ monitor->poll_timer_.IsRunning());
}
void ExpectTabWasRecentlyAudible(bool was_audible,
const base::TimeTicks& last_blurt_time) {
- EXPECT_EQ(was_audible, monitor_->was_recently_audible_);
- EXPECT_EQ(last_blurt_time, monitor_->last_blurt_time_);
- EXPECT_EQ(monitor_->was_recently_audible_,
- monitor_->off_timer_.IsRunning());
+ AudioStreamMonitor* const monitor = audio_stream_monitor();
+ EXPECT_EQ(was_audible, monitor->was_recently_audible_);
+ EXPECT_EQ(last_blurt_time, monitor->last_blurt_time_);
+ EXPECT_EQ(monitor->was_recently_audible_, monitor->off_timer_.IsRunning());
}
void ExpectWebContentsWillBeNotifiedOnce(bool should_be_audible) {
- EXPECT_CALL(
- mock_web_contents_delegate_,
- NavigationStateChanged(RenderViewHostTestHarness::web_contents(),
- INVALIDATE_TYPE_TAB))
+ EXPECT_CALL(mock_web_contents_delegate_,
+ NavigationStateChanged(web_contents_.get(),
+ content::INVALIDATE_TYPE_TAB))
.WillOnce(InvokeWithoutArgs(
this,
should_be_audible
@@ -114,37 +116,25 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
AudioStreamMonitor::kHoldOnMilliseconds);
}
- void StartMonitoring(
- int render_process_id,
- int stream_id,
- const AudioStreamMonitor::ReadPowerAndClipCallback& callback) {
- monitor_->StartMonitoringStreamOnUIThread(
- render_process_id, stream_id, callback);
- }
-
- void StopMonitoring(int render_process_id, int stream_id) {
- monitor_->StopMonitoringStreamOnUIThread(render_process_id, stream_id);
- }
-
- protected:
- AudioStreamMonitor* monitor_;
-
private:
std::pair<float, bool> ReadPower(int stream_id) {
return std::make_pair(current_power_[stream_id], false);
}
void ExpectIsNotifyingForToggleOn() {
- EXPECT_TRUE(monitor_->WasRecentlyAudible());
+ EXPECT_TRUE(audio_stream_monitor()->WasRecentlyAudible());
}
void ExpectIsNotifyingForToggleOff() {
- EXPECT_FALSE(monitor_->WasRecentlyAudible());
+ EXPECT_FALSE(audio_stream_monitor()->WasRecentlyAudible());
}
+ content::TestBrowserThreadBundle browser_thread_bundle_;
+ TestingProfile profile_;
MockWebContentsDelegate mock_web_contents_delegate_;
base::SimpleTestTickClock clock_;
std::map<int, float> current_power_;
+ scoped_ptr<content::WebContents> web_contents_;
DISALLOW_COPY_AND_ASSIGN(AudioStreamMonitorTest);
};
@@ -152,16 +142,17 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
// Tests that AudioStreamMonitor is polling while it has a
// ReadPowerAndClipCallback, and is not polling at other times.
TEST_F(AudioStreamMonitorTest, PollsWhenProvidedACallback) {
- EXPECT_FALSE(monitor_->WasRecentlyAudible());
- ExpectIsPolling(kRenderProcessId, kStreamId, false);
+ EXPECT_FALSE(audio_stream_monitor()->WasRecentlyAudible());
+ ExpectIsPolling(kStreamId, false);
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- EXPECT_FALSE(monitor_->WasRecentlyAudible());
- ExpectIsPolling(kRenderProcessId, kStreamId, true);
+ audio_stream_monitor()->StartMonitoringStream(kStreamId,
+ CreatePollCallback(kStreamId));
+ EXPECT_FALSE(audio_stream_monitor()->WasRecentlyAudible());
+ ExpectIsPolling(kStreamId, true);
- StopMonitoring(kRenderProcessId, kStreamId);
- EXPECT_FALSE(monitor_->WasRecentlyAudible());
- ExpectIsPolling(kRenderProcessId, kStreamId, false);
+ audio_stream_monitor()->StopMonitoringStream(kStreamId);
+ EXPECT_FALSE(audio_stream_monitor()->WasRecentlyAudible());
+ ExpectIsPolling(kStreamId, false);
}
// Tests that AudioStreamMonitor debounces the power level readings it's taking,
@@ -169,7 +160,8 @@ TEST_F(AudioStreamMonitorTest, PollsWhenProvidedACallback) {
// threshold. See comments in audio_stream_monitor.h for expected behavior.
TEST_F(AudioStreamMonitorTest,
ImpulsesKeepIndicatorOnUntilHoldingPeriodHasPassed) {
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
+ audio_stream_monitor()->StartMonitoringStream(kStreamId,
+ CreatePollCallback(kStreamId));
// Expect WebContents will get one call form AudioStreamMonitor to toggle the
// indicator on upon the very first poll.
@@ -216,9 +208,11 @@ TEST_F(AudioStreamMonitorTest,
// Tests that the AudioStreamMonitor correctly processes the blurts from two
// different streams in the same tab.
TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
- StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
- StartMonitoring(
- kRenderProcessId, kAnotherStreamId, CreatePollCallback(kAnotherStreamId));
+ audio_stream_monitor()->StartMonitoringStream(kStreamId,
+ CreatePollCallback(kStreamId));
+ audio_stream_monitor()->StartMonitoringStream(
+ kAnotherStreamId,
+ CreatePollCallback(kAnotherStreamId));
base::TimeTicks last_blurt_time;
ExpectTabWasRecentlyAudible(false, last_blurt_time);
@@ -282,16 +276,3 @@ TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
ExpectTabWasRecentlyAudible(false, last_blurt_time);
}
}
-
-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);
-}
-
-} // namespace content
« no previous file with comments | « chrome/browser/media/audio_stream_monitor.cc ('k') | chrome/browser/media/media_capture_devices_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698