summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/test_event_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/cocoa/test_event_utils.h')
-rw-r--r--chrome/browser/ui/cocoa/test_event_utils.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/test_event_utils.h b/chrome/browser/ui/cocoa/test_event_utils.h
new file mode 100644
index 0000000..43bc78f
--- /dev/null
+++ b/chrome/browser/ui/cocoa/test_event_utils.h
@@ -0,0 +1,48 @@
+// 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_BROWSER_UI_COCOA_TEST_EVENT_UTILS_H_
+#define CHROME_BROWSER_UI_COCOA_TEST_EVENT_UTILS_H_
+#pragma once
+
+#include <utility>
+
+#import <objc/objc-class.h>
+
+#include "base/basictypes.h"
+
+// Within a given scope, replace the selector |selector| on |target| with that
+// from |source|.
+class ScopedClassSwizzler {
+ public:
+ ScopedClassSwizzler(Class target, Class source, SEL selector);
+ ~ScopedClassSwizzler();
+
+ private:
+ Method old_selector_impl_;
+ Method new_selector_impl_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScopedClassSwizzler);
+};
+
+namespace test_event_utils {
+
+// Create synthetic mouse events for testing. Currently these are very
+// basic, flesh out as needed. Points are all in window coordinates;
+// where the window is not specified, coordinate system is undefined
+// (but will be repeated when the event is queried).
+NSEvent* MakeMouseEvent(NSEventType type, NSUInteger modifiers);
+NSEvent* MouseEventAtPoint(NSPoint point, NSEventType type,
+ NSUInteger modifiers);
+NSEvent* LeftMouseDownAtPoint(NSPoint point);
+NSEvent* LeftMouseDownAtPointInWindow(NSPoint point, NSWindow* window);
+
+// Return a mouse down and an up event with the given |clickCount| at
+// |view|'s midpoint.
+std::pair<NSEvent*, NSEvent*> MouseClickInView(NSView* view,
+ NSUInteger clickCount);
+
+} // namespace test_event_utils
+
+#endif // CHROME_BROWSER_UI_COCOA_TEST_EVENT_UTILS_H_