Mercurial > hg > isophonics-drupal-site
diff vendor/jcalderonzumba/mink-phantomjs-driver/src/WindowTrait.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/jcalderonzumba/mink-phantomjs-driver/src/WindowTrait.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,64 @@ +<?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); + } + +}