This repository has been archived on 2025-01-19. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
drupalcampbristol/vendor/jcalderonzumba/mink-phantomjs-driver/src/WindowTrait.php

64 lines
1.5 KiB
PHP

<?php
namespace Zumba\Mink\Driver;
use Behat\Mink\Exception\DriverException;
/**
* Class WindowTrait
* @package Zumba\Mink\Driver
*/
trait WindowTrait {
/**
* Returns the current page window name
* @return string
*/
public function getWindowName() {
return $this->browser->windowName();
}
/**
* Return all the window handles currently present in phantomjs
* @return array
*/
public function getWindowNames() {
return $this->browser->windowHandles();
}
/**
* Switches to window by name if possible
* @param $name
* @throws DriverException
*/
public function switchToWindow($name = null) {
$handles = $this->browser->windowHandles();
if ($name === null) {
//null means back to the main window
return $this->browser->switchToWindow($handles[0]);
}
$windowHandle = $this->browser->windowHandle($name);
if (!empty($windowHandle)) {
$this->browser->switchToWindow($windowHandle);
} else {
throw new DriverException("Could not find window handle by a given window name: $name");
}
}
/**
* Resizing a window with specified size
* @param int $width
* @param int $height
* @param string $name
* @throws DriverException
*/
public function resizeWindow($width, $height, $name = null) {
if ($name !== null) {
//TODO: add this on the phantomjs stuff
throw new DriverException("Resizing other window than the main one is not supported yet");
}
$this->browser->resize($width, $height);
}
}