Skip to content
This repository was archived by the owner on Mar 4, 2020. It is now read-only.

Commit 212ab1f

Browse files
authored
Merge pull request #679 from OndraM/feature/w3c-window
Add W3C window size and position commands
2 parents 634b296 + c7ee5e1 commit 212ab1f

File tree

2 files changed

+94
-2
lines changed

2 files changed

+94
-2
lines changed

lib/Remote/HttpCommandExecutor.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,9 @@ class HttpCommandExecutor implements WebDriverCommandExecutor
144144
DriverCommand::ACCEPT_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/alert/accept'],
145145
DriverCommand::ACTIONS => ['method' => 'POST', 'url' => '/session/:sessionId/actions'],
146146
DriverCommand::DISMISS_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/alert/dismiss'],
147-
DriverCommand::EXECUTE_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/sync'],
148147
DriverCommand::EXECUTE_ASYNC_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/async'],
148+
DriverCommand::EXECUTE_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/sync'],
149+
DriverCommand::GET_ALERT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/alert/text'],
149150
DriverCommand::GET_CURRENT_WINDOW_HANDLE => ['method' => 'GET', 'url' => '/session/:sessionId/window'],
150151
DriverCommand::GET_ELEMENT_LOCATION => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/rect'],
151152
DriverCommand::GET_ELEMENT_PROPERTY => [
@@ -154,11 +155,15 @@ class HttpCommandExecutor implements WebDriverCommandExecutor
154155
],
155156
DriverCommand::GET_ELEMENT_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/rect'],
156157
DriverCommand::GET_WINDOW_HANDLES => ['method' => 'GET', 'url' => '/session/:sessionId/window/handles'],
157-
DriverCommand::GET_ALERT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/alert/text'],
158+
DriverCommand::GET_WINDOW_POSITION => ['method' => 'GET', 'url' => '/session/:sessionId/window/rect'],
159+
DriverCommand::GET_WINDOW_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/window/rect'],
158160
DriverCommand::IMPLICITLY_WAIT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'],
161+
DriverCommand::MAXIMIZE_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/maximize'],
159162
DriverCommand::SET_ALERT_VALUE => ['method' => 'POST', 'url' => '/session/:sessionId/alert/text'],
160163
DriverCommand::SET_SCRIPT_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'],
161164
DriverCommand::SET_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'],
165+
DriverCommand::SET_WINDOW_SIZE => ['method' => 'POST', 'url' => '/session/:sessionId/window/rect'],
166+
DriverCommand::SET_WINDOW_POSITION => ['method' => 'POST', 'url' => '/session/:sessionId/window/rect'],
162167
];
163168
/**
164169
* @var string
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
3+
namespace Facebook\WebDriver;
4+
5+
/**
6+
* @covers \Facebook\WebDriver\WebDriverWindow
7+
*/
8+
class WebDriverWindowTest extends WebDriverTestCase
9+
{
10+
/**
11+
* @group exclude-saucelabs
12+
*/
13+
public function testShouldGetPosition()
14+
{
15+
$position = $this->driver->manage()
16+
->window()
17+
->getPosition();
18+
19+
$this->assertGreaterThanOrEqual(0, $position->getX());
20+
$this->assertGreaterThanOrEqual(0, $position->getY());
21+
}
22+
23+
public function testShouldGetSize()
24+
{
25+
$size = $this->driver->manage()
26+
->window()
27+
->getSize();
28+
29+
$this->assertGreaterThan(0, $size->getWidth());
30+
$this->assertGreaterThan(0, $size->getHeight());
31+
}
32+
33+
public function testShouldMaximizeWindow()
34+
{
35+
$sizeBefore = $this->driver->manage()
36+
->window()
37+
->getSize();
38+
39+
$this->driver->manage()
40+
->window()
41+
->maximize();
42+
43+
$sizeAfter = $this->driver->manage()
44+
->window()
45+
->getSize();
46+
47+
$this->assertGreaterThanOrEqual($sizeBefore->getWidth(), $sizeAfter->getWidth());
48+
$this->assertGreaterThanOrEqual($sizeBefore->getHeight(), $sizeAfter->getHeight());
49+
}
50+
51+
/**
52+
* @group exclude-saucelabs
53+
*/
54+
public function testShouldSetSize()
55+
{
56+
$sizeBefore = $this->driver->manage()
57+
->window()
58+
->getSize();
59+
$this->assertNotSame(500, $sizeBefore->getWidth());
60+
$this->assertNotSame(666, $sizeBefore->getHeight());
61+
62+
$this->driver->manage()
63+
->window()
64+
->setSize(new WebDriverDimension(500, 666));
65+
66+
$sizeAfter = $this->driver->manage()
67+
->window()
68+
->getSize();
69+
70+
$this->assertSame(500, $sizeAfter->getWidth());
71+
$this->assertSame(666, $sizeAfter->getHeight());
72+
}
73+
74+
public function testShouldSetWindowPosition()
75+
{
76+
$this->driver->manage()
77+
->window()
78+
->setPosition(new WebDriverPoint(33, 66));
79+
80+
$positionAfter = $this->driver->manage()
81+
->window()
82+
->getPosition();
83+
84+
$this->assertSame(33, $positionAfter->getX());
85+
$this->assertSame(66, $positionAfter->getY());
86+
}
87+
}

0 commit comments

Comments
 (0)