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 #include "media/base/media_switches.h"
      9 
     10 class SpeechRecognitionTest : public extensions::PlatformAppBrowserTest {
     11  public:
     12    SpeechRecognitionTest() {}
     13    virtual ~SpeechRecognitionTest() {}
     14 
     15  protected:
     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 
     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 
     47 IN_PROC_BROWSER_TEST_F(SpeechRecognitionTest, SpeechFromBackgroundPage) {
     48   ASSERT_TRUE(RunPlatformAppTest("platform_apps/speech/background_page"))
     49       << message_;
     50 }
     51 
     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