| Index: content/browser/renderer_host/media/audio_input_device_manager_unittest.cc
 | 
| diff --git a/content/browser/renderer_host/media/audio_input_device_manager_unittest.cc b/content/browser/renderer_host/media/audio_input_device_manager_unittest.cc
 | 
| index fe57150d6747de15616b50c29d8ad9b4a1fd0b82..d85f4dc98cabe24755f50ab466a416e54d9e50ce 100644
 | 
| --- a/content/browser/renderer_host/media/audio_input_device_manager_unittest.cc
 | 
| +++ b/content/browser/renderer_host/media/audio_input_device_manager_unittest.cc
 | 
| @@ -8,13 +8,17 @@
 | 
|  #include "base/memory/ref_counted.h"
 | 
|  #include "base/memory/scoped_ptr.h"
 | 
|  #include "base/message_loop.h"
 | 
| +#include "content/browser/browser_main_loop.h"
 | 
|  #include "content/browser/browser_thread_impl.h"
 | 
|  #include "content/browser/renderer_host/media/audio_input_device_manager.h"
 | 
|  #include "content/browser/renderer_host/media/audio_input_device_manager_event_handler.h"
 | 
| +#include "content/public/common/content_switches.h"
 | 
| +#include "content/public/common/main_function_params.h"
 | 
|  #include "media/audio/audio_manager_base.h"
 | 
|  #include "testing/gmock/include/gmock/gmock.h"
 | 
|  #include "testing/gtest/include/gtest/gtest.h"
 | 
|  
 | 
| +using content::BrowserMainLoop;
 | 
|  using content::BrowserThread;
 | 
|  using content::BrowserThreadImpl;
 | 
|  using media_stream::AudioInputDeviceManager;
 | 
| @@ -88,26 +92,31 @@ ACTION_P(ExitMessageLoop, message_loop) {
 | 
|  class AudioInputDeviceManagerTest : public testing::Test {
 | 
|   public:
 | 
|    AudioInputDeviceManagerTest()
 | 
| -      : message_loop_(),
 | 
| -        io_thread_(),
 | 
| +      : io_thread_(),
 | 
|          manager_(),
 | 
|          audio_input_listener_() {
 | 
|    }
 | 
|  
 | 
| -  // Returns true iff machine has an audio input device.
 | 
| +  // Returns true if machine has an audio input device.
 | 
|    bool CanRunAudioInputDeviceTests() {
 | 
| -    return audio_manager_->HasAudioInputDevices();
 | 
| +    return BrowserMainLoop::GetAudioManager()->HasAudioInputDevices();
 | 
|    }
 | 
|  
 | 
|   protected:
 | 
|    virtual void SetUp() {
 | 
| +    CommandLine command_line =  CommandLine(CommandLine::NO_PROGRAM);
 | 
| +    content::MainFunctionParams params_=
 | 
| +        content::MainFunctionParams(command_line);
 | 
| +    main_loop_.reset(new content::BrowserMainLoop(params_));
 | 
| +    main_loop_->Init();
 | 
| +    main_loop_->MainMessageLoopStart();
 | 
| +
 | 
|      // The test must run on Browser::IO.
 | 
| -    message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
 | 
|      io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO,
 | 
| -                                           message_loop_.get()));
 | 
| -    audio_manager_.reset(media::AudioManager::Create());
 | 
| +                                           MessageLoop::current()));
 | 
|  
 | 
| -    manager_ = new AudioInputDeviceManager(audio_manager_.get());
 | 
| +    manager_ = new AudioInputDeviceManager(
 | 
| +        MessageLoop::current()->message_loop_proxy());
 | 
|      audio_input_listener_.reset(new MockAudioInputDeviceManagerListener());
 | 
|      manager_->Register(audio_input_listener_.get());
 | 
|  
 | 
