Index: chrome/browser/chromeos/extensions/launcher_search_provider_apitest.cc |
diff --git a/chrome/browser/chromeos/extensions/launcher_search_provider_apitest.cc b/chrome/browser/chromeos/extensions/launcher_search_provider_apitest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f80c07aaf7fa286f9c231edc572b4bfb2259b735 |
--- /dev/null |
+++ b/chrome/browser/chromeos/extensions/launcher_search_provider_apitest.cc |
@@ -0,0 +1,59 @@ |
+// Copyright 2015 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. |
+ |
+#include "chrome/browser/chromeos/launcher_search_provider/service.h" |
+#include "chrome/browser/extensions/extension_apitest.h" |
+#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.h" |
+#include "chrome/browser/ui/extensions/app_launch_params.h" |
+#include "chrome/browser/ui/extensions/application_launch.h" |
+#include "extensions/common/constants.h" |
+#include "extensions/test/extension_test_message_listener.h" |
+ |
+using chromeos::launcher_search_provider::Service; |
+ |
+namespace extensions { |
+ |
+class LauncherSearchProviderApiTest : public ExtensionApiTest { |
+ public: |
+ LauncherSearchProviderApiTest() {} |
+ |
+ protected: |
+ // Runs |extension_name| as launcher search provider test. In the test, test |
+ // extension can control test and launcher search provider by sending commands |
+ // via chrome.test.sendMessage. |
+ void RunLauncherSearchProviderTest(const std::string& extension_name) { |
+ ExtensionTestMessageListener listener(false); |
+ Service* service = Service::Get(browser()->profile()); |
+ app_list::LauncherSearchProvider launcher_search_provider( |
+ browser()->profile()); |
+ |
+ // Loads extension and run as platform app. |
+ base::FilePath extension_path = test_data_dir_.AppendASCII(extension_name); |
+ const extensions::Extension* extension = LoadExtension(extension_path); |
+ AppLaunchParams params(browser()->profile(), extension, |
+ extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW, |
+ extensions::SOURCE_TEST); |
+ params.command_line = *base::CommandLine::ForCurrentProcess(); |
+ OpenApplication(params); |
+ |
+ // Event loop |
+ while (true) { |
+ ASSERT_TRUE(listener.WaitUntilSatisfied()); |
+ if (listener.message() == "testSuccess") { |
+ // Exits test as success. |
+ break; |
+ } else if (listener.message() == "dispatchOnQueryStarted") { |
+ // Dispatches onQueryStarted event. |
+ service->OnQueryStarted(&launcher_search_provider, "test", 6); |
+ } |
+ listener.Reset(); |
+ } |
+ } |
+}; |
+ |
+IN_PROC_BROWSER_TEST_F(LauncherSearchProviderApiTest, SetSearchResults) { |
+ RunLauncherSearchProviderTest("launcher_search_provider/set_search_results"); |
+} |
+ |
+} // namespace extensions |