| OLD | NEW | 
|    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 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 "content/browser/renderer_host/media/web_contents_audio_input_stream.h" |    5 #include "content/browser/renderer_host/media/web_contents_audio_input_stream.h" | 
|    6  |    6  | 
|    7 #include <list> |    7 #include <list> | 
|    8  |    8  | 
|    9 #include "base/bind.h" |    9 #include "base/bind.h" | 
|   10 #include "base/bind_helpers.h" |   10 #include "base/bind_helpers.h" | 
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   82   virtual ~MockWebContentsTracker() {} |   82   virtual ~MockWebContentsTracker() {} | 
|   83  |   83  | 
|   84   DISALLOW_COPY_AND_ASSIGN(MockWebContentsTracker); |   84   DISALLOW_COPY_AND_ASSIGN(MockWebContentsTracker); | 
|   85 }; |   85 }; | 
|   86  |   86  | 
|   87 // A fully-functional VirtualAudioInputStream, but methods are mocked to allow |   87 // A fully-functional VirtualAudioInputStream, but methods are mocked to allow | 
|   88 // tests to check how/when they are invoked. |   88 // tests to check how/when they are invoked. | 
|   89 class MockVirtualAudioInputStream : public VirtualAudioInputStream { |   89 class MockVirtualAudioInputStream : public VirtualAudioInputStream { | 
|   90  public: |   90  public: | 
|   91   explicit MockVirtualAudioInputStream( |   91   explicit MockVirtualAudioInputStream( | 
|   92       const scoped_refptr<base::MessageLoopProxy>& message_loop) |   92       const scoped_refptr<base::MessageLoopProxy>& worker_loop) | 
|   93       : VirtualAudioInputStream(TestAudioParameters(), message_loop, |   93       : VirtualAudioInputStream(TestAudioParameters(), worker_loop, | 
|   94                                 VirtualAudioInputStream::AfterCloseCallback()), |   94                                 VirtualAudioInputStream::AfterCloseCallback()), | 
|   95         real_(TestAudioParameters(), message_loop, |   95         real_(TestAudioParameters(), worker_loop, | 
|   96               base::Bind(&MockVirtualAudioInputStream::OnRealStreamHasClosed, |   96               base::Bind(&MockVirtualAudioInputStream::OnRealStreamHasClosed, | 
|   97                          base::Unretained(this))), |   97                          base::Unretained(this))), | 
|   98         real_stream_is_closed_(false) { |   98         real_stream_is_closed_(false) { | 
|   99     // Set default actions of mocked methods to delegate to the concrete |   99     // Set default actions of mocked methods to delegate to the concrete | 
|  100     // implementation. |  100     // implementation. | 
|  101     ON_CALL(*this, Open()) |  101     ON_CALL(*this, Open()) | 
|  102         .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Open)); |  102         .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Open)); | 
|  103     ON_CALL(*this, Start(_)) |  103     ON_CALL(*this, Start(_)) | 
|  104         .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Start)); |  104         .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Start)); | 
|  105     ON_CALL(*this, Stop()) |  105     ON_CALL(*this, Stop()) | 
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  211     ASSERT_EQ(kRenderViewId, current_render_view_id_); |  211     ASSERT_EQ(kRenderViewId, current_render_view_id_); | 
|  212     EXPECT_CALL(*mock_tracker_.get(), Start(kRenderProcessId, kRenderViewId, _)) |  212     EXPECT_CALL(*mock_tracker_.get(), Start(kRenderProcessId, kRenderViewId, _)) | 
|  213         .WillOnce(DoAll( |  213         .WillOnce(DoAll( | 
|  214              SaveArg<2>(&change_callback_), |  214              SaveArg<2>(&change_callback_), | 
|  215              WithArgs<0, 1>(Invoke(&change_callback_, |  215              WithArgs<0, 1>(Invoke(&change_callback_, | 
|  216                                    &WebContentsTracker::ChangeCallback::Run)))); |  216                                    &WebContentsTracker::ChangeCallback::Run)))); | 
|  217     EXPECT_CALL(*mock_tracker_.get(), Stop());  // At Close() time. |  217     EXPECT_CALL(*mock_tracker_.get(), Stop());  // At Close() time. | 
|  218  |  218  | 
|  219     wcais_ = new WebContentsAudioInputStream( |  219     wcais_ = new WebContentsAudioInputStream( | 
|  220         current_render_process_id_, current_render_view_id_, |  220         current_render_process_id_, current_render_view_id_, | 
|  221         audio_thread_.message_loop_proxy(), mock_mirroring_manager_.get(), |  221         mock_mirroring_manager_.get(), | 
|  222         mock_tracker_, mock_vais_); |  222         mock_tracker_, mock_vais_); | 
|  223     wcais_->Open(); |  223     wcais_->Open(); | 
|  224   } |  224   } | 
|  225  |  225  | 
|  226   void Start() { |  226   void Start() { | 
|  227     EXPECT_CALL(*mock_vais_, Start(&mock_input_callback_)); |  227     EXPECT_CALL(*mock_vais_, Start(&mock_input_callback_)); | 
|  228     EXPECT_CALL(*mock_vais_, Stop());  // At Stop() time. |  228     EXPECT_CALL(*mock_vais_, Stop());  // At Stop() time. | 
|  229  |  229  | 
|  230     EXPECT_CALL(*mock_mirroring_manager_, |  230     EXPECT_CALL(*mock_mirroring_manager_, | 
|  231                 StartMirroring(kRenderProcessId, kRenderViewId, NotNull())) |  231                 StartMirroring(kRenderProcessId, kRenderViewId, NotNull())) | 
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  504   WaitForData(); |  504   WaitForData(); | 
|  505   RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); |  505   RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); | 
|  506   WaitForData(); |  506   WaitForData(); | 
|  507   RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); |  507   RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); | 
|  508   RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); |  508   RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); | 
|  509   RUN_ON_AUDIO_THREAD(Stop); |  509   RUN_ON_AUDIO_THREAD(Stop); | 
|  510   RUN_ON_AUDIO_THREAD(Close); |  510   RUN_ON_AUDIO_THREAD(Close); | 
|  511 } |  511 } | 
|  512  |  512  | 
|  513 }  // namespace content |  513 }  // namespace content | 
| OLD | NEW |