| @@ -116,8 +125,8 @@ class AudioInputDeviceManagerTest : public testing::Test {
 | 
|      EXPECT_CALL(*audio_input_listener_, DevicesEnumerated(_))
 | 
|          .Times(1);
 | 
|  
 | 
| -    // Waits for the callback.
 | 
| -    message_loop_->RunAllPending();
 | 
| +    // Wait until we get the list.
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  
 | 
|    virtual void TearDown() {
 | 
| @@ -125,11 +134,11 @@ class AudioInputDeviceManagerTest : public testing::Test {
 | 
|      io_thread_.reset();
 | 
|    }
 | 
|  
 | 
| -  scoped_ptr<MessageLoop> message_loop_;
 | 
|    scoped_ptr<BrowserThreadImpl> io_thread_;
 | 
|    scoped_refptr<AudioInputDeviceManager> manager_;
 | 
|    scoped_ptr<MockAudioInputDeviceManagerListener> audio_input_listener_;
 | 
|    scoped_ptr<media::AudioManager> audio_manager_;
 | 
| +  scoped_ptr<content::BrowserMainLoop> main_loop_;
 | 
|  
 | 
|   private:
 | 
|    DISALLOW_COPY_AND_ASSIGN(AudioInputDeviceManagerTest);
 | 
| @@ -161,8 +170,7 @@ TEST_F(AudioInputDeviceManagerTest, OpenAndCloseDevice) {
 | 
|                         session_id))
 | 
|          .Times(1);
 | 
|  
 | 
| -    // Waits for the callback.
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -192,8 +200,7 @@ TEST_F(AudioInputDeviceManagerTest, OpenMultipleDevices) {
 | 
|                         session_id[index]))
 | 
|          .Times(1);
 | 
|  
 | 
| -    // Waits for the callback.
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  
 | 
|    // Checks if the session_ids are unique.
 | 
| @@ -211,8 +218,7 @@ TEST_F(AudioInputDeviceManagerTest, OpenMultipleDevices) {
 | 
|                         session_id[i]))
 | 
|          .Times(1);
 | 
|  
 | 
| -    // Waits for the callback.
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -233,8 +239,7 @@ TEST_F(AudioInputDeviceManagerTest, OpenNotExistingDevice) {
 | 
|                       session_id))
 | 
|        .Times(1);
 | 
|  
 | 
| -  // Waits for the callback.
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  }
 | 
|  
 | 
|  // Opens default device twice.
 | 
| @@ -273,8 +278,7 @@ TEST_F(AudioInputDeviceManagerTest, OpenDeviceTwice) {
 | 
|                       second_session_id))
 | 
|        .Times(1);
 | 
|  
 | 
| -  // Waits for the callback.
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  }
 | 
|  
 | 
|  // Starts and closes the sessions after opening the devices.
 | 
| @@ -293,7 +297,7 @@ TEST_F(AudioInputDeviceManagerTest, StartAndStopSession) {
 | 
|    // Creates the EventHandler for the sessions.
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        audio_input_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|  
 | 
|    // Loops through the devices and calls Open()/Start()/Stop()/Close() for
 | 
|    // each device.
 | 
| @@ -307,13 +311,13 @@ TEST_F(AudioInputDeviceManagerTest, StartAndStopSession) {
 | 
|                  Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                         session_id[index]))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|      manager_->Start(session_id[index], audio_input_event_handler.get());
 | 
|      EXPECT_CALL(*audio_input_event_handler,
 | 
|                  DeviceStarted(session_id[index], iter->device_id))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|      manager_->Stop(session_id[index]);
 | 
|      manager_->Close(session_id[index]);
 | 
| @@ -321,7 +325,7 @@ TEST_F(AudioInputDeviceManagerTest, StartAndStopSession) {
 | 
|                  Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                         session_id[index]))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -341,7 +345,7 @@ TEST_F(AudioInputDeviceManagerTest, CloseWithoutStopSession) {
 | 
|    // Creates the EventHandlers for the sessions.
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        audio_input_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|  
 | 
|    // Loop through the devices, and calls Open()/Start()/Close() for the devices.
 | 
|    // Note that we do not call stop.
 | 
| @@ -354,13 +358,13 @@ TEST_F(AudioInputDeviceManagerTest, CloseWithoutStopSession) {
 | 
|                  Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                         session_id[index]))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|      manager_->Start(session_id[index], audio_input_event_handler.get());
 | 
|      EXPECT_CALL(*audio_input_event_handler,
 | 
|                  DeviceStarted(session_id[index], iter->device_id))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|      // Event Handler should get a stop device notification as no stop is called
 | 
|      // before closing the device.
 | 
