129 lines
3.7 KiB
PHP
129 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace Behat\Mink\Tests\Driver\Form;
|
|
|
|
use Behat\Mink\Tests\Driver\TestCase;
|
|
|
|
class Html5Test extends TestCase
|
|
{
|
|
public function testHtml5FormInputAttribute()
|
|
{
|
|
$this->getSession()->visit($this->pathTo('/html5_form.html'));
|
|
$page = $this->getSession()->getPage();
|
|
$webAssert = $this->getAssertSession();
|
|
|
|
$firstName = $webAssert->fieldExists('first_name');
|
|
$lastName = $webAssert->fieldExists('last_name');
|
|
|
|
$this->assertEquals('not set', $lastName->getValue());
|
|
$firstName->setValue('John');
|
|
$lastName->setValue('Doe');
|
|
|
|
$this->assertEquals('Doe', $lastName->getValue());
|
|
|
|
$page->pressButton('Submit in form');
|
|
|
|
if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
|
|
$out = <<<OUT
|
|
'first_name' = 'John',
|
|
'last_name' = 'Doe',
|
|
OUT;
|
|
$this->assertContains($out, $page->getContent());
|
|
$this->assertNotContains('other_field', $page->getContent());
|
|
}
|
|
}
|
|
|
|
public function testHtml5FormRadioAttribute()
|
|
{
|
|
$this->getSession()->visit($this->pathTo('html5_radio.html'));
|
|
$page = $this->getSession()->getPage();
|
|
|
|
$radio = $this->findById('sex_f');
|
|
$otherRadio = $this->findById('sex_invalid');
|
|
|
|
$this->assertEquals('f', $radio->getValue());
|
|
$this->assertEquals('invalid', $otherRadio->getValue());
|
|
|
|
$radio->selectOption('m');
|
|
|
|
$this->assertEquals('m', $radio->getValue());
|
|
$this->assertEquals('invalid', $otherRadio->getValue());
|
|
|
|
$page->pressButton('Submit in form');
|
|
|
|
$out = <<<OUT
|
|
'sex' = 'm',
|
|
OUT;
|
|
$this->assertContains($out, $page->getContent());
|
|
}
|
|
|
|
public function testHtml5FormButtonAttribute()
|
|
{
|
|
$this->getSession()->visit($this->pathTo('/html5_form.html'));
|
|
$page = $this->getSession()->getPage();
|
|
$webAssert = $this->getAssertSession();
|
|
|
|
$firstName = $webAssert->fieldExists('first_name');
|
|
$lastName = $webAssert->fieldExists('last_name');
|
|
|
|
$firstName->setValue('John');
|
|
$lastName->setValue('Doe');
|
|
|
|
$page->pressButton('Submit outside form');
|
|
|
|
if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
|
|
$out = <<<OUT
|
|
'first_name' = 'John',
|
|
'last_name' = 'Doe',
|
|
'submit_button' = 'test',
|
|
OUT;
|
|
$this->assertContains($out, $page->getContent());
|
|
}
|
|
}
|
|
|
|
public function testHtml5FormOutside()
|
|
{
|
|
$this->getSession()->visit($this->pathTo('/html5_form.html'));
|
|
$page = $this->getSession()->getPage();
|
|
|
|
$page->fillField('other_field', 'hello');
|
|
|
|
$page->pressButton('Submit separate form');
|
|
|
|
if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
|
|
$out = <<<OUT
|
|
'other_field' = 'hello',
|
|
OUT;
|
|
$this->assertContains($out, $page->getContent());
|
|
$this->assertNotContains('first_name', $page->getContent());
|
|
}
|
|
}
|
|
|
|
public function testHtml5Types()
|
|
{
|
|
$this->getSession()->visit($this->pathTo('html5_types.html'));
|
|
$page = $this->getSession()->getPage();
|
|
|
|
$page->fillField('url', 'http://mink.behat.org/');
|
|
$page->fillField('email', 'mink@example.org');
|
|
$page->fillField('number', '6');
|
|
$page->fillField('search', 'mink');
|
|
$page->fillField('date', '2014-05-19');
|
|
$page->fillField('color', '#ff00aa');
|
|
|
|
$page->pressButton('Submit');
|
|
|
|
$out = <<<OUT
|
|
'color' = '#ff00aa',
|
|
'date' = '2014-05-19',
|
|
'email' = 'mink@example.org',
|
|
'number' = '6',
|
|
'search' = 'mink',
|
|
'submit_button' = 'Submit',
|
|
'url' = 'http://mink.behat.org/',
|
|
OUT;
|
|
|
|
$this->assertContains($out, $page->getContent());
|
|
}
|
|
}
|