Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Added tests for the handling of radio buttons in the driver suite
Browse files Browse the repository at this point in the history
  • Loading branch information
stof committed May 16, 2014
1 parent 187d21e commit a690e5b
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
76 changes: 76 additions & 0 deletions driver-testsuite/tests/Form/RadioTest.php
@@ -0,0 +1,76 @@
<?php

namespace Behat\Mink\Tests\Driver\Form;

use Behat\Mink\Tests\Driver\TestCase;

class RadioTest extends TestCase
{
protected function setUp()
{
$this->getSession()->visit($this->pathTo('radio.html'));
}

public function testIsChecked()
{
$option = $this->getSession()->getPage()->findById('first');
$option2 = $this->getSession()->getPage()->findById('second');

$this->assertNotNull($option);
$this->assertNotNull($option2);

$this->assertTrue($option->isChecked());
$this->assertFalse($option2->isChecked());

$option2->selectOption('updated');

$this->assertFalse($option->isChecked());
$this->assertTrue($option2->isChecked());
}

public function testSelectOption()
{
$option = $this->getSession()->getPage()->findById('first');
$this->assertNotNull($option);

$this->assertEquals('set', $option->getValue());

$option->selectOption('updated');

$this->assertEquals('updated', $option->getValue());

$option->selectOption('set');

$this->assertEquals('set', $option->getValue());
}

public function testSetValue()
{
$option = $this->getSession()->getPage()->findById('first');
$this->assertNotNull($option);

$this->assertEquals('set', $option->getValue());

$option->setValue('updated');

$this->assertEquals('updated', $option->getValue());
$this->assertFalse($option->isChecked());
}

public function testSameNameInMultipleForms()
{
$option1 = $this->getSession()->getPage()->findById('reused_form1');
$option2 = $this->getSession()->getPage()->findById('reused_form2');

$this->assertNotNull($option1);
$this->assertNotNull($option2);

$this->assertEquals('test2', $option1->getValue());
$this->assertEquals('test3', $option2->getValue());

$option1->selectOption('test');

$this->assertEquals('test', $option1->getValue());
$this->assertEquals('test3', $option2->getValue());
}
}
21 changes: 21 additions & 0 deletions driver-testsuite/web-fixtures/radio.html
@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Radio group</title>
</head>
<body>
<form id="form1">
<input name="group1" type="radio" value="set" id="first" checked="checked">
<input name="group1" type="radio" value="updated" id="second">

<input name="reused" type="radio" value="test" id="reused_form1">
<input name="reused" type="radio" value="test2" id="reused2_form1" checked="checked">
</form>

<form id="form2">
<input name="reused" type="radio" value="test3" id="reused_form2" checked="checked">
<input name="reused" type="radio" value="test4" id="reused2_form2">
</form>
</body>
</html>

0 comments on commit a690e5b

Please sign in to comment.