forked from php-webdriver/php-webdriver
-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathActionChainsTest.php
More file actions
107 lines (83 loc) · 3.38 KB
/
ActionChainsTest.php
File metadata and controls
107 lines (83 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
require_once(dirname(__FILE__) . '/../PHPWebDriver/WebDriver.php');
require_once(dirname(__FILE__) . '/../PHPWebDriver/WebDriverActionChains.php');
require_once(dirname(__FILE__) . '/../PHPWebDriver/WebDriverBy.php');
require_once(dirname(__FILE__) . '/../PHPWebDriver/WebDriverKeys.php');
class ActionChainsTest extends PHPUnit_Framework_TestCase {
protected static $session;
public function setUp() {
$driver = new PHPWebDriver_WebDriver();
self::$session = $driver->session('chrome');
}
public function tearDown() {
self::$session->close();
}
/**
* @group chains
*/
public function testDragAndDrop() {
self::$session->open("http://jqueryui.com/droppable");
$iframe = self::$session->element(PHPWebDriver_WebDriverBy::CSS_SELECTOR, ".demo-frame");
self::$session->switch_to_frame($iframe);
$draggable = self::$session->element(PHPWebDriver_WebDriverBy::ID, "draggable");
$droppable = self::$session->element(PHPWebDriver_WebDriverBy::ID, "droppable");
$chain = new PHPWebDriver_WebDriverActionChains(self::$session);
$chain->dragAndDrop($draggable, $droppable);
$chain->perform();
$dropped = self::$session->element(PHPWebDriver_WebDriverBy::ID, "droppable");
$this->AssertEquals($dropped->text(), 'Dropped!');
}
/**
* @group chains
*/
public function testRightClick() {
self::$session->open("http://www.javascripttoolbox.com/lib/contextmenu");
$default_theme = self::$session->element(PHPWebDriver_WebDriverBy::XPATH, '//div[text()="Default Theme"]');
$chain = new PHPWebDriver_WebDriverActionChains(self::$session);
$chain->contextClick($default_theme);
$chain->perform();
// this needs a better page, and an assert
}
/**
* @group chains
*/
public function testDragAndDropByOffset() {
self::$session->open("http://jqueryui.com/droppable");
$iframe = self::$session->element(PHPWebDriver_WebDriverBy::CSS_SELECTOR, ".demo-frame");
self::$session->switch_to_frame($iframe);
$draggable = self::$session->element(PHPWebDriver_WebDriverBy::ID, "draggable");
$droppable = self::$session->element(PHPWebDriver_WebDriverBy::ID, "droppable");
$chain = new PHPWebDriver_WebDriverActionChains(self::$session);
$chain->dragAndDropByOffset($draggable, $droppable, 450, -15);
$chain->perform();
$dropped = self::$session->element(PHPWebDriver_WebDriverBy::ID, "droppable");
$this->AssertEquals($dropped->text(), 'Dropped!');
}
/**
* @group chains
*/
public function testTypingWithModifiers() {
self::$session->open("http://pastebin.com/");
$paste = self::$session->element(PHPWebDriver_WebDriverBy::ID, "paste_code");
$paste->click();
$chain = new PHPWebDriver_WebDriverActionChains(self::$session);
$chain->keyDown(new PHPWebDriver_WebDriverKeys('ShiftKey'), array(CURLOPT_VERBOSE => true));
$chain->sendKeys('monkey');
$chain->keyUp(new PHPWebDriver_WebDriverKeys('ShiftKey'));
$chain->sendKeys(' butt!');
$chain->perform();
}
/**
* @group chains
* @group elephant
*/
public function testTypingAtElement() {
self::$session->open("http://pastebin.com/");
$paste = self::$session->element(PHPWebDriver_WebDriverBy::ID, "paste_code");
$chain = new PHPWebDriver_WebDriverActionChains(self::$session);
$chain->sendKeysToElement($paste, 'monkey');
$chain->perform();
sleep(3);
}
}
?>