You are here

public function ChoiceFormFieldTest::testRadioButtons in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/dom-crawler/Tests/Field/ChoiceFormFieldTest.php \Symfony\Component\DomCrawler\Tests\Field\ChoiceFormFieldTest::testRadioButtons()

File

vendor/symfony/dom-crawler/Tests/Field/ChoiceFormFieldTest.php, line 152

Class

ChoiceFormFieldTest

Namespace

Symfony\Component\DomCrawler\Tests\Field

Code

public function testRadioButtons() {
  $node = $this
    ->createNode('input', '', array(
    'type' => 'radio',
    'name' => 'name',
    'value' => 'foo',
  ));
  $field = new ChoiceFormField($node);
  $node = $this
    ->createNode('input', '', array(
    'type' => 'radio',
    'name' => 'name',
    'value' => 'bar',
  ));
  $field
    ->addChoice($node);
  $this
    ->assertFalse($field
    ->hasValue(), '->hasValue() returns false when no radio button is selected');
  $this
    ->assertNull($field
    ->getValue(), '->getValue() returns null if no radio button is selected');
  $this
    ->assertFalse($field
    ->isMultiple(), '->isMultiple() returns false for radio buttons');
  $node = $this
    ->createNode('input', '', array(
    'type' => 'radio',
    'name' => 'name',
    'value' => 'foo',
  ));
  $field = new ChoiceFormField($node);
  $node = $this
    ->createNode('input', '', array(
    'type' => 'radio',
    'name' => 'name',
    'value' => 'bar',
    'checked' => 'checked',
  ));
  $field
    ->addChoice($node);
  $this
    ->assertTrue($field
    ->hasValue(), '->hasValue() returns true when a radio button is selected');
  $this
    ->assertEquals('bar', $field
    ->getValue(), '->getValue() returns the value attribute of the selected radio button');
  $field
    ->setValue('foo');
  $this
    ->assertEquals('foo', $field
    ->getValue(), '->setValue() changes the selected radio button');
  try {
    $field
      ->setValue('foobar');
    $this
      ->fail('->setValue() throws an \\InvalidArgumentException if the value is not one of the radio button values');
  } catch (\InvalidArgumentException $e) {
    $this
      ->assertTrue(true, '->setValue() throws an \\InvalidArgumentException if the value is not one of the radio button values');
  }
}