// Copyright (c) 2010 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 CHROME_TEST_AUTOMATION_EXTENSION_PROXY_H_ #define CHROME_TEST_AUTOMATION_EXTENSION_PROXY_H_ #pragma once #include #include "base/compiler_specific.h" #include "chrome/test/automation/automation_constants.h" #include "chrome/test/automation/automation_handle_tracker.h" class AutomationMessageSender; class BrowserProxy; // This class presents the interface to actions that can be performed on // a given extension. This refers to a particular version of that extension. // For example, it refers to Google Translate 1.0. If the extension is // updated to a newer version, this proxy is invalidated. class ExtensionProxy : public AutomationResourceProxy { public: // Creates an extension proxy referring to an extension id. ExtensionProxy(AutomationMessageSender* sender, AutomationHandleTracker* tracker, int handle); // Uninstalls this extension. Returns true on success. bool Uninstall() WARN_UNUSED_RESULT; // Enables this extension. Returns true on success. The extension // should be disabled when this is called. bool Enable() WARN_UNUSED_RESULT; // Disables this extension. Returns true on success. The extension // should be enabled when this is called. bool Disable() WARN_UNUSED_RESULT; // Executes the action associated with this extension. This may be a page // action or a browser action. This is similar to clicking, but does not // work with popups. Also, for page actions, this will execute the action // even if the page action is not shown for the active tab. Returns true on // success. // TODO(kkania): Add support for popups. bool ExecuteActionInActiveTabAsync(BrowserProxy* browser) WARN_UNUSED_RESULT; // Moves the browser action from its current location in the browser action // toolbar to a new |index|. Index should be less than the number of browser // actions in the toolbar. Returns true on success. bool MoveBrowserAction(int index) WARN_UNUSED_RESULT; // Gets the id of this extension. Returns true on success. bool GetId(std::string* id) WARN_UNUSED_RESULT; // Gets the name of this extension. Returns true on success. bool GetName(std::string* name) WARN_UNUSED_RESULT; // Gets the version string of this extension. Returns true on success. bool GetVersion(std::string* version) WARN_UNUSED_RESULT; // Gets the index (zero-based) of this extension's browser action in // the browser action toolbar. |index| will be set to -1 if the extension // does not have a browser action in the toolbar. Returns true on success. bool GetBrowserActionIndex(int* index) WARN_UNUSED_RESULT; // Asserts that |expected_id| matches this extension's id. void EnsureIdMatches(const std::string& expected_id); // Asserts that |expected_name| matches this extension's name. void EnsureNameMatches(const std::string& expected_name); // Asserts that |expected_version| matches this extension's name. void EnsureVersionMatches(const std::string& expected_version); // Asserts that |expected_index| matches the index (zero-based) of this // extension's browser action in the browser action toolbar. void EnsureBrowserActionIndexMatches(int expected_index); private: // Gets the string value of the property of type |type|. Returns true on // success. bool GetProperty(AutomationMsg_ExtensionProperty type, std::string* value) WARN_UNUSED_RESULT; }; #endif // CHROME_TEST_AUTOMATION_EXTENSION_PROXY_H_