ToggleFieldTest.php 2.0 KB

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