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