Index: chrome/browser/extensions/api/hotword_private/hotword_private_apitest.cc |
diff --git a/chrome/browser/extensions/api/hotword_private/hotword_private_apitest.cc b/chrome/browser/extensions/api/hotword_private/hotword_private_apitest.cc |
index bd7c08faf29bd61040ca38e405b1740d6df39ef0..6ba941bf4ab6ba1b270b4ebc2eab259305b28b19 100644 |
--- a/chrome/browser/extensions/api/hotword_private/hotword_private_apitest.cc |
+++ b/chrome/browser/extensions/api/hotword_private/hotword_private_apitest.cc |
@@ -8,6 +8,7 @@ |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_test_message_listener.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/search/hotword_client.h" |
#include "chrome/browser/search/hotword_service.h" |
#include "chrome/browser/search/hotword_service_factory.h" |
#include "chrome/common/pref_names.h" |
@@ -38,6 +39,37 @@ class MockHotwordService : public HotwordService { |
DISALLOW_COPY_AND_ASSIGN(MockHotwordService); |
}; |
+class MockHotwordClient : public HotwordClient { |
+ public: |
+ MockHotwordClient() |
+ : last_enabled_(false), |
+ state_changed_count_(0), |
+ recognized_count_(0) { |
+ } |
+ |
+ virtual ~MockHotwordClient() {} |
+ |
+ virtual void OnHotwordStateChanged(bool enabled) OVERRIDE { |
+ last_enabled_ = enabled; |
+ state_changed_count_++; |
+ } |
+ |
+ virtual void OnHotwordRecognized() OVERRIDE { |
+ recognized_count_++; |
+ } |
+ |
+ bool last_enabled() const { return last_enabled_; } |
+ int state_changed_count() const { return state_changed_count_; } |
+ int recognized_count() const { return recognized_count_; } |
+ |
+ private: |
+ bool last_enabled_; |
+ int state_changed_count_; |
+ int recognized_count_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MockHotwordClient); |
+}; |
+ |
class HotwordPrivateApiTest : public ExtensionApiTest { |
public: |
HotwordPrivateApiTest() {} |
@@ -131,3 +163,23 @@ IN_PROC_BROWSER_TEST_F(HotwordPrivateApiTest, OnEnabledChanged) { |
profile()->GetPrefs()->SetBoolean(prefs::kHotwordSearchEnabled, true); |
EXPECT_TRUE(listenerNotification.WaitUntilSatisfied()); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(HotwordPrivateApiTest, HotwordSession) { |
+ extensions::HotwordPrivateEventService::GetFactoryInstance(); |
+ ExtensionTestMessageListener listener("ready", false); |
+ LoadExtensionAsComponent( |
+ test_data_dir_.AppendASCII("hotwordSession")); |
+ EXPECT_TRUE(listener.WaitUntilSatisfied()); |
+ |
+ ExtensionTestMessageListener listenerStopReady("stopReady", false); |
+ ExtensionTestMessageListener listenerStopped("stopped", false); |
+ MockHotwordClient client; |
+ service()->RequestHotwordSession(&client); |
+ EXPECT_TRUE(listenerStopReady.WaitUntilSatisfied()); |
+ service()->StopHotwordSession(&client); |
+ EXPECT_TRUE(listenerStopped.WaitUntilSatisfied()); |
+ |
+ EXPECT_TRUE(client.last_enabled()); |
+ EXPECT_EQ(1, client.state_changed_count()); |
+ EXPECT_EQ(1, client.recognized_count()); |
+} |