Skip to content

Instantly share code, notes, and snippets.

@norberttech
Created June 6, 2013 10:23
Show Gist options
  • Save norberttech/5720593 to your computer and use it in GitHub Desktop.
Save norberttech/5720593 to your computer and use it in GitHub Desktop.
PageObject Element created by parameters.
<?php
namespace FSi\Bundle\DemoBundle\Behat\Page\Element;
use SensioLabs\Behat\PageObjectExtension\PageObject\Element;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\UnexpectedPageException;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
abstract class AbstractCreateForm extends Element
{
public function getHeaderText()
{
$header = $this->find('css', '#form_header');
if (!isset($header)) {
throw new UnexpectedPageException('Cant find header in form.');
}
return $header->getText();
}
}
<?php
namespace FSi\Bundle\DemoBundle\Behat\Page;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\UnexpectedPageException;
use SensioLabs\Behat\PageObjectExtension\PageObject\Page;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
class ArticleCreate extends Page
{
/**
* @var string
*/
protected $path = '/article/create';
/**
* @return \FSi\Bundle\CompanySiteBundle\Behat\Page\Element\Admin\ArticleCreateForm
*/
public function getForm()
{
return $this->getElement('Article Create Form');
}
}
<?php
namespace FSi\Bundle\DemoBundle\Behat\Page\Element;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
class ArticleCreateForm extends AbstractCreateForm
{
/**
* @var array
*/
protected $selector = array('css' => 'form#article_create');
}
<?php
namespace FSi\Bundle\DemoBundle\Behat\Page;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\UnexpectedPageException;
use SensioLabs\Behat\PageObjectExtension\PageObject\Page;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
class CategoryCreate extends Page
{
/**
* @var string
*/
protected $path = '/category/create';
/**
* @return \FSi\Bundle\CompanySiteBundle\Behat\Page\Element\Admin\ArticleCreateForm
*/
public function getForm()
{
return $this->getElement('Category Create Form');
}
}
<?php
namespace FSi\Bundle\DemoBundle\Behat\Page\Element;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
class CategoryCreateForm extends AbstractCreateForm
{
/**
* @var array
*/
protected $selector = array('css' => 'form#category_create');
}
<?php
namespace FSi\Bundle\DemoBundle\Behat;
use SensioLabs\Behat\PageObjectExtension\Context\PageObjectContext;
/**
* @author Norbert Orzechowicz <norbert@fsi.pl>
*/
class WebContext extends PageObjectContext
{
public function iShouldSeeFormsWithValidHeaders()
{
$articleCreate = $this->getPage('Article Create')->getForm();
$categoryCreate = $this->getPage('Category Create')->getForm();
expect($articleCreate->getHeaderText())->toBe("Create new article");
expect($categoryCreate->getHeaderText())->toBe("Create new category");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment