| // Copyright 2014 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. |
| |
| #ifndef EXTENSIONS_SHELL_TEST_SHELL_APITEST_H_ |
| #define EXTENSIONS_SHELL_TEST_SHELL_APITEST_H_ |
| |
| #include <string> |
| |
| #include "base/macros.h" |
| #include "extensions/shell/test/shell_test.h" |
| |
| namespace extensions { |
| |
| class Extension; |
| |
| // Base class for app shell browser API tests that load an app/extension |
| // and wait for a success message from the chrome.test API. |
| class ShellApiTest : public AppShellTest { |
| public: |
| ShellApiTest(); |
| ~ShellApiTest() override; |
| |
| // Load and run an unpacked platform app from the |app_dir| directory. Unlike |
| // |RunAppTest|, it won't wait automatically for any kind of notification. |
| // Returns an instance of the extension that was just loaded. |
| const Extension* LoadApp(const std::string& app_dir); |
| |
| // Loads an unpacked platform app from a directory using the current |
| // ExtensionSystem, launches it, and waits for a chrome.test success |
| // notification. Returns true if the test succeeds. |app_dir| is a |
| // subpath under extensions/test/data. |
| bool RunAppTest(const std::string& app_dir); |
| |
| // Removes the |app| from the ExtensionRegistry and dispatches |
| // notifications of the removal stating reason as REASON_DISABLE. |
| void UnloadApp(const Extension* app); |
| |
| protected: |
| // If it failed, what was the error message? |
| std::string message_; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(ShellApiTest); |
| }; |
| |
| } // namespace extensions |
| |
| #endif // EXTENSIONS_SHELL_TEST_SHELL_APITEST_H_ |