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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/apps/app_browsertest_util.h" 6 #include "content/public/common/content_switches.h" 7 #include "content/public/test/fake_speech_recognition_manager.h" 8 9 class SpeechRecognitionTest : public extensions::PlatformAppBrowserTest { 10 public: 11 SpeechRecognitionTest() {} 12 virtual ~SpeechRecognitionTest() {} 13 14 protected: 15 virtual void SetUp() OVERRIDE { 16 const testing::TestInfo* const test_info = 17 testing::UnitTest::GetInstance()->current_test_info(); 18 // For SpeechRecognitionTest.SpeechFromBackgroundPage test, we need to 19 // fake the speech input to make tests run OK in bots. 20 if (!strcmp(test_info->name(), "SpeechFromBackgroundPage")) { 21 fake_speech_recognition_manager_.reset( 22 new content::FakeSpeechRecognitionManager()); 23 fake_speech_recognition_manager_->set_should_send_fake_response(true); 24 // Inject the fake manager factory so that the test result is returned to 25 // the web page. 26 content::SpeechRecognitionManager::SetManagerForTesting( 27 fake_speech_recognition_manager_.get()); 28 } 29 30 extensions::PlatformAppBrowserTest::SetUp(); 31 } 32 33 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 34 command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream); 35 command_line->AppendSwitch(switches::kUseFakeUIForMediaStream); 36 extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); 37 } 38 39 private: 40 scoped_ptr<content::FakeSpeechRecognitionManager> 41 fake_speech_recognition_manager_; 42 43 DISALLOW_COPY_AND_ASSIGN(SpeechRecognitionTest); 44 }; 45 46 IN_PROC_BROWSER_TEST_F(SpeechRecognitionTest, SpeechFromBackgroundPage) { 47 ASSERT_TRUE(RunPlatformAppTest("platform_apps/speech/background_page")) 48 << message_; 49 } 50 51 IN_PROC_BROWSER_TEST_F(SpeechRecognitionTest, 52 SpeechFromBackgroundPageWithoutPermission) { 53 ASSERT_TRUE( 54 RunPlatformAppTest("platform_apps/speech/background_page_no_permission")) 55 << message_; 56 } 57