Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "chrome/common/net/test_url_fetcher_factory.h" | 7 #include "chrome/common/net/test_url_fetcher_factory.h" |
| 8 #include "content/browser/browser_thread.h" | 8 #include "content/browser/browser_thread.h" |
| 9 #include "content/browser/speech/speech_recognizer.h" | 9 #include "content/browser/speech/speech_recognizer.h" |
| 10 #include "media/audio/test_audio_input_controller_factory.h" | 10 #include "media/audio/test_audio_input_controller_factory.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 | 131 |
| 132 TEST_F(SpeechRecognizerTest, StopWithData) { | 132 TEST_F(SpeechRecognizerTest, StopWithData) { |
| 133 // Start recording, give some data and then stop. This should wait for the | 133 // Start recording, give some data and then stop. This should wait for the |
| 134 // network callback to arrive before completion. | 134 // network callback to arrive before completion. |
| 135 EXPECT_TRUE(recognizer_->StartRecording()); | 135 EXPECT_TRUE(recognizer_->StartRecording()); |
| 136 TestAudioInputController* controller = | 136 TestAudioInputController* controller = |
| 137 audio_input_controller_factory_.controller(); | 137 audio_input_controller_factory_.controller(); |
| 138 ASSERT_TRUE(controller); | 138 ASSERT_TRUE(controller); |
| 139 controller = audio_input_controller_factory_.controller(); | 139 controller = audio_input_controller_factory_.controller(); |
| 140 ASSERT_TRUE(controller); | 140 ASSERT_TRUE(controller); |
| 141 controller->event_handler()->OnData(controller, &audio_packet_[0], | 141 |
| 142 audio_packet_.size()); | 142 // Try sending 5 chunks of mock audio data and verify that each of them |
| 143 MessageLoop::current()->RunAllPending(); | 143 // resulted immediately in a packet sent out via the network. This verifies |
| 144 // that we are streaming out encoded data as chunks without waiting for the | |
| 145 // full recording to complete. | |
| 146 const int kNumChunks = 5; | |
| 147 for (int i = 0; i < kNumChunks; ++i) { | |
|
bulach
2011/03/04 12:41:08
size_t both here and the const above (I think 153
| |
| 148 controller->event_handler()->OnData(controller, &audio_packet_[0], | |
| 149 audio_packet_.size()); | |
| 150 MessageLoop::current()->RunAllPending(); | |
| 151 TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); | |
| 152 ASSERT_TRUE(fetcher); | |
| 153 EXPECT_EQ(i + 1, fetcher->upload_chunks().size()); | |
| 154 } | |
| 155 | |
| 144 recognizer_->StopRecording(); | 156 recognizer_->StopRecording(); |
| 145 EXPECT_TRUE(recording_complete_); | 157 EXPECT_TRUE(recording_complete_); |
| 146 EXPECT_FALSE(recognition_complete_); | 158 EXPECT_FALSE(recognition_complete_); |
| 147 EXPECT_FALSE(result_received_); | 159 EXPECT_FALSE(result_received_); |
| 148 EXPECT_EQ(SpeechRecognizer::RECOGNIZER_NO_ERROR, error_); | 160 EXPECT_EQ(SpeechRecognizer::RECOGNIZER_NO_ERROR, error_); |
| 149 | 161 |
| 150 // Issue the network callback to complete the process. | 162 // Issue the network callback to complete the process. |
| 151 TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); | 163 TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); |
| 152 ASSERT_TRUE(fetcher); | 164 ASSERT_TRUE(fetcher); |
| 153 net::URLRequestStatus status; | 165 net::URLRequestStatus status; |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 304 EXPECT_FLOAT_EQ(0.81907868f, volume_); | 316 EXPECT_FLOAT_EQ(0.81907868f, volume_); |
| 305 EXPECT_FLOAT_EQ(0.52143687f, noise_volume_); | 317 EXPECT_FLOAT_EQ(0.52143687f, noise_volume_); |
| 306 | 318 |
| 307 EXPECT_EQ(SpeechRecognizer::RECOGNIZER_NO_ERROR, error_); | 319 EXPECT_EQ(SpeechRecognizer::RECOGNIZER_NO_ERROR, error_); |
| 308 EXPECT_FALSE(recording_complete_); | 320 EXPECT_FALSE(recording_complete_); |
| 309 EXPECT_FALSE(recognition_complete_); | 321 EXPECT_FALSE(recognition_complete_); |
| 310 recognizer_->CancelRecognition(); | 322 recognizer_->CancelRecognition(); |
| 311 } | 323 } |
| 312 | 324 |
| 313 } // namespace speech_input | 325 } // namespace speech_input |
| OLD | NEW |