Index: chrome_frame/test/chrome_frame_ui_test_utils.h |
diff --git a/chrome_frame/test/chrome_frame_ui_test_utils.h b/chrome_frame/test/chrome_frame_ui_test_utils.h |
deleted file mode 100644 |
index 2fee76922d718268dcacb50b4d80ceb1ab89511c..0000000000000000000000000000000000000000 |
--- a/chrome_frame/test/chrome_frame_ui_test_utils.h |
+++ /dev/null |
@@ -1,293 +0,0 @@ |
-// Copyright (c) 2011 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_FRAME_TEST_CHROME_FRAME_UI_TEST_UTILS_H_ |
-#define CHROME_FRAME_TEST_CHROME_FRAME_UI_TEST_UTILS_H_ |
- |
-#include <oleacc.h> |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/files/file_path.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/win/scoped_comptr.h" |
-#include "base/win/scoped_variant.h" |
-#include "chrome_frame/test/win_event_receiver.h" |
- |
-namespace gfx { |
-class Rect; |
-} |
- |
-namespace chrome_frame_test { |
- |
-// Wrapper for MSAA/IAccessible2 accessibility objects. IAccessible2 is an |
-// open standard which serves as a complement to MSAA and specifies additional |
-// interfaces and methods. Chrome currently supports a subset of this API. |
-// |
-// In MSAA, there are two types of objects. The first, called an object or full |
-// object, has its own IAccessible interface. The second, called a simple |
-// element, does not have its own IAccessible interface and cannot have |
-// children. Simple elements must be referenced by combination of the parent |
-// object and the element's id in MSAA. This class handles this distinction |
-// transparently to the client. |
-class AccObject : public base::RefCounted<AccObject> { |
- public: |
- typedef std::vector<scoped_refptr<AccObject> > RefCountedAccObjectVector; |
- |
- // Creates an AccObject with an IAccessible and child id. |accessible| must |
- // not be NULL. |child_id| must always be CHILDID_SELF unless this AccObject |
- // is a simple element. |
- AccObject(IAccessible* accessible, int child_id = CHILDID_SELF); |
- |
- // Creates an AccObject corresponding to the given window. May return NULL |
- // if there is not accessible object for the window. The client owns the |
- // created AccObject. |
- static AccObject* CreateFromWindow(HWND hwnd); |
- |
- // Creates an AccObject corresponding to the object that generated a |
- // WinEvent. Returns NULL on failure. |
- static AccObject* CreateFromEvent(HWND hwnd, LONG object_id, LONG child_id); |
- |
- // Creates an AccObject from querying the given IDispatch. May return NULL |
- // if the object does not implement IAccessible. The client owns the created |
- // AccObject. |
- static AccObject* CreateFromDispatch(IDispatch* dispatch); |
- |
- // Creates an AccObject corresponding to the accessible object at the screen |
- // coordinates given. Returns NULL on failure. The client owns the created |
- // AccObject. |
- // Note: This does not work in Chrome. |
- static AccObject* CreateFromPoint(int x, int y); |
- |
- // Performs the default action on this object. Returns whether the action |
- // performed successfully. Will cause test failure if unsuccessful. |
- // Note: This does not work for selecting menu items if the desktop is locked. |
- bool DoDefaultAction(); |
- |
- // Posts a left click message at this object's center point to the window |
- // containing this object. |
- bool LeftClick(); |
- |
- // Posts a right click message at this object's center point to the window |
- // containing this object. |
- bool RightClick(); |
- |
- // Focuses this object. Returns whether the object receives focus. Will cause |
- // test failure if the object is not focused. |
- bool Focus(); |
- |
- // Selects this object. Returns whether the object is now selected. Will cause |
- // test failure if the object is not selected. |
- bool Select(); |
- |
- // Sets the value of the object. Will cause test failure if unsuccessful. |
- bool SetValue(const std::wstring& value); |
- |
- // Gets the name of the object and returns true on success. |
- bool GetName(std::wstring* name); |
- |
- // Gets the role text of the object and returns true on success. |
- bool GetRoleText(std::wstring* role_text); |
- |
- // Gets the value of the object and returns true on success. |
- bool GetValue(std::wstring* value); |
- |
- // Gets the state of the object and returns true on success. |
- bool GetState(int* state); |
- |
- // Gets the location of the object in screen coordinates and returns true |
- // on success. |
- bool GetLocation(gfx::Rect* location); |
- |
- // Gets the location of the object relative to the containing window's |
- // client rect. |
- bool GetLocationInClient(gfx::Rect* location); |
- |
- // Gets the parent of the object. May return NULL. |
- AccObject* GetParent(); |
- |
- // Gets the children of this object and returns true on success. |objects| |
- // will not be modified unless if the operation is successful. |
- bool GetChildren(RefCountedAccObjectVector* objects); |
- |
- // Gets the number of children of this object and returns true on success. |
- bool GetChildCount(int* child_count); |
- |
- // Gets an object resulting from the navigation and returns true if the |
- // navigation completed successfully. Even if true, |object| may still |
- // refer to a NULL object if no object was found from the navigation. |
- // |navigation_type| may be any navigation constant, such as NAVDIR_NEXT. |
- // Note: This method uses a deprecated IAccessible method. |
- bool GetFromNavigation(long navigation_type, |
- scoped_refptr<AccObject>* object); |
- |
- // Gets the window containing this object and returns true on success. This |
- // method will return false if the object is not contained within a window. |
- bool GetWindow(HWND* window); |
- |
- // Gets the class name for the window containing this object and returns true |
- // on success. If this object does not have a window, this will return false. |
- bool GetWindowClassName(std::wstring* class_name); |
- |
- // Gets the range of text that is selected in this object. If no text is |
- // selected, |start_offset| and |end_offset| will be set to 0. Returns true |
- // on success. |
- // Requires IAccessible2 support. |
- bool GetSelectionRange(int* start_offset, int* end_offset); |
- |
- // Gets the text that is selected in this object. Returns true on success. |
- // Requires IAccessible2 support. |
- bool GetSelectedText(std::wstring* text); |
- |
- // Returns whether this object is a simple element. |
- bool IsSimpleElement(); |
- |
- // Returns whether the two AccObjects point to the same accessibility object. |
- // |other| can safely be NULL. |
- bool Equals(AccObject* other); |
- |
- // Returns a description of this object. |
- std::wstring GetDescription(); |
- |
- // Returns a description of this object and it's accessibility tree. This |
- // description will be ended by a newline. |
- std::wstring GetTree(); |
- |
- private: |
- friend class base::RefCounted<AccObject>; |
- ~AccObject() {} |
- |
- // Creates an AccObject using the given variant, returning NULL on failure. |
- // The variant should be of type |VT_I4| referring to the id of a child of |
- // |object|, or of type |VT_DISPATCH|. This method is useful for converting |
- // the variant returned by many of the IAccessible methods into an AccObject. |
- static AccObject* CreateFromVariant(AccObject* object, |
- const VARIANT& variant); |
- |
- // Posts the given mouse button down and up messages at this object's center. |
- // Returns true on success. |
- bool PostMouseClickAtCenter(int button_down, int button_up); |
- |
- // Helper method for posting mouse button messages. |
- bool PostMouseButtonMessages(int button_up, int button_down, int x, int y); |
- |
- base::win::ScopedComPtr<IAccessible> accessible_; |
- base::win::ScopedVariant child_id_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AccObject); |
-}; |
- |
-// Finds an accessibility object with properties that match the specified |
-// matching patterns. These patterns can include the standard * and ? wildcards. |
-class AccObjectMatcher { |
- public: |
- // Create a matcher from the given string. |matcher| should include matching |
- // patterns for each property separated by colons. Matching patterns must |
- // be specified from left to right in the following order: |
- // 1) Name |
- // 2) Role Text: A string representation of a Windows object role, which can |
- // be found by using the win32 GetRoleText function. E.g., |
- // ROLE_SYSTEM_ALERT should be represented as 'alert', and |
- // ROLE_SYSTEM_MENUPOPUP should be represented as 'popup menu'. |
- // 3) Value |
- // Matching patterns can be blank, essentially equal to *. |
- // Literal *, ?, and : characters can be escaped with a backslash. |
- AccObjectMatcher(const std::wstring& name = L"", |
- const std::wstring& role_text = L"", |
- const std::wstring& value = L""); |
- |
- // Finds the first object which satisfies this matcher and sets as |match|. |
- // This searches the accessibility tree (including |object| itself) of |
- // |object| in a pre-order fasion. If no object is matched, |match| will be |
- // NULL. Returns true if no error occured while trying to find a match. It is |
- // possible to use this method to test for an object's non-existence. |
- bool Find(AccObject* object, scoped_refptr<AccObject>* match) const; |
- |
- // Same as above except that it searches within the accessibility tree of the |
- // given window, which must support the IAccessible interface. |
- bool FindInWindow(HWND hwnd, scoped_refptr<AccObject>* match) const; |
- |
- // Returns whether |object| satisfies this matcher. |
- bool DoesMatch(AccObject* object) const; |
- |
- // Return a description of the matcher, for debugging/logging purposes. |
- std::wstring GetDescription() const; |
- |
- private: |
- bool FindHelper(AccObject* object, scoped_refptr<AccObject>* match) const; |
- |
- std::wstring name_; |
- std::wstring role_text_; |
- std::wstring value_; |
-}; |
- |
-// Observes various accessibility events. |
-class AccEventObserver : public WinEventListener { |
- public: |
- AccEventObserver(); |
- virtual ~AccEventObserver(); |
- |
- // Begins watching for a value changed event for an accessibility object that |
- // satisfies |matcher|. Once the event occurs, this observer will stop |
- // watching. |
- void WatchForOneValueChange(const AccObjectMatcher& matcher); |
- |
- // Called when the DOM accessibility tree for the page is ready. |
- virtual void OnAccDocLoad(HWND hwnd) = 0; |
- |
- // Called when an accessibility object value changes. Only called if the |
- // observer was set to watch for it. |
- virtual void OnAccValueChange(HWND hwnd, AccObject* object, |
- const std::wstring& new_value) = 0; |
- |
- // Called when the text caret moves within the given object. This is |
- // triggered when the text selection changes also. |
- virtual void OnTextCaretMoved(HWND hwnd, AccObject* object) = 0; |
- |
- // Called when a new menu is shown. |
- virtual void OnMenuPopup(HWND hwnd) = 0; |
- |
- private: |
- class EventHandler : public base::RefCounted<EventHandler> { |
- public: |
- explicit EventHandler(AccEventObserver* observer); |
- |
- // Examines the given event and invokes the corresponding method of its |
- // observer. |
- void Handle(DWORD event, HWND hwnd, LONG object_id, LONG child_id); |
- |
- AccEventObserver* observer_; |
- }; |
- |
- // Overriden from WinEventListener. |
- virtual void OnEventReceived(DWORD event, HWND hwnd, LONG object_id, |
- LONG child_id); |
- |
- scoped_refptr<EventHandler> event_handler_; |
- bool is_watching_; |
- AccObjectMatcher watching_for_matcher_; |
- WinEventReceiver event_receiver_; |
-}; |
- |
-// Finds an AccObject from the given window that satisfied |matcher|. |
-// Will cause test failure in case of error or if no match is found in the |
-// accessibility tree of the specified window. Returns whether the object was |
-// found. |
-bool FindAccObjectInWindow(HWND hwnd, const AccObjectMatcher& matcher, |
- scoped_refptr<AccObject>* object); |
- |
-// Writes the accessibility tree for the given window to standard out. Used for |
-// debugging/logging. |
-void DumpAccessibilityTreeForWindow(HWND hwnd); |
- |
-// Returns whether the desktop is unlocked. |
-bool IsDesktopUnlocked(); |
- |
-// Returns the location of the IAccessible2 COM proxy stub DLL. |
-base::FilePath GetIAccessible2ProxyStubPath(); |
- |
-} // namespace chrome_frame_test |
- |
-#endif // CHROME_FRAME_TEST_CHROME_FRAME_UI_TEST_UTILS_H_ |