Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2410)

Unified Diff: chrome/browser/speech/extension_api/tts_extension_apitest.cc

Issue 58513003: Disable remote TTS services when offline. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/speech/extension_api/tts_extension_apitest.cc
diff --git a/chrome/browser/speech/extension_api/tts_extension_apitest.cc b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
index b9e7a9a0248605a4c5b8910a752f179b4f24dfad..2fe5f52ef4565a5a1f0380f54b2ca14cdeb6eaee 100644
--- a/chrome/browser/speech/extension_api/tts_extension_apitest.cc
+++ b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/speech/tts_controller.h"
#include "chrome/browser/speech/tts_platform.h"
#include "chrome/common/chrome_switches.h"
+#include "net/base/network_change_notifier.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -145,6 +146,22 @@ class MockTtsPlatformImpl : public TtsPlatformImpl {
base::WeakPtrFactory<MockTtsPlatformImpl> ptr_factory_;
};
+class FakeNetworkOnlineStateForTest : public net::NetworkChangeNotifier {
+ public:
+ explicit FakeNetworkOnlineStateForTest(bool online) : online_(online) {}
+ virtual ~FakeNetworkOnlineStateForTest() {}
+
+ virtual ConnectionType GetCurrentConnectionType() const OVERRIDE {
+ return online_ ?
+ net::NetworkChangeNotifier::CONNECTION_ETHERNET :
+ net::NetworkChangeNotifier::CONNECTION_NONE;
+ }
+
+ private:
+ bool online_;
+ DISALLOW_COPY_AND_ASSIGN(FakeNetworkOnlineStateForTest);
+};
+
class TtsApiTest : public ExtensionApiTest {
public:
virtual void SetUpInProcessBrowserTestFixture() {
@@ -381,12 +398,28 @@ IN_PROC_BROWSER_TEST_F(TtsApiTest, LangMatching) {
}
IN_PROC_BROWSER_TEST_F(TtsApiTest, NetworkSpeechEngine) {
+ // Simulate online network state.
+ net::NetworkChangeNotifier::DisableForTest disable_for_test;
+ FakeNetworkOnlineStateForTest fake_online_state(true);
not at google - send to devlin 2013/11/04 23:30:43 how... does this get installed? but sure.
dmazzoni 2013/11/04 23:38:15 It's a little odd, but a NetworkChangeNotifier reg
not at google - send to devlin 2013/11/04 23:40:45 You could make the DisableForTest a member of Fake
+
ExtensionService* service = extensions::ExtensionSystem::Get(
profile())->extension_service();
service->component_loader()->AddNetworkSpeechSynthesisExtension();
ASSERT_TRUE(RunExtensionTest("tts_engine/network_speech_engine")) << message_;
}
+IN_PROC_BROWSER_TEST_F(TtsApiTest, NoNetworkSpeechEngineWhenOffline) {
+ // Simulate offline network state.
+ net::NetworkChangeNotifier::DisableForTest disable_for_test;
+ FakeNetworkOnlineStateForTest fake_online_state(false);
+
+ ExtensionService* service = extensions::ExtensionSystem::Get(
+ profile())->extension_service();
+ service->component_loader()->AddNetworkSpeechSynthesisExtension();
+ // Test should fail when offline.
+ ASSERT_FALSE(RunExtensionTest("tts_engine/network_speech_engine"));
+}
+
// http://crbug.com/122474
IN_PROC_BROWSER_TEST_F(TtsApiTest, EngineApi) {
ASSERT_TRUE(RunExtensionTest("tts_engine/engine_api")) << message_;

Powered by Google App Engine
This is Rietveld 408576698