Home | History | Annotate | Download | only in apps
      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