| @@ -372,7 +376,7 @@ TEST_F(AudioInputDeviceManagerTest, CloseWithoutStopSession) {
 | 
|                  Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                         session_id[index]))
 | 
|          .Times(1);
 | 
| -    message_loop_->RunAllPending();
 | 
| +    MessageLoop::current()->RunAllPending();
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -388,10 +392,10 @@ TEST_F(AudioInputDeviceManagerTest, StartDeviceTwice) {
 | 
|    // Create one EventHandler for each session.
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        first_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        second_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|  
 | 
|    // Open the default device twice.
 | 
|    StreamDeviceInfoArray::const_iterator iter =
 | 
| @@ -407,7 +411,7 @@ TEST_F(AudioInputDeviceManagerTest, StartDeviceTwice) {
 | 
|                Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       second_session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    // Calls Start()/Stop()/Close() for the default device twice.
 | 
|    manager_->Start(first_session_id, first_event_handler.get());
 | 
| @@ -420,7 +424,7 @@ TEST_F(AudioInputDeviceManagerTest, StartDeviceTwice) {
 | 
|                DeviceStarted(second_session_id,
 | 
|                              media::AudioManagerBase::kDefaultDeviceId))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    manager_->Stop(first_session_id);
 | 
|    manager_->Stop(second_session_id);
 | 
| @@ -434,7 +438,7 @@ TEST_F(AudioInputDeviceManagerTest, StartDeviceTwice) {
 | 
|                Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       second_session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  }
 | 
|  
 | 
|  // Starts an invalid session.
 | 
| @@ -446,7 +450,7 @@ TEST_F(AudioInputDeviceManagerTest, StartInvalidSession) {
 | 
|    // Creates the EventHandlers for the sessions.
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        audio_input_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|  
 | 
|    // Opens the first device.
 | 
|    StreamDeviceInfoArray::const_iterator iter =
 | 
| @@ -456,7 +460,7 @@ TEST_F(AudioInputDeviceManagerTest, StartInvalidSession) {
 | 
|                Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    // Starts a non-opened device.
 | 
|    // This should fail and trigger error code 'kDeviceNotAvailable'.
 | 
| @@ -466,14 +470,14 @@ TEST_F(AudioInputDeviceManagerTest, StartInvalidSession) {
 | 
|                DeviceStarted(invalid_session_id,
 | 
|                              AudioInputDeviceManager::kInvalidDeviceId))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    manager_->Close(session_id);
 | 
|    EXPECT_CALL(*audio_input_listener_,
 | 
|                Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  }
 | 
|  
 | 
|  // Starts a session twice, the first time should succeed, while the second
 | 
| @@ -486,7 +490,7 @@ TEST_F(AudioInputDeviceManagerTest, StartSessionTwice) {
 | 
|    // Creates the EventHandlers for the sessions.
 | 
|    scoped_ptr<MockAudioInputDeviceManagerEventHandler>
 | 
|        audio_input_event_handler(
 | 
| -          new MockAudioInputDeviceManagerEventHandler(message_loop_.get()));
 | 
| +          new MockAudioInputDeviceManagerEventHandler(MessageLoop::current()));
 | 
|  
 | 
|    // Opens the first device.
 | 
|    StreamDeviceInfoArray::const_iterator iter =
 | 
| @@ -496,7 +500,7 @@ TEST_F(AudioInputDeviceManagerTest, StartSessionTwice) {
 | 
|                Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    // Starts the session, it should succeed.
 | 
|    manager_->Start(session_id, audio_input_event_handler.get());
 | 
| @@ -504,7 +508,7 @@ TEST_F(AudioInputDeviceManagerTest, StartSessionTwice) {
 | 
|                DeviceStarted(session_id,
 | 
|                              media::AudioManagerBase::kDefaultDeviceId))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  
 | 
|    // Starts the session for the second time, it should fail.
 | 
|    manager_->Start(session_id, audio_input_event_handler.get());
 | 
| @@ -519,7 +523,7 @@ TEST_F(AudioInputDeviceManagerTest, StartSessionTwice) {
 | 
|                Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE,
 | 
|                       session_id))
 | 
|        .Times(1);
 | 
| -  message_loop_->RunAllPending();
 | 
| +  MessageLoop::current()->RunAllPending();
 | 
|  }
 | 
|  
 | 
|  }  // namespace media_stream
 | 
| 
 |