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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/memory/weak_ptr.h" | 7 #include "base/memory/weak_ptr.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
10 #include "chrome/browser/extensions/extension_tts_api.h" | 10 #include "chrome/browser/extensions/extension_tts_api.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 void SendEndEvent(int utterance_id, | 56 void SendEndEvent(int utterance_id, |
57 const std::string& utterance, | 57 const std::string& utterance, |
58 const std::string& lang, | 58 const std::string& lang, |
59 const UtteranceContinuousParameters& params) { | 59 const UtteranceContinuousParameters& params) { |
60 MessageLoop::current()->PostDelayedTask( | 60 MessageLoop::current()->PostDelayedTask( |
61 FROM_HERE, base::Bind( | 61 FROM_HERE, base::Bind( |
62 &MockExtensionTtsPlatformImpl::SendEvent, | 62 &MockExtensionTtsPlatformImpl::SendEvent, |
63 ptr_factory_.GetWeakPtr(), | 63 ptr_factory_.GetWeakPtr(), |
64 false, utterance_id, TTS_EVENT_END, utterance.size(), | 64 false, utterance_id, TTS_EVENT_END, utterance.size(), |
65 std::string()), | 65 std::string()), |
66 0); | 66 base::TimeDelta()); |
67 } | 67 } |
68 | 68 |
69 void SendEndEventWhenQueueNotEmpty( | 69 void SendEndEventWhenQueueNotEmpty( |
70 int utterance_id, | 70 int utterance_id, |
71 const std::string& utterance, | 71 const std::string& utterance, |
72 const std::string& lang, | 72 const std::string& lang, |
73 const UtteranceContinuousParameters& params) { | 73 const UtteranceContinuousParameters& params) { |
74 MessageLoop::current()->PostDelayedTask( | 74 MessageLoop::current()->PostDelayedTask( |
75 FROM_HERE, base::Bind( | 75 FROM_HERE, base::Bind( |
76 &MockExtensionTtsPlatformImpl::SendEvent, | 76 &MockExtensionTtsPlatformImpl::SendEvent, |
77 ptr_factory_.GetWeakPtr(), | 77 ptr_factory_.GetWeakPtr(), |
78 true, utterance_id, TTS_EVENT_END, utterance.size(), std::string()), | 78 true, utterance_id, TTS_EVENT_END, utterance.size(), std::string()), |
79 0); | 79 base::TimeDelta()); |
80 } | 80 } |
81 | 81 |
82 void SendWordEvents(int utterance_id, | 82 void SendWordEvents(int utterance_id, |
83 const std::string& utterance, | 83 const std::string& utterance, |
84 const std::string& lang, | 84 const std::string& lang, |
85 const UtteranceContinuousParameters& params) { | 85 const UtteranceContinuousParameters& params) { |
86 for (int i = 0; i < static_cast<int>(utterance.size()); i++) { | 86 for (int i = 0; i < static_cast<int>(utterance.size()); i++) { |
87 if (i == 0 || utterance[i - 1] == ' ') { | 87 if (i == 0 || utterance[i - 1] == ' ') { |
88 MessageLoop::current()->PostDelayedTask( | 88 MessageLoop::current()->PostDelayedTask( |
89 FROM_HERE, base::Bind( | 89 FROM_HERE, base::Bind( |
90 &MockExtensionTtsPlatformImpl::SendEvent, | 90 &MockExtensionTtsPlatformImpl::SendEvent, |
91 ptr_factory_.GetWeakPtr(), | 91 ptr_factory_.GetWeakPtr(), |
92 false, utterance_id, TTS_EVENT_WORD, i, | 92 false, utterance_id, TTS_EVENT_WORD, i, |
93 std::string()), | 93 std::string()), |
94 0); | 94 base::TimeDelta()); |
95 } | 95 } |
96 } | 96 } |
97 } | 97 } |
98 | 98 |
99 void SendEvent(bool wait_for_non_empty_queue, | 99 void SendEvent(bool wait_for_non_empty_queue, |
100 int utterance_id, | 100 int utterance_id, |
101 TtsEventType event_type, | 101 TtsEventType event_type, |
102 int char_index, | 102 int char_index, |
103 const std::string& message) { | 103 const std::string& message) { |
104 ExtensionTtsController* controller = ExtensionTtsController::GetInstance(); | 104 ExtensionTtsController* controller = ExtensionTtsController::GetInstance(); |
105 if (wait_for_non_empty_queue && controller->QueueSize() == 0) { | 105 if (wait_for_non_empty_queue && controller->QueueSize() == 0) { |
106 MessageLoop::current()->PostDelayedTask( | 106 MessageLoop::current()->PostDelayedTask( |
107 FROM_HERE, base::Bind( | 107 FROM_HERE, base::Bind( |
108 &MockExtensionTtsPlatformImpl::SendEvent, | 108 &MockExtensionTtsPlatformImpl::SendEvent, |
109 ptr_factory_.GetWeakPtr(), | 109 ptr_factory_.GetWeakPtr(), |
110 true, utterance_id, event_type, char_index, message), | 110 true, utterance_id, event_type, char_index, message), |
111 100); | 111 base::TimeDelta::FromMilliseconds(100)); |
112 return; | 112 return; |
113 } | 113 } |
114 | 114 |
115 controller->OnTtsEvent(utterance_id, event_type, char_index, message); | 115 controller->OnTtsEvent(utterance_id, event_type, char_index, message); |
116 } | 116 } |
117 | 117 |
118 private: | 118 private: |
119 base::WeakPtrFactory<MockExtensionTtsPlatformImpl> ptr_factory_; | 119 base::WeakPtrFactory<MockExtensionTtsPlatformImpl> ptr_factory_; |
120 }; | 120 }; |
121 | 121 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 | 290 |
291 ASSERT_TRUE(RunExtensionTest("tts_engine/engine_error")) << message_; | 291 ASSERT_TRUE(RunExtensionTest("tts_engine/engine_error")) << message_; |
292 } | 292 } |
293 | 293 |
294 IN_PROC_BROWSER_TEST_F(TtsApiTest, EngineWordCallbacks) { | 294 IN_PROC_BROWSER_TEST_F(TtsApiTest, EngineWordCallbacks) { |
295 EXPECT_CALL(mock_platform_impl_, StopSpeaking()) | 295 EXPECT_CALL(mock_platform_impl_, StopSpeaking()) |
296 .WillRepeatedly(Return(true)); | 296 .WillRepeatedly(Return(true)); |
297 | 297 |
298 ASSERT_TRUE(RunExtensionTest("tts_engine/engine_word_callbacks")) << message_; | 298 ASSERT_TRUE(RunExtensionTest("tts_engine/engine_word_callbacks")) << message_; |
299 } | 299 } |
OLD | NEW |