PageRenderTime 49ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/Zap/FormFieldTest.php

https://github.com/cmhudson/zap
PHP | 298 lines | 215 code | 83 blank | 0 comment | 0 complexity | 39e515dd9a142eb952c6d52e8adf373b MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. require_once 'PHPUnit/Autoload.php';
  3. require_once dirname(dirname(__FILE__)) . '/bootstrap.php';
  4. class Zap_FormFieldTest extends PHPUnit_Framework_TestCase
  5. {
  6. protected $_formField;
  7. public function setUp()
  8. {
  9. $this->_formField = new Zap_FormField();
  10. }
  11. public function tearDown()
  12. {
  13. unset($this->_formField);
  14. }
  15. public function testInvisibleDisplay()
  16. {
  17. $this->_formField->setVisible(false);
  18. ob_start();
  19. $this->_formField->display();
  20. $out = trim(ob_get_clean());
  21. $this->assertEquals('', $out);
  22. }
  23. public function testDisplayWithNoChildren()
  24. {
  25. ob_start();
  26. $this->_formField->display();
  27. $out = trim(ob_get_clean());
  28. $this->assertEquals('', $out);
  29. }
  30. public function testDisplayWithEntry()
  31. {
  32. $entry = new Zap_Entry('foo');
  33. $this->_formField->add($entry);
  34. ob_start();
  35. $this->_formField->display();
  36. $out = ob_get_clean();
  37. $this->assertContains('swat-entry', $out);
  38. }
  39. public function testDisplayWithRequiredEntry()
  40. {
  41. $entry = new Zap_Entry('foo');
  42. $entry->setRequired(true);
  43. $this->_formField->setTitle('Foobar')
  44. ->add($entry);
  45. ob_start();
  46. $this->_formField->display();
  47. $out = ob_get_clean();
  48. $this->assertContains('swat-required', $out);
  49. }
  50. public function testDisplayWithOptionalEntry()
  51. {
  52. $entry = new Zap_Entry('foo');
  53. $this->_formField->setTitle('Foobar')
  54. ->setRequiredStatusDisplay(Zap_FormField::DISPLAY_OPTIONAL)
  55. ->add($entry);
  56. ob_start();
  57. $this->_formField->display();
  58. $out = ob_get_clean();
  59. $this->assertContains('swat-optional', $out);
  60. }
  61. public function testSetTitle()
  62. {
  63. $this->_formField->setTitle('Test');
  64. $this->assertEquals('Test', $this->_formField->getTitle());
  65. }
  66. public function testDisplayNote()
  67. {
  68. $entry = new Zap_Entry('foo');
  69. $this->_formField->setNote('NOTETEST')
  70. ->add($entry);
  71. ob_start();
  72. $this->_formField->display();
  73. $out = ob_get_clean();
  74. $this->assertContains('swat-note', $out);
  75. $this->assertContains('NOTETEST', $out);
  76. }
  77. public function testDisplayTitleReversed()
  78. {
  79. $entry = new Zap_Entry('foo');
  80. $this->_formField->setTitle('TITLETEST')
  81. ->add($entry);
  82. ob_start();
  83. $this->_formField->display();
  84. $normal = ob_get_clean();
  85. $this->_formField->setTitleReversed(true);
  86. ob_start();
  87. $this->_formField->display();
  88. $reversed = ob_get_clean();
  89. $this->assertNotEquals($normal, $reversed);
  90. }
  91. public function testControlWithNote()
  92. {
  93. $entry = $this->getMock('Zap_Entry');
  94. $entry->expects($this->any())
  95. ->method('getNote')
  96. ->will($this->returnValue(new Zap_Message('TESTCONTROLNOTE')));
  97. $this->_formField->setTitle('TITLETEST')
  98. ->setNote('TESTFIELDNOTE')
  99. ->add($entry);
  100. ob_start();
  101. $this->_formField->display();
  102. $out = ob_get_clean();
  103. $this->assertContains('TESTFIELDNOTE', $out);
  104. $this->assertContains('TESTCONTROLNOTE', $out);
  105. }
  106. public function testSetShowColon()
  107. {
  108. $this->_formField->setShowColon(false);
  109. $this->assertFalse($this->_formField->getShowColon());
  110. }
  111. public function testDislayNoColon()
  112. {
  113. $entry = new Zap_Entry();
  114. $this->_formField->setTitle('TITLETEST')
  115. ->setShowColon(false)
  116. ->add($entry);
  117. ob_start();
  118. $this->_formField->display();
  119. $out = ob_get_clean();
  120. $this->assertNotContains(':', $out);
  121. }
  122. public function testSetNote()
  123. {
  124. $this->_formField->setNote('NOTE');
  125. $this->assertEquals('NOTE', $this->_formField->getNote());
  126. }
  127. public function testSetTitleReversed()
  128. {
  129. $this->_formField->setTitleReversed(true);
  130. $this->assertTrue($this->_formField->getTitleReversed());
  131. }
  132. public function testAddCheckbox()
  133. {
  134. $checkbox = new Zap_Checkbox();
  135. $this->_formField->add($checkbox);
  136. $this->assertTrue($this->_formField->getTitleReversed());
  137. $this->assertFalse($this->_formField->getShowColon());
  138. }
  139. public function testMessages()
  140. {
  141. $form = new Zap_Form();
  142. $form->add($this->_formField);
  143. $checkbox = new Zap_Checkbox();
  144. $checkbox->addMessage(
  145. new Zap_Message('CHECKBOXMESSAGE')
  146. );
  147. $this->_formField->add($checkbox);
  148. $this->_formField->process();
  149. ob_start();
  150. $form->display();
  151. $out = ob_get_clean();
  152. $this->assertContains('CHECKBOXMESSAGE', $out);
  153. }
  154. public function testMessageWithNoTitle()
  155. {
  156. $form = new Zap_Form();
  157. $form->add($this->_formField);
  158. $checkbox = new Zap_Checkbox();
  159. $this->_formField->add($checkbox);
  160. $checkbox->addMessage(
  161. new Zap_Message('CHECKBOXMESSAGE')
  162. );
  163. $this->_formField->process();
  164. ob_start();
  165. $form->display();
  166. $out = ob_get_clean();
  167. $this->assertContains('CHECKBOXMESSAGE', $out);
  168. }
  169. public function testMessageWithXmlTitle()
  170. {
  171. $form = new Zap_Form();
  172. $form->add($this->_formField);
  173. $checkbox = new Zap_Checkbox();
  174. $this->_formField->setTitle('<em>Test</em>')
  175. ->setTitleContentType('text/xml')
  176. ->add($checkbox);
  177. $checkbox->addMessage(
  178. new Zap_Message('CHECKBOXMESSAGE')
  179. );
  180. $this->_formField->process();
  181. ob_start();
  182. $form->display();
  183. $out = ob_get_clean();
  184. $this->assertContains('CHECKBOXMESSAGE', $out);
  185. $this->assertContains('<em>Test</em>', $out);
  186. }
  187. public function testMessageWithSecondaryContent()
  188. {
  189. $form = new Zap_Form();
  190. $form->add($this->_formField);
  191. $message = new Zap_Message('CHECKBOXMESSAGE');
  192. $message->setSecondaryContent('SECONDARY');
  193. $checkbox = new Zap_Checkbox();
  194. $this->_formField->setTitle('TESTFIELD')
  195. ->add($checkbox);
  196. $checkbox->addMessage($message);
  197. $this->_formField->process();
  198. ob_start();
  199. $form->display();
  200. $out = ob_get_clean();
  201. $this->assertContains('CHECKBOXMESSAGE', $out);
  202. $this->assertContains('SECONDARY', $out);
  203. }
  204. public function testSetTitleContentType()
  205. {
  206. $this->_formField->setTitleContentType('text/xml');
  207. $this->assertEquals('text/xml', $this->_formField->getTitleContentType());
  208. }
  209. public function testSearchEntry()
  210. {
  211. $entry = new Zap_SearchEntry('search');
  212. $this->_formField->add($entry);
  213. $this->assertFalse($this->_formField->getShowColon());
  214. }
  215. }