chromium/chrome/browser/ash/extensions/speech/speech_recognition_private_base_test.cc

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/extensions/speech/speech_recognition_private_base_test.h"

#include "chrome/browser/ui/browser.h"
#include "content/public/test/fake_speech_recognition_manager.h"

namespace {
const char kBasePath[] = "speech/speech_recognition_private/";
}  // namespace

namespace extensions {

SpeechRecognitionPrivateBaseTest::SpeechRecognitionPrivateBaseTest()
    : test_helper_(GetParam(), media::mojom::RecognizerClientType::kDictation) {
}

SpeechRecognitionPrivateBaseTest::~SpeechRecognitionPrivateBaseTest() = default;

void SpeechRecognitionPrivateBaseTest::SetUpCommandLine(
    base::CommandLine* command_line) {
  std::vector<base::test::FeatureRef> enabled_features =
      test_helper_.GetEnabledFeatures();
  std::vector<base::test::FeatureRef> disabled_features =
      test_helper_.GetDisabledFeatures();
  scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features);

  ExtensionApiTest::SetUpCommandLine(command_line);
}

void SpeechRecognitionPrivateBaseTest::SetUpOnMainThread() {
  test_helper_.SetUp(browser()->profile());
  ExtensionApiTest::SetUpOnMainThread();
}

void SpeechRecognitionPrivateBaseTest::TearDownOnMainThread() {
  if (GetParam() == speech::SpeechRecognitionType::kNetwork)
    content::SpeechRecognitionManager::SetManagerForTesting(nullptr);

  ExtensionApiTest::TearDownOnMainThread();
}

bool SpeechRecognitionPrivateBaseTest::RunSpeechRecognitionPrivateTest(
    const std::string& dir_name) {
  const std::string path = kBasePath + dir_name;
  return RunExtensionTest(path.c_str(), {}, {.load_as_component = true});
}

const Extension* SpeechRecognitionPrivateBaseTest::LoadExtensionAsComponent(
    const std::string& dir_name) {
  const std::string path = kBasePath + dir_name;
  return LoadExtension(test_data_dir_.AppendASCII(path.c_str()),
                       {.load_as_component = true});
}

void SpeechRecognitionPrivateBaseTest::WaitForRecognitionStarted() {
  test_helper_.WaitForRecognitionStarted();
}

void SpeechRecognitionPrivateBaseTest::WaitForRecognitionStopped() {
  test_helper_.WaitForRecognitionStopped();
}

void SpeechRecognitionPrivateBaseTest::SendInterimResultAndWait(
    const std::string& transcript) {
  test_helper_.SendInterimResultAndWait(transcript);
}

void SpeechRecognitionPrivateBaseTest::SendFinalResultAndWait(
    const std::string& transcript) {
  test_helper_.SendFinalResultAndWait(transcript);
}

void SpeechRecognitionPrivateBaseTest::SendErrorAndWait() {
  test_helper_.SendErrorAndWait();
}

}  // namespace extensions