Skip to content

Commit

Permalink
Merge pull request #64 from goderbauer/addMouseEnum
Browse files Browse the repository at this point in the history
adding enum for mouse buttons
  • Loading branch information
DrMarcII committed Jan 22, 2016
2 parents 1a51d51 + eaff254 commit a42d18f
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 17 deletions.
8 changes: 4 additions & 4 deletions dart/lib/async/html.dart
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class _HtmlMouse implements PageLoaderMouse {
_HtmlMouse(this.loader);

@override
Future down(int button,
Future down(MouseButton button,
{_ElementPageLoaderElement eventTarget, bool sync: true}) =>
loader.executeSynced(
() => dispatchEvent('mousedown', eventTarget, button), sync);
Expand All @@ -86,7 +86,7 @@ class _HtmlMouse implements PageLoaderMouse {
}, sync);

@override
Future up(int button,
Future up(MouseButton button,
{_ElementPageLoaderElement eventTarget, bool sync: true}) =>
loader.executeSynced(() => dispatchEvent('mouseup', eventTarget), sync);

Expand All @@ -101,9 +101,9 @@ class _HtmlMouse implements PageLoaderMouse {
clientY;

Future dispatchEvent(String type, _ElementPageLoaderElement eventTarget,
[int button = 0]) async {
[MouseButton button = MouseButton.primary]) async {
var event = new MouseEvent(type,
button: button,
button: button.value,
clientX: clientX,
clientY: clientY,
screenX: screenX,
Expand Down
7 changes: 5 additions & 2 deletions dart/lib/async/src/interfaces.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ library pageloader.async.interfaces;

import 'dart:async';
import 'dart:math';
import 'package:webdriver/core.dart' show MouseButton;

export 'package:webdriver/core.dart' show MouseButton;

typedef Future<T> SyncedExecutionFn<T>(Future<T> fn());

Expand All @@ -36,13 +39,13 @@ abstract class PageLoaderMouse {
/// specified, PageLoader will attempt to fire the corresponding mouse events
/// on that target, otherwise it will fire the events on the target that is
/// under the current mouse location.
Future down(int button, {PageLoaderElement eventTarget, bool sync: true});
Future down(MouseButton button, {PageLoaderElement eventTarget, bool sync: true});

/// Release [button] on the mouse at its current location. If [eventTarget] is
/// specified, PageLoader will attempt to fire the corresponding mouse events
/// on that target, otherwise it will fire the events on the target that is
/// under the current mouse location.
Future up(int button, {PageLoaderElement eventTarget, bool sync: true});
Future up(MouseButton button, {PageLoaderElement eventTarget, bool sync: true});

/// Move the mouse to a location relative to [element].
Future moveTo(PageLoaderElement element, int xOffset, int yOffset,
Expand Down
10 changes: 5 additions & 5 deletions dart/lib/async/webdriver.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class _WebDriverMouse implements PageLoaderMouse {
_WebDriverMouse(this.loader);

@override
Future down(int button,
Future down(MouseButton button,
{_WebElementPageLoaderElement eventTarget, bool sync: true}) =>
loader.executeSynced(() {
if (eventTarget == null) {
Expand All @@ -83,7 +83,7 @@ class _WebDriverMouse implements PageLoaderMouse {
sync);

@override
Future up(int button,
Future up(MouseButton button,
{_WebElementPageLoaderElement eventTarget, bool sync: true}) =>
loader.executeSynced(() {
if (eventTarget == null) {
Expand All @@ -93,12 +93,12 @@ class _WebDriverMouse implements PageLoaderMouse {
}
}, sync);

Future _fireEvent(
_WebElementPageLoaderElement eventTarget, String type, int button) =>
Future _fireEvent(_WebElementPageLoaderElement eventTarget, String type,
MouseButton button) =>
driver.execute(
"arguments[0].dispatchEvent(new MouseEvent(arguments[1], "
"{'button' : arguments[2]}));",
[eventTarget.context, type, button]);
[eventTarget.context, type, button.value]);
}

abstract class WebDriverPageLoaderElement implements PageLoaderElement {
Expand Down
4 changes: 2 additions & 2 deletions dart/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: pageloader
version: 2.0.0-pre.12
version: 2.0.0-pre.13
author: Marc Fisher II <[email protected]>
description: >
Supports the creation of page objects that can be shared between in-browser tests
Expand All @@ -12,7 +12,7 @@ dependencies:
stack_trace: '^1.3.4'
sync_webdriver: '^2.0.0-pre.0'
unittest: '^0.11.6+1'
webdriver: '^0.10.0-pre.13'
webdriver: '^0.10.0-pre.15'
dev_dependencies:
path: '^1.3.6'
test: '^0.12.3+9'
8 changes: 4 additions & 4 deletions dart/test/async/src/mouse.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ void runTests() {
await loader.mouse.moveTo(page.element, 2, 2);
await waitFor(() => page.element.visibleText,
matcher: contains('MouseMove'));
await loader.mouse.down(0);
await loader.mouse.down(MouseButton.primary);
await waitFor(() => page.element.visibleText,
matcher: contains('MouseDown'));
await loader.mouse.moveTo(page.element, 10, 10);
await loader.mouse.up(0);
await loader.mouse.up(MouseButton.primary);
await waitFor(() => page.element.visibleText,
matcher: contains('MouseUp'));
},
Expand All @@ -43,11 +43,11 @@ void runTests() {

// make sure mouse is not on element;
await loader.mouse.moveTo(page.element, -10, -10);
await loader.mouse.down(0, eventTarget: page.element);
await loader.mouse.down(MouseButton.primary, eventTarget: page.element);
await waitFor(() => page.element.visibleText,
matcher: contains('MouseDown'));
await loader.mouse.moveTo(page.element, 200, 200);
await loader.mouse..up(0, eventTarget: page.element);
await loader.mouse..up(MouseButton.primary, eventTarget: page.element);
await waitFor(() => page.element.visibleText,
matcher: contains('MouseUp'));
});
Expand Down

0 comments on commit a42d18f

Please sign in to comment.