ToggleFieldTest.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Symfony\Tests\Components\Form;
  3. require_once __DIR__ . '/Fixtures/TestToggleField.php';
  4. use Symfony\Tests\Components\Form\Fixtures\TestToggleField;
  5. class ToggleFieldTest extends \PHPUnit_Framework_TestCase
  6. {
  7. public function testRender_selected()
  8. {
  9. $field = new TestToggleField('name');
  10. $field->setData(true);
  11. $html = '<input id="name" name="name" checked="checked" class="foobar" />';
  12. $this->assertEquals($html, $field->render(array(
  13. 'class' => 'foobar',
  14. )));
  15. }
  16. public function testRender_deselected()
  17. {
  18. $field = new TestToggleField('name');
  19. $field->setData(false);
  20. $html = '<input id="name" name="name" />';
  21. $this->assertEquals($html, $field->render());
  22. }
  23. public function testRender_withValue()
  24. {
  25. $field = new TestToggleField('name', array('value' => 'foobar'));
  26. $html = '<input id="name" name="name" value="foobar" />';
  27. $this->assertEquals($html, $field->render());
  28. }
  29. public function testRender_withLabel()
  30. {
  31. $field = new TestToggleField('name', array('label' => 'foobar'));
  32. $html = '<input id="name" name="name" /> <label for="name">foobar</label>';
  33. $this->assertEquals($html, $field->render());
  34. }
  35. public function testRender_withTranslatedLabel()
  36. {
  37. $translator = $this->getMock('Symfony\Components\I18N\TranslatorInterface');
  38. $translator->expects($this->any())
  39. ->method('translate')
  40. ->will($this->returnCallback(function($text) {
  41. return 'translated['.$text.']';
  42. }));
  43. $field = new TestToggleField('name', array('label' => 'foobar', 'translate_label' => true));
  44. $field->setTranslator($translator);
  45. $html = '<input id="name" name="name" /> <label for="name">translated[foobar]</label>';
  46. $this->assertEquals($html, $field->render());
  47. }
  48. }