| 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
|
|
|