| Index: chrome/browser/extensions/extension_tts_api_controller_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_tts_api_controller_unittest.cc (revision 0)
|
| +++ chrome/browser/extensions/extension_tts_api_controller_unittest.cc (revision 0)
|
| @@ -0,0 +1,63 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Unit tests for the TTS API Controller.
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +#include "base/values.h"
|
| +#include "chrome/browser/extensions/extension_tts_api_controller.h"
|
| +#include "chrome/browser/extensions/extension_tts_api_platform.h"
|
| +
|
| +class ExtensionTtsApiControllerTest : public testing::Test {
|
| +};
|
| +
|
| +// Platform Tts implementation that does nothing.
|
| +class DummyExtensionTtsPlatformImpl : public ExtensionTtsPlatformImpl {
|
| + public:
|
| + DummyExtensionTtsPlatformImpl() {}
|
| + virtual ~DummyExtensionTtsPlatformImpl() {}
|
| + virtual bool PlatformImplAvailable() { return true; }
|
| + virtual bool Speak(
|
| + int utterance_id,
|
| + const std::string& utterance,
|
| + const std::string& lang,
|
| + const UtteranceContinuousParameters& params) {
|
| + return true;
|
| + }
|
| + virtual bool StopSpeaking() { return true; }
|
| + virtual bool SendsEvent(TtsEventType event_type) { return false; }
|
| + virtual std::string gender() { return std::string(); }
|
| + virtual std::string error() { return std::string(); }
|
| + virtual void clear_error() {}
|
| + virtual void set_error(const std::string& error) {}
|
| +};
|
| +
|
| +// Subclass of ExtensionTtsController with a public ctor and dtor.
|
| +class TestableExtensionTtsController : public ExtensionTtsController {
|
| + public:
|
| + TestableExtensionTtsController() {}
|
| + virtual ~TestableExtensionTtsController() {}
|
| +};
|
| +
|
| +TEST_F(ExtensionTtsApiControllerTest, TestTtsControllerShutdown) {
|
| + DummyExtensionTtsPlatformImpl platform_impl;
|
| + TestableExtensionTtsController* controller =
|
| + new TestableExtensionTtsController();
|
| + controller->SetPlatformImpl(&platform_impl);
|
| +
|
| + Utterance* utterance1 = new Utterance(NULL);
|
| + utterance1->set_can_enqueue(true);
|
| + utterance1->set_src_id(1);
|
| + controller->SpeakOrEnqueue(utterance1);
|
| +
|
| + Utterance* utterance2 = new Utterance(NULL);
|
| + utterance2->set_can_enqueue(true);
|
| + utterance2->set_src_id(2);
|
| + controller->SpeakOrEnqueue(utterance2);
|
| +
|
| + // Make sure that deleting the controller when there are pending
|
| + // utterances doesn't cause a crash.
|
| + delete controller;
|
| +}
|
|
|
| Property changes on: chrome/browser/extensions/extension_tts_api_controller_unittest.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|