| OLD | NEW |
| 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 <list> | 5 #include <list> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 kIdle, | 37 kIdle, |
| 38 kTestAudioControllerOpened, | 38 kTestAudioControllerOpened, |
| 39 kClientConnected, | 39 kClientConnected, |
| 40 kClientAudioUpload, | 40 kClientAudioUpload, |
| 41 kClientAudioUploadComplete, | 41 kClientAudioUploadComplete, |
| 42 kTestAudioControllerClosed, | 42 kTestAudioControllerClosed, |
| 43 kClientDisconnected | 43 kClientDisconnected |
| 44 }; | 44 }; |
| 45 | 45 |
| 46 // MockGoogleStreamingServerDelegate methods. | 46 // MockGoogleStreamingServerDelegate methods. |
| 47 virtual void OnClientConnected() OVERRIDE { | 47 virtual void OnClientConnected() override { |
| 48 ASSERT_EQ(kTestAudioControllerOpened, streaming_server_state_); | 48 ASSERT_EQ(kTestAudioControllerOpened, streaming_server_state_); |
| 49 streaming_server_state_ = kClientConnected; | 49 streaming_server_state_ = kClientConnected; |
| 50 } | 50 } |
| 51 | 51 |
| 52 virtual void OnClientAudioUpload() OVERRIDE { | 52 virtual void OnClientAudioUpload() override { |
| 53 if (streaming_server_state_ == kClientConnected) | 53 if (streaming_server_state_ == kClientConnected) |
| 54 streaming_server_state_ = kClientAudioUpload; | 54 streaming_server_state_ = kClientAudioUpload; |
| 55 } | 55 } |
| 56 | 56 |
| 57 virtual void OnClientAudioUploadComplete() OVERRIDE { | 57 virtual void OnClientAudioUploadComplete() override { |
| 58 ASSERT_EQ(kTestAudioControllerClosed, streaming_server_state_); | 58 ASSERT_EQ(kTestAudioControllerClosed, streaming_server_state_); |
| 59 streaming_server_state_ = kClientAudioUploadComplete; | 59 streaming_server_state_ = kClientAudioUploadComplete; |
| 60 } | 60 } |
| 61 | 61 |
| 62 virtual void OnClientDisconnected() OVERRIDE { | 62 virtual void OnClientDisconnected() override { |
| 63 ASSERT_EQ(kClientAudioUploadComplete, streaming_server_state_); | 63 ASSERT_EQ(kClientAudioUploadComplete, streaming_server_state_); |
| 64 streaming_server_state_ = kClientDisconnected; | 64 streaming_server_state_ = kClientDisconnected; |
| 65 } | 65 } |
| 66 | 66 |
| 67 // media::TestAudioInputControllerDelegate methods. | 67 // media::TestAudioInputControllerDelegate methods. |
| 68 virtual void TestAudioControllerOpened( | 68 virtual void TestAudioControllerOpened( |
| 69 media::TestAudioInputController* controller) OVERRIDE { | 69 media::TestAudioInputController* controller) override { |
| 70 ASSERT_EQ(kIdle, streaming_server_state_); | 70 ASSERT_EQ(kIdle, streaming_server_state_); |
| 71 streaming_server_state_ = kTestAudioControllerOpened; | 71 streaming_server_state_ = kTestAudioControllerOpened; |
| 72 const int capture_packet_interval_ms = | 72 const int capture_packet_interval_ms = |
| 73 (1000 * controller->audio_parameters().frames_per_buffer()) / | 73 (1000 * controller->audio_parameters().frames_per_buffer()) / |
| 74 controller->audio_parameters().sample_rate(); | 74 controller->audio_parameters().sample_rate(); |
| 75 ASSERT_EQ(GoogleStreamingRemoteEngine::kAudioPacketIntervalMs, | 75 ASSERT_EQ(GoogleStreamingRemoteEngine::kAudioPacketIntervalMs, |
| 76 capture_packet_interval_ms); | 76 capture_packet_interval_ms); |
| 77 FeedAudioController(500 /* ms */, /*noise=*/ false); | 77 FeedAudioController(500 /* ms */, /*noise=*/ false); |
| 78 FeedAudioController(1000 /* ms */, /*noise=*/ true); | 78 FeedAudioController(1000 /* ms */, /*noise=*/ true); |
| 79 FeedAudioController(1000 /* ms */, /*noise=*/ false); | 79 FeedAudioController(1000 /* ms */, /*noise=*/ false); |
| 80 } | 80 } |
| 81 | 81 |
| 82 virtual void TestAudioControllerClosed( | 82 virtual void TestAudioControllerClosed( |
| 83 media::TestAudioInputController* controller) OVERRIDE { | 83 media::TestAudioInputController* controller) override { |
| 84 ASSERT_EQ(kClientAudioUpload, streaming_server_state_); | 84 ASSERT_EQ(kClientAudioUpload, streaming_server_state_); |
| 85 streaming_server_state_ = kTestAudioControllerClosed; | 85 streaming_server_state_ = kTestAudioControllerClosed; |
| 86 mock_streaming_server_->MockGoogleStreamingServer::SimulateResult( | 86 mock_streaming_server_->MockGoogleStreamingServer::SimulateResult( |
| 87 GetGoodSpeechResult()); | 87 GetGoodSpeechResult()); |
| 88 } | 88 } |
| 89 | 89 |
| 90 // Helper methods used by test fixtures. | 90 // Helper methods used by test fixtures. |
| 91 GURL GetTestUrlFromFragment(const std::string fragment) { | 91 GURL GetTestUrlFromFragment(const std::string fragment) { |
| 92 return GURL(GetTestUrl("speech", "web_speech_recognition.html").spec() + | 92 return GURL(GetTestUrl("speech", "web_speech_recognition.html").spec() + |
| 93 "#" + fragment); | 93 "#" + fragment); |
| 94 } | 94 } |
| 95 | 95 |
| 96 std::string GetPageFragment() { | 96 std::string GetPageFragment() { |
| 97 return shell()->web_contents()->GetURL().ref(); | 97 return shell()->web_contents()->GetURL().ref(); |
| 98 } | 98 } |
| 99 | 99 |
| 100 const StreamingServerState &streaming_server_state() { | 100 const StreamingServerState &streaming_server_state() { |
| 101 return streaming_server_state_; | 101 return streaming_server_state_; |
| 102 } | 102 } |
| 103 | 103 |
| 104 protected: | 104 protected: |
| 105 // ContentBrowserTest methods. | 105 // ContentBrowserTest methods. |
| 106 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 106 virtual void SetUpInProcessBrowserTestFixture() override { |
| 107 test_audio_input_controller_factory_.set_delegate(this); | 107 test_audio_input_controller_factory_.set_delegate(this); |
| 108 media::AudioInputController::set_factory_for_testing( | 108 media::AudioInputController::set_factory_for_testing( |
| 109 &test_audio_input_controller_factory_); | 109 &test_audio_input_controller_factory_); |
| 110 mock_streaming_server_.reset(new MockGoogleStreamingServer(this)); | 110 mock_streaming_server_.reset(new MockGoogleStreamingServer(this)); |
| 111 streaming_server_state_ = kIdle; | 111 streaming_server_state_ = kIdle; |
| 112 } | 112 } |
| 113 | 113 |
| 114 virtual void SetUpOnMainThread() OVERRIDE { | 114 virtual void SetUpOnMainThread() override { |
| 115 ASSERT_TRUE(SpeechRecognitionManagerImpl::GetInstance()); | 115 ASSERT_TRUE(SpeechRecognitionManagerImpl::GetInstance()); |
| 116 SpeechRecognizerImpl::SetAudioManagerForTesting( | 116 SpeechRecognizerImpl::SetAudioManagerForTesting( |
| 117 new media::MockAudioManager(BrowserThread::GetMessageLoopProxyForThread( | 117 new media::MockAudioManager(BrowserThread::GetMessageLoopProxyForThread( |
| 118 BrowserThread::IO))); | 118 BrowserThread::IO))); |
| 119 } | 119 } |
| 120 | 120 |
| 121 virtual void TearDownOnMainThread() OVERRIDE { | 121 virtual void TearDownOnMainThread() override { |
| 122 SpeechRecognizerImpl::SetAudioManagerForTesting(NULL); | 122 SpeechRecognizerImpl::SetAudioManagerForTesting(NULL); |
| 123 } | 123 } |
| 124 | 124 |
| 125 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE { | 125 virtual void TearDownInProcessBrowserTestFixture() override { |
| 126 test_audio_input_controller_factory_.set_delegate(NULL); | 126 test_audio_input_controller_factory_.set_delegate(NULL); |
| 127 mock_streaming_server_.reset(); | 127 mock_streaming_server_.reset(); |
| 128 } | 128 } |
| 129 | 129 |
| 130 private: | 130 private: |
| 131 static void FeedSingleBufferToAudioController( | 131 static void FeedSingleBufferToAudioController( |
| 132 scoped_refptr<media::TestAudioInputController> controller, | 132 scoped_refptr<media::TestAudioInputController> controller, |
| 133 size_t buffer_size, | 133 size_t buffer_size, |
| 134 bool fill_with_noise) { | 134 bool fill_with_noise) { |
| 135 DCHECK(controller.get()); | 135 DCHECK(controller.get()); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 | 204 |
| 205 IN_PROC_BROWSER_TEST_F(SpeechRecognitionBrowserTest, OneShotRecognition) { | 205 IN_PROC_BROWSER_TEST_F(SpeechRecognitionBrowserTest, OneShotRecognition) { |
| 206 NavigateToURLBlockUntilNavigationsComplete( | 206 NavigateToURLBlockUntilNavigationsComplete( |
| 207 shell(), GetTestUrlFromFragment("oneshot"), 2); | 207 shell(), GetTestUrlFromFragment("oneshot"), 2); |
| 208 | 208 |
| 209 EXPECT_EQ(kClientDisconnected, streaming_server_state()); | 209 EXPECT_EQ(kClientDisconnected, streaming_server_state()); |
| 210 EXPECT_EQ("goodresult1", GetPageFragment()); | 210 EXPECT_EQ("goodresult1", GetPageFragment()); |
| 211 } | 211 } |
| 212 | 212 |
| 213 } // namespace content | 213 } // namespace content |
| OLD | NEW |