PHPonTraxTest
[ class tree: PHPonTraxTest ] [ index: PHPonTraxTest ] [ all elements ]

Source for file DateHelperTest.php

Documentation is available at DateHelperTest.php

  1. <?php
  2. /**
  3. * File for the DateHelperTest class
  4. *
  5. * (PHP 5)
  6. *
  7. * @package PHPonTraxTest
  8. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  9. * @copyright (c) Walter O. Haas 2006
  10. * @version $Id: DateHelperTest.php 198 2006-04-20 16:20:30Z haas $
  11. * @author Walt Haas <haas@xmission.com>
  12. */
  13.  
  14. echo "testing DateHelper\n";
  15. require_once 'testenv.php';
  16.  
  17. // Call DateHelperTest::main() if this source file is executed directly.
  18. if (!defined("PHPUnit2_MAIN_METHOD")) {
  19. define("PHPUnit2_MAIN_METHOD", "DateHelperTest::main");
  20. }
  21.  
  22. require_once "PHPUnit2/Framework/TestCase.php";
  23. require_once "PHPUnit2/Framework/TestSuite.php";
  24.  
  25. // You may remove the following line when all tests have been implemented.
  26. require_once "PHPUnit2/Framework/IncompleteTestError.php";
  27.  
  28. // Create an ActiveRecord and an ActionController to test with
  29. @ini_set('include_path',
  30. './mockActiveRecord:./mockActionController:'.ini_get('include_path'));
  31. require_once "active_record.php";
  32. require_once "action_controller.php";
  33. require_once "trax_exceptions.php";
  34. require_once "action_view/helpers.php";
  35. require_once "action_view/helpers/date_helper.php";
  36.  
  37. /**
  38. * Extend the DateHelper class so we can access protected stuff
  39. */
  40. class ExDateHelper extends DateHelper
  41. {
  42. function value() {
  43. return parent::value();
  44. }
  45. }
  46.  
  47.  
  48. /**
  49. * Test class for DateHelper.
  50. * Generated by PHPUnit2_Util_Skeleton on 2006-03-01 at 13:17:32.
  51. */
  52. class DateHelperTest extends PHPUnit2_Framework_TestCase {
  53. /**
  54. * Runs the test methods of this class.
  55. *
  56. * @access public
  57. * @static
  58. */
  59. public static function main() {
  60. require_once "PHPUnit2/TextUI/TestRunner.php";
  61.  
  62. $suite = new PHPUnit2_Framework_TestSuite("DateHelperTest");
  63. $result = PHPUnit2_TextUI_TestRunner::run($suite);
  64. }
  65.  
  66. /**
  67. * Sets up the fixture, for example, open a network connection.
  68. * This method is called before a test is executed.
  69. *
  70. * @access protected
  71. */
  72. protected function setUp() {
  73. }
  74.  
  75. /**
  76. * Tears down the fixture, for example, close a network connection.
  77. * This method is called after a test is executed.
  78. *
  79. * @access protected
  80. */
  81. protected function tearDown() {
  82. unset($_REQUEST);
  83. }
  84.  
  85. /**
  86. * Test __construct()
  87. *
  88. * Test the {@link DateHelper::__construct() constructor}
  89. */
  90. public function testConstruct() {
  91. $dh = new DateHelper('Foo', 'bar');
  92. $this->assertEquals('Foo', $dh->object_name);
  93. $this->assertEquals('bar', $dh->attribute_name);
  94. }
  95.  
  96. /**
  97. * Test the expiration_date_select() method
  98. *
  99. * Test the {@link DateHelper::expiration_date_select()} method
  100. */
  101. public function testExpiration_date_select() {
  102. $dh = new DateHelper('License', 'expiration_date');
  103. $_REQUEST['License']['expiration_date(1i)'] = date('Y');
  104. $_REQUEST['License']['expiration_date(2i)'] = '08';
  105.  
  106. // Test expiration date of August this year
  107. $this->assertContains('<option value="'.date('Y').
  108. '" selected="selected"',
  109. $dh->expiration_date_select());
  110. $this->assertContains('<option value="'.(date('Y')+7).'"',
  111. $dh->expiration_date_select());
  112. $this->assertContains('<option value="08" selected="selected">'
  113. . '8</option>',
  114. $dh->expiration_date_select());
  115. }
  116.  
  117. /**
  118. * Test datetime_select() method
  119. *
  120. * Test the {@link DateHelper::datetime_select()} method
  121. */
  122. public function testDatetime_select_method() {
  123. $dh = new DateHelper('Person','birth');
  124. $dh->controller_object = new ActionController;
  125. $ar = new ActiveRecord;
  126. $dh->controller_object->Person = $ar;
  127.  
  128. // With no value in $_REQUEST, data should be
  129. // retrieved from the the ActiveRecord
  130. $ar->expect_query("birth","2001-07-05 11:30:45");
  131. $this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
  132. . '<option value="1996">1996</option>' . "\n"
  133. . '<option value="1997">1997</option>' . "\n"
  134. . '<option value="1998">1998</option>' . "\n"
  135. . '<option value="1999">1999</option>' . "\n"
  136. . '<option value="2000">2000</option>' . "\n"
  137. . '<option value="2001" selected="selected">2001</option>' . "\n"
  138. . '<option value="2002">2002</option>' . "\n"
  139. . '<option value="2003">2003</option>' . "\n"
  140. . '<option value="2004">2004</option>' . "\n"
  141. . '<option value="2005">2005</option>' . "\n"
  142. . '<option value="2006">2006</option>' . "\n"
  143. . '</select>' . "\n"
  144. . '<select name="Person[birth(2i)]">' . "\n"
  145. . '<option value="01">January</option>' . "\n"
  146. . '<option value="02">February</option>' . "\n"
  147. . '<option value="03">March</option>' . "\n"
  148. . '<option value="04">April</option>' . "\n"
  149. . '<option value="05">May</option>' . "\n"
  150. . '<option value="06">June</option>' . "\n"
  151. . '<option value="07" selected="selected">July</option>' . "\n"
  152. . '<option value="08">August</option>' . "\n"
  153. . '<option value="09">September</option>' . "\n"
  154. . '<option value="10">October</option>' . "\n"
  155. . '<option value="11">November</option>' . "\n"
  156. . '<option value="12">December</option>' . "\n"
  157. . '</select>' . "\n"
  158. . '<select name="Person[birth(3i)]">' . "\n"
  159. . '<option value="01">01</option>' . "\n"
  160. . '<option value="02">02</option>' . "\n"
  161. . '<option value="03">03</option>' . "\n"
  162. . '<option value="04">04</option>' . "\n"
  163. . '<option value="05" selected="selected">05</option>' . "\n"
  164. . '<option value="06">06</option>' . "\n"
  165. . '<option value="07">07</option>' . "\n"
  166. . '<option value="08">08</option>' . "\n"
  167. . '<option value="09">09</option>' . "\n"
  168. . '<option value="10">10</option>' . "\n"
  169. . '<option value="11">11</option>' . "\n"
  170. . '<option value="12">12</option>' . "\n"
  171. . '<option value="13">13</option>' . "\n"
  172. . '<option value="14">14</option>' . "\n"
  173. . '<option value="15">15</option>' . "\n"
  174. . '<option value="16">16</option>' . "\n"
  175. . '<option value="17">17</option>' . "\n"
  176. . '<option value="18">18</option>' . "\n"
  177. . '<option value="19">19</option>' . "\n"
  178. . '<option value="20">20</option>' . "\n"
  179. . '<option value="21">21</option>' . "\n"
  180. . '<option value="22">22</option>' . "\n"
  181. . '<option value="23">23</option>' . "\n"
  182. . '<option value="24">24</option>' . "\n"
  183. . '<option value="25">25</option>' . "\n"
  184. . '<option value="26">26</option>' . "\n"
  185. . '<option value="27">27</option>' . "\n"
  186. . '<option value="28">28</option>' . "\n"
  187. . '<option value="29">29</option>' . "\n"
  188. . '<option value="30">30</option>' . "\n"
  189. . '<option value="31">31</option>' . "\n"
  190. . '</select>' . "\n"
  191. . ' &mdash; <select name="Person[birth(4i)]">' . "\n"
  192. . '<option value="00">00</option>' . "\n"
  193. . '<option value="01">01</option>' . "\n"
  194. . '<option value="02">02</option>' . "\n"
  195. . '<option value="03">03</option>' . "\n"
  196. . '<option value="04">04</option>' . "\n"
  197. . '<option value="05">05</option>' . "\n"
  198. . '<option value="06">06</option>' . "\n"
  199. . '<option value="07">07</option>' . "\n"
  200. . '<option value="08">08</option>' . "\n"
  201. . '<option value="09">09</option>' . "\n"
  202. . '<option value="10">10</option>' . "\n"
  203. . '<option value="11" selected="selected">11</option>' . "\n"
  204. . '<option value="12">12</option>' . "\n"
  205. . '<option value="13">13</option>' . "\n"
  206. . '<option value="14">14</option>' . "\n"
  207. . '<option value="15">15</option>' . "\n"
  208. . '<option value="16">16</option>' . "\n"
  209. . '<option value="17">17</option>' . "\n"
  210. . '<option value="18">18</option>' . "\n"
  211. . '<option value="19">19</option>' . "\n"
  212. . '<option value="20">20</option>' . "\n"
  213. . '<option value="21">21</option>' . "\n"
  214. . '<option value="22">22</option>' . "\n"
  215. . '<option value="23">23</option>' . "\n"
  216. . '</select>' . "\n"
  217. . ' : <select name="Person[birth(5i)]">' . "\n"
  218. . '<option value="00">00</option>' . "\n"
  219. . '<option value="01">01</option>' . "\n"
  220. . '<option value="02">02</option>' . "\n"
  221. . '<option value="03">03</option>' . "\n"
  222. . '<option value="04">04</option>' . "\n"
  223. . '<option value="05">05</option>' . "\n"
  224. . '<option value="06">06</option>' . "\n"
  225. . '<option value="07">07</option>' . "\n"
  226. . '<option value="08">08</option>' . "\n"
  227. . '<option value="09">09</option>' . "\n"
  228. . '<option value="10">10</option>' . "\n"
  229. . '<option value="11">11</option>' . "\n"
  230. . '<option value="12">12</option>' . "\n"
  231. . '<option value="13">13</option>' . "\n"
  232. . '<option value="14">14</option>' . "\n"
  233. . '<option value="15">15</option>' . "\n"
  234. . '<option value="16">16</option>' . "\n"
  235. . '<option value="17">17</option>' . "\n"
  236. . '<option value="18">18</option>' . "\n"
  237. . '<option value="19">19</option>' . "\n"
  238. . '<option value="20">20</option>' . "\n"
  239. . '<option value="21">21</option>' . "\n"
  240. . '<option value="22">22</option>' . "\n"
  241. . '<option value="23">23</option>' . "\n"
  242. . '<option value="24">24</option>' . "\n"
  243. . '<option value="25">25</option>' . "\n"
  244. . '<option value="26">26</option>' . "\n"
  245. . '<option value="27">27</option>' . "\n"
  246. . '<option value="28">28</option>' . "\n"
  247. . '<option value="29">29</option>' . "\n"
  248. . '<option value="30" selected="selected">30</option>' . "\n"
  249. . '<option value="31">31</option>' . "\n"
  250. . '<option value="32">32</option>' . "\n"
  251. . '<option value="33">33</option>' . "\n"
  252. . '<option value="34">34</option>' . "\n"
  253. . '<option value="35">35</option>' . "\n"
  254. . '<option value="36">36</option>' . "\n"
  255. . '<option value="37">37</option>' . "\n"
  256. . '<option value="38">38</option>' . "\n"
  257. . '<option value="39">39</option>' . "\n"
  258. . '<option value="40">40</option>' . "\n"
  259. . '<option value="41">41</option>' . "\n"
  260. . '<option value="42">42</option>' . "\n"
  261. . '<option value="43">43</option>' . "\n"
  262. . '<option value="44">44</option>' . "\n"
  263. . '<option value="45">45</option>' . "\n"
  264. . '<option value="46">46</option>' . "\n"
  265. . '<option value="47">47</option>' . "\n"
  266. . '<option value="48">48</option>' . "\n"
  267. . '<option value="49">49</option>' . "\n"
  268. . '<option value="50">50</option>' . "\n"
  269. . '<option value="51">51</option>' . "\n"
  270. . '<option value="52">52</option>' . "\n"
  271. . '<option value="53">53</option>' . "\n"
  272. . '<option value="54">54</option>' . "\n"
  273. . '<option value="55">55</option>' . "\n"
  274. . '<option value="56">56</option>' . "\n"
  275. . '<option value="57">57</option>' . "\n"
  276. . '<option value="58">58</option>' . "\n"
  277. . '<option value="59">59</option>' . "\n"
  278. . '</select>' . "\n",
  279. $dh->datetime_select());
  280. }
  281.  
  282. /**
  283. * Test datetime_select() function
  284. *
  285. * Test the {@link datetime_select()} function in procedural file
  286. * {@link date_helper.php}
  287. */
  288. public function testDatetime_select_function() {
  289.  
  290. // Values from $_REQUEST, default format
  291. $_REQUEST['Person']['birth(1i)'] = '2001';
  292. $_REQUEST['Person']['birth(2i)'] = '07';
  293. $_REQUEST['Person']['birth(3i)'] = '05';
  294. $_REQUEST['Person']['birth(4i)'] = '11';
  295. $_REQUEST['Person']['birth(5i)'] = '30';
  296. $this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
  297. . '<option value="1996">1996</option>' . "\n"
  298. . '<option value="1997">1997</option>' . "\n"
  299. . '<option value="1998">1998</option>' . "\n"
  300. . '<option value="1999">1999</option>' . "\n"
  301. . '<option value="2000">2000</option>' . "\n"
  302. . '<option value="2001" selected="selected">2001</option>' . "\n"
  303. . '<option value="2002">2002</option>' . "\n"
  304. . '<option value="2003">2003</option>' . "\n"
  305. . '<option value="2004">2004</option>' . "\n"
  306. . '<option value="2005">2005</option>' . "\n"
  307. . '<option value="2006">2006</option>' . "\n"
  308. . '</select>' . "\n"
  309. . '<select name="Person[birth(2i)]">' . "\n"
  310. . '<option value="01">January</option>' . "\n"
  311. . '<option value="02">February</option>' . "\n"
  312. . '<option value="03">March</option>' . "\n"
  313. . '<option value="04">April</option>' . "\n"
  314. . '<option value="05">May</option>' . "\n"
  315. . '<option value="06">June</option>' . "\n"
  316. . '<option value="07" selected="selected">July</option>' . "\n"
  317. . '<option value="08">August</option>' . "\n"
  318. . '<option value="09">September</option>' . "\n"
  319. . '<option value="10">October</option>' . "\n"
  320. . '<option value="11">November</option>' . "\n"
  321. . '<option value="12">December</option>' . "\n"
  322. . '</select>' . "\n"
  323. . '<select name="Person[birth(3i)]">' . "\n"
  324. . '<option value="01">01</option>' . "\n"
  325. . '<option value="02">02</option>' . "\n"
  326. . '<option value="03">03</option>' . "\n"
  327. . '<option value="04">04</option>' . "\n"
  328. . '<option value="05" selected="selected">05</option>' . "\n"
  329. . '<option value="06">06</option>' . "\n"
  330. . '<option value="07">07</option>' . "\n"
  331. . '<option value="08">08</option>' . "\n"
  332. . '<option value="09">09</option>' . "\n"
  333. . '<option value="10">10</option>' . "\n"
  334. . '<option value="11">11</option>' . "\n"
  335. . '<option value="12">12</option>' . "\n"
  336. . '<option value="13">13</option>' . "\n"
  337. . '<option value="14">14</option>' . "\n"
  338. . '<option value="15">15</option>' . "\n"
  339. . '<option value="16">16</option>' . "\n"
  340. . '<option value="17">17</option>' . "\n"
  341. . '<option value="18">18</option>' . "\n"
  342. . '<option value="19">19</option>' . "\n"
  343. . '<option value="20">20</option>' . "\n"
  344. . '<option value="21">21</option>' . "\n"
  345. . '<option value="22">22</option>' . "\n"
  346. . '<option value="23">23</option>' . "\n"
  347. . '<option value="24">24</option>' . "\n"
  348. . '<option value="25">25</option>' . "\n"
  349. . '<option value="26">26</option>' . "\n"
  350. . '<option value="27">27</option>' . "\n"
  351. . '<option value="28">28</option>' . "\n"
  352. . '<option value="29">29</option>' . "\n"
  353. . '<option value="30">30</option>' . "\n"
  354. . '<option value="31">31</option>' . "\n"
  355. . '</select>' . "\n"
  356. . ' &mdash; <select name="Person[birth(4i)]">' . "\n"
  357. . '<option value="00">00</option>' . "\n"
  358. . '<option value="01">01</option>' . "\n"
  359. . '<option value="02">02</option>' . "\n"
  360. . '<option value="03">03</option>' . "\n"
  361. . '<option value="04">04</option>' . "\n"
  362. . '<option value="05">05</option>' . "\n"
  363. . '<option value="06">06</option>' . "\n"
  364. . '<option value="07">07</option>' . "\n"
  365. . '<option value="08">08</option>' . "\n"
  366. . '<option value="09">09</option>' . "\n"
  367. . '<option value="10">10</option>' . "\n"
  368. . '<option value="11" selected="selected">11</option>' . "\n"
  369. . '<option value="12">12</option>' . "\n"
  370. . '<option value="13">13</option>' . "\n"
  371. . '<option value="14">14</option>' . "\n"
  372. . '<option value="15">15</option>' . "\n"
  373. . '<option value="16">16</option>' . "\n"
  374. . '<option value="17">17</option>' . "\n"
  375. . '<option value="18">18</option>' . "\n"
  376. . '<option value="19">19</option>' . "\n"
  377. . '<option value="20">20</option>' . "\n"
  378. . '<option value="21">21</option>' . "\n"
  379. . '<option value="22">22</option>' . "\n"
  380. . '<option value="23">23</option>' . "\n"
  381. . '</select>' . "\n"
  382. . ' : <select name="Person[birth(5i)]">' . "\n"
  383. . '<option value="00">00</option>' . "\n"
  384. . '<option value="01">01</option>' . "\n"
  385. . '<option value="02">02</option>' . "\n"
  386. . '<option value="03">03</option>' . "\n"
  387. . '<option value="04">04</option>' . "\n"
  388. . '<option value="05">05</option>' . "\n"
  389. . '<option value="06">06</option>' . "\n"
  390. . '<option value="07">07</option>' . "\n"
  391. . '<option value="08">08</option>' . "\n"
  392. . '<option value="09">09</option>' . "\n"
  393. . '<option value="10">10</option>' . "\n"
  394. . '<option value="11">11</option>' . "\n"
  395. . '<option value="12">12</option>' . "\n"
  396. . '<option value="13">13</option>' . "\n"
  397. . '<option value="14">14</option>' . "\n"
  398. . '<option value="15">15</option>' . "\n"
  399. . '<option value="16">16</option>' . "\n"
  400. . '<option value="17">17</option>' . "\n"
  401. . '<option value="18">18</option>' . "\n"
  402. . '<option value="19">19</option>' . "\n"
  403. . '<option value="20">20</option>' . "\n"
  404. . '<option value="21">21</option>' . "\n"
  405. . '<option value="22">22</option>' . "\n"
  406. . '<option value="23">23</option>' . "\n"
  407. . '<option value="24">24</option>' . "\n"
  408. . '<option value="25">25</option>' . "\n"
  409. . '<option value="26">26</option>' . "\n"
  410. . '<option value="27">27</option>' . "\n"
  411. . '<option value="28">28</option>' . "\n"
  412. . '<option value="29">29</option>' . "\n"
  413. . '<option value="30" selected="selected">30</option>' . "\n"
  414. . '<option value="31">31</option>' . "\n"
  415. . '<option value="32">32</option>' . "\n"
  416. . '<option value="33">33</option>' . "\n"
  417. . '<option value="34">34</option>' . "\n"
  418. . '<option value="35">35</option>' . "\n"
  419. . '<option value="36">36</option>' . "\n"
  420. . '<option value="37">37</option>' . "\n"
  421. . '<option value="38">38</option>' . "\n"
  422. . '<option value="39">39</option>' . "\n"
  423. . '<option value="40">40</option>' . "\n"
  424. . '<option value="41">41</option>' . "\n"
  425. . '<option value="42">42</option>' . "\n"
  426. . '<option value="43">43</option>' . "\n"
  427. . '<option value="44">44</option>' . "\n"
  428. . '<option value="45">45</option>' . "\n"
  429. . '<option value="46">46</option>' . "\n"
  430. . '<option value="47">47</option>' . "\n"
  431. . '<option value="48">48</option>' . "\n"
  432. . '<option value="49">49</option>' . "\n"
  433. . '<option value="50">50</option>' . "\n"
  434. . '<option value="51">51</option>' . "\n"
  435. . '<option value="52">52</option>' . "\n"
  436. . '<option value="53">53</option>' . "\n"
  437. . '<option value="54">54</option>' . "\n"
  438. . '<option value="55">55</option>' . "\n"
  439. . '<option value="56">56</option>' . "\n"
  440. . '<option value="57">57</option>' . "\n"
  441. . '<option value="58">58</option>' . "\n"
  442. . '<option value="59">59</option>' . "\n"
  443. . '</select>' . "\n",
  444. datetime_select('Person', 'birth'));
  445. }
  446.  
  447. /**
  448. * Test date_select_method()
  449. *
  450. * Test the {@link DateHelper::date_select()} method
  451. */
  452. public function testDate_select_method() {
  453. $dh = new DateHelper('Person', 'birthdate');
  454. $_REQUEST['Person']['birthdate(1i)'] = '1955';
  455. $_REQUEST['Person']['birthdate(2i)'] = '08';
  456. $_REQUEST['Person']['birthdate(3i)'] = '13';
  457.  
  458. // Test with default format
  459. $this->assertEquals('<select name="Person[birthdate(1i)]">' . "\n"
  460. . '<option value="1950">1950</option>' . "\n"
  461. . '<option value="1951">1951</option>' . "\n"
  462. . '<option value="1952">1952</option>' . "\n"
  463. . '<option value="1953">1953</option>' . "\n"
  464. . '<option value="1954">1954</option>' . "\n"
  465. . '<option value="1955" selected="selected">1955</option>' . "\n"
  466. . '<option value="1956">1956</option>' . "\n"
  467. . '<option value="1957">1957</option>' . "\n"
  468. . '<option value="1958">1958</option>' . "\n"
  469. . '<option value="1959">1959</option>' . "\n"
  470. . '<option value="1960">1960</option>' . "\n"
  471. . '</select>' . "\n"
  472. . ' <select name="Person[birthdate(2i)]">' . "\n"
  473. . '<option value="01">January</option>' . "\n"
  474. . '<option value="02">February</option>' . "\n"
  475. . '<option value="03">March</option>' . "\n"
  476. . '<option value="04">April</option>' . "\n"
  477. . '<option value="05">May</option>' . "\n"
  478. . '<option value="06">June</option>' . "\n"
  479. . '<option value="07">July</option>' . "\n"
  480. . '<option value="08" selected="selected">August</option>' . "\n"
  481. . '<option value="09">September</option>' . "\n"
  482. . '<option value="10">October</option>' . "\n"
  483. . '<option value="11">November</option>' . "\n"
  484. . '<option value="12">December</option>' . "\n"
  485. . '</select>' . "\n"
  486. . ' <select name="Person[birthdate(3i)]">' . "\n"
  487. . '<option value="01">01</option>' . "\n"
  488. . '<option value="02">02</option>' . "\n"
  489. . '<option value="03">03</option>' . "\n"
  490. . '<option value="04">04</option>' . "\n"
  491. . '<option value="05">05</option>' . "\n"
  492. . '<option value="06">06</option>' . "\n"
  493. . '<option value="07">07</option>' . "\n"
  494. . '<option value="08">08</option>' . "\n"
  495. . '<option value="09">09</option>' . "\n"
  496. . '<option value="10">10</option>' . "\n"
  497. . '<option value="11">11</option>' . "\n"
  498. . '<option value="12">12</option>' . "\n"
  499. . '<option value="13" selected="selected">13</option>' . "\n"
  500. . '<option value="14">14</option>' . "\n"
  501. . '<option value="15">15</option>' . "\n"
  502. . '<option value="16">16</option>' . "\n"
  503. . '<option value="17">17</option>' . "\n"
  504. . '<option value="18">18</option>' . "\n"
  505. . '<option value="19">19</option>' . "\n"
  506. . '<option value="20">20</option>' . "\n"
  507. . '<option value="21">21</option>' . "\n"
  508. . '<option value="22">22</option>' . "\n"
  509. . '<option value="23">23</option>' . "\n"
  510. . '<option value="24">24</option>' . "\n"
  511. . '<option value="25">25</option>' . "\n"
  512. . '<option value="26">26</option>' . "\n"
  513. . '<option value="27">27</option>' . "\n"
  514. . '<option value="28">28</option>' . "\n"
  515. . '<option value="29">29</option>' . "\n"
  516. . '<option value="30">30</option>' . "\n"
  517. . '<option value="31">31</option>' . "\n"
  518. . '</select>' . "\n",
  519. $dh->date_select());
  520. }
  521.  
  522. /**
  523. * Test date_select() function
  524. *
  525. * Test the {@link date_select()} function in the
  526. * {@link date_helper.php} procedural file
  527. */
  528. public function testDate_select_function() {
  529. $_REQUEST['Person']['birthdate(1i)'] = '1955';
  530. $_REQUEST['Person']['birthdate(2i)'] = '08';
  531. $_REQUEST['Person']['birthdate(3i)'] = '13';
  532.  
  533. // Test with default format
  534. $this->assertEquals('<select name="Person[birthdate(1i)]">' . "\n"
  535. . '<option value="1950">1950</option>' . "\n"
  536. . '<option value="1951">1951</option>' . "\n"
  537. . '<option value="1952">1952</option>' . "\n"
  538. . '<option value="1953">1953</option>' . "\n"
  539. . '<option value="1954">1954</option>' . "\n"
  540. . '<option value="1955" selected="selected">1955</option>' . "\n"
  541. . '<option value="1956">1956</option>' . "\n"
  542. . '<option value="1957">1957</option>' . "\n"
  543. . '<option value="1958">1958</option>' . "\n"
  544. . '<option value="1959">1959</option>' . "\n"
  545. . '<option value="1960">1960</option>' . "\n"
  546. . '</select>' . "\n"
  547. . ' <select name="Person[birthdate(2i)]">' . "\n"
  548. . '<option value="01">January</option>' . "\n"
  549. . '<option value="02">February</option>' . "\n"
  550. . '<option value="03">March</option>' . "\n"
  551. . '<option value="04">April</option>' . "\n"
  552. . '<option value="05">May</option>' . "\n"
  553. . '<option value="06">June</option>' . "\n"
  554. . '<option value="07">July</option>' . "\n"
  555. . '<option value="08" selected="selected">August</option>' . "\n"
  556. . '<option value="09">September</option>' . "\n"
  557. . '<option value="10">October</option>' . "\n"
  558. . '<option value="11">November</option>' . "\n"
  559. . '<option value="12">December</option>' . "\n"
  560. . '</select>' . "\n"
  561. . ' <select name="Person[birthdate(3i)]">' . "\n"
  562. . '<option value="01">01</option>' . "\n"
  563. . '<option value="02">02</option>' . "\n"
  564. . '<option value="03">03</option>' . "\n"
  565. . '<option value="04">04</option>' . "\n"
  566. . '<option value="05">05</option>' . "\n"
  567. . '<option value="06">06</option>' . "\n"
  568. . '<option value="07">07</option>' . "\n"
  569. . '<option value="08">08</option>' . "\n"
  570. . '<option value="09">09</option>' . "\n"
  571. . '<option value="10">10</option>' . "\n"
  572. . '<option value="11">11</option>' . "\n"
  573. . '<option value="12">12</option>' . "\n"
  574. . '<option value="13" selected="selected">13</option>' . "\n"
  575. . '<option value="14">14</option>' . "\n"
  576. . '<option value="15">15</option>' . "\n"
  577. . '<option value="16">16</option>' . "\n"
  578. . '<option value="17">17</option>' . "\n"
  579. . '<option value="18">18</option>' . "\n"
  580. . '<option value="19">19</option>' . "\n"
  581. . '<option value="20">20</option>' . "\n"
  582. . '<option value="21">21</option>' . "\n"
  583. . '<option value="22">22</option>' . "\n"
  584. . '<option value="23">23</option>' . "\n"
  585. . '<option value="24">24</option>' . "\n"
  586. . '<option value="25">25</option>' . "\n"
  587. . '<option value="26">26</option>' . "\n"
  588. . '<option value="27">27</option>' . "\n"
  589. . '<option value="28">28</option>' . "\n"
  590. . '<option value="29">29</option>' . "\n"
  591. . '<option value="30">30</option>' . "\n"
  592. . '<option value="31">31</option>' . "\n"
  593. . '</select>' . "\n",
  594. date_select('Person', 'birthdate'));
  595. }
  596.  
  597. /**
  598. * Test select_expiration_date() method
  599. *
  600. * Test the {@link DateHelper::select_expiration_date()} method
  601. */
  602. public function testSelect_expiration_date_method() {
  603. $dh = new DateHelper;
  604.  
  605. // Test expiration date of August this year
  606. $_REQUEST['expiration_year'] = date('Y');
  607. $_REQUEST['expiration_month'] = '08';
  608. $this->assertContains('<option value="'.date('Y').
  609. '" selected="selected"',
  610. $dh->select_expiration_date());
  611. $this->assertContains('<option value="'.(date('Y')+7).'"',
  612. $dh->select_expiration_date());
  613. $this->assertContains('<option value="08" selected="selected">'
  614. . '8</option>',
  615. $dh->select_expiration_date());
  616. }
  617.  
  618. /**
  619. * Test select_expiration_date() function
  620. *
  621. * Test the {@link select_expiration_date()} function in the
  622. * {@link date_helper.php} procedural file
  623. */
  624. public function testSelect_expiration_date_function() {
  625.  
  626. // Test expiration date of August this year
  627. $_REQUEST['expiration_year'] = date('Y');
  628. $_REQUEST['expiration_month'] = '08';
  629. $this->assertContains('<option value="'.date('Y').
  630. '" selected="selected"',
  631. select_expiration_date());
  632. $this->assertContains('<option value="'.(date('Y')+7).'"',
  633. select_expiration_date());
  634. $this->assertContains('<option value="08" selected="selected">'
  635. . '8</option>',
  636. select_expiration_date());
  637. }
  638.  
  639. /**
  640. * Test select_date() method
  641. *
  642. * Test the {@link DateHelper::select_date()} method
  643. */
  644. public function testSelect_date_method() {
  645. $dh = new DateHelper;
  646. $this->assertEquals('<select name="year">' . "\n"
  647. . '<option value="1993">1993</option>' . "\n"
  648. . '<option value="1994">1994</option>' . "\n"
  649. . '<option value="1995">1995</option>' . "\n"
  650. . '<option value="1996">1996</option>' . "\n"
  651. . '<option value="1997">1997</option>' . "\n"
  652. . '<option value="1998" selected="selected">1998</option>' . "\n"
  653. . '<option value="1999">1999</option>' . "\n"
  654. . '<option value="2000">2000</option>' . "\n"
  655. . '<option value="2001">2001</option>' . "\n"
  656. . '<option value="2002">2002</option>' . "\n"
  657. . '<option value="2003">2003</option>' . "\n"
  658. . '</select>' . "\n"
  659. . '<select name="month">' . "\n"
  660. . '<option value="01">January</option>' . "\n"
  661. . '<option value="02">February</option>' . "\n"
  662. . '<option value="03">March</option>' . "\n"
  663. . '<option value="04">April</option>' . "\n"
  664. . '<option value="05">May</option>' . "\n"
  665. . '<option value="06">June</option>' . "\n"
  666. . '<option value="07">July</option>' . "\n"
  667. . '<option value="08" selected="selected">August</option>' . "\n"
  668. . '<option value="09">September</option>' . "\n"
  669. . '<option value="10">October</option>' . "\n"
  670. . '<option value="11">November</option>' . "\n"
  671. . '<option value="12">December</option>' . "\n"
  672. . '</select>' . "\n"
  673. . '<select name="day">' . "\n"
  674. . '<option value="01">01</option>' . "\n"
  675. . '<option value="02">02</option>' . "\n"
  676. . '<option value="03">03</option>' . "\n"
  677. . '<option value="04" selected="selected">04</option>' . "\n"
  678. . '<option value="05">05</option>' . "\n"
  679. . '<option value="06">06</option>' . "\n"
  680. . '<option value="07">07</option>' . "\n"
  681. . '<option value="08">08</option>' . "\n"
  682. . '<option value="09">09</option>' . "\n"
  683. . '<option value="10">10</option>' . "\n"
  684. . '<option value="11">11</option>' . "\n"
  685. . '<option value="12">12</option>' . "\n"
  686. . '<option value="13">13</option>' . "\n"
  687. . '<option value="14">14</option>' . "\n"
  688. . '<option value="15">15</option>' . "\n"
  689. . '<option value="16">16</option>' . "\n"
  690. . '<option value="17">17</option>' . "\n"
  691. . '<option value="18">18</option>' . "\n"
  692. . '<option value="19">19</option>' . "\n"
  693. . '<option value="20">20</option>' . "\n"
  694. . '<option value="21">21</option>' . "\n"
  695. . '<option value="22">22</option>' . "\n"
  696. . '<option value="23">23</option>' . "\n"
  697. . '<option value="24">24</option>' . "\n"
  698. . '<option value="25">25</option>' . "\n"
  699. . '<option value="26">26</option>' . "\n"
  700. . '<option value="27">27</option>' . "\n"
  701. . '<option value="28">28</option>' . "\n"
  702. . '<option value="29">29</option>' . "\n"
  703. . '<option value="30">30</option>' . "\n"
  704. . '<option value="31">31</option>' . "\n"
  705. . '</select>' . "\n",
  706. $dh->select_date('August 4, 1998'));
  707. }
  708.  
  709. /**
  710. * Test select_date() function
  711. *
  712. * Test the {@link select_date()} function in procedural file
  713. * {@link date_helper.php}
  714. */
  715. public function testSelect_date_function() {
  716. $this->assertEquals('<select name="year">' . "\n"
  717. . '<option value="1993">1993</option>' . "\n"
  718. . '<option value="1994">1994</option>' . "\n"
  719. . '<option value="1995">1995</option>' . "\n"
  720. . '<option value="1996">1996</option>' . "\n"
  721. . '<option value="1997">1997</option>' . "\n"
  722. . '<option value="1998" selected="selected">1998</option>' . "\n"
  723. . '<option value="1999">1999</option>' . "\n"
  724. . '<option value="2000">2000</option>' . "\n"
  725. . '<option value="2001">2001</option>' . "\n"
  726. . '<option value="2002">2002</option>' . "\n"
  727. . '<option value="2003">2003</option>' . "\n"
  728. . '</select>' . "\n"
  729. . '<select name="month">' . "\n"
  730. . '<option value="01">January</option>' . "\n"
  731. . '<option value="02">February</option>' . "\n"
  732. . '<option value="03">March</option>' . "\n"
  733. . '<option value="04">April</option>' . "\n"
  734. . '<option value="05">May</option>' . "\n"
  735. . '<option value="06">June</option>' . "\n"
  736. . '<option value="07">July</option>' . "\n"
  737. . '<option value="08" selected="selected">August</option>' . "\n"
  738. . '<option value="09">September</option>' . "\n"
  739. . '<option value="10">October</option>' . "\n"
  740. . '<option value="11">November</option>' . "\n"
  741. . '<option value="12">December</option>' . "\n"
  742. . '</select>' . "\n"
  743. . '<select name="day">' . "\n"
  744. . '<option value="01">01</option>' . "\n"
  745. . '<option value="02">02</option>' . "\n"
  746. . '<option value="03">03</option>' . "\n"
  747. . '<option value="04" selected="selected">04</option>' . "\n"
  748. . '<option value="05">05</option>' . "\n"
  749. . '<option value="06">06</option>' . "\n"
  750. . '<option value="07">07</option>' . "\n"
  751. . '<option value="08">08</option>' . "\n"
  752. . '<option value="09">09</option>' . "\n"
  753. . '<option value="10">10</option>' . "\n"
  754. . '<option value="11">11</option>' . "\n"
  755. . '<option value="12">12</option>' . "\n"
  756. . '<option value="13">13</option>' . "\n"
  757. . '<option value="14">14</option>' . "\n"
  758. . '<option value="15">15</option>' . "\n"
  759. . '<option value="16">16</option>' . "\n"
  760. . '<option value="17">17</option>' . "\n"
  761. . '<option value="18">18</option>' . "\n"
  762. . '<option value="19">19</option>' . "\n"
  763. . '<option value="20">20</option>' . "\n"
  764. . '<option value="21">21</option>' . "\n"
  765. . '<option value="22">22</option>' . "\n"
  766. . '<option value="23">23</option>' . "\n"
  767. . '<option value="24">24</option>' . "\n"
  768. . '<option value="25">25</option>' . "\n"
  769. . '<option value="26">26</option>' . "\n"
  770. . '<option value="27">27</option>' . "\n"
  771. . '<option value="28">28</option>' . "\n"
  772. . '<option value="29">29</option>' . "\n"
  773. . '<option value="30">30</option>' . "\n"
  774. . '<option value="31">31</option>' . "\n"
  775. . '</select>' . "\n",
  776. select_date('August 4, 1998'));
  777. }
  778.  
  779. /**
  780. * Test select_datetime() method
  781. *
  782. * Test {@link DateHelper::select_datetime() method}
  783. */
  784. public function testSelect_datetime_method() {
  785. // Default format
  786. $dh = new DateHelper;
  787. $this->assertEquals('<select name="year">' . "\n"
  788. . '<option value="1995">1995</option>' . "\n"
  789. . '<option value="1996">1996</option>' . "\n"
  790. . '<option value="1997">1997</option>' . "\n"
  791. . '<option value="1998">1998</option>' . "\n"
  792. . '<option value="1999">1999</option>' . "\n"
  793. . '<option value="2000" selected="selected">2000</option>' . "\n"
  794. . '<option value="2001">2001</option>' . "\n"
  795. . '<option value="2002">2002</option>' . "\n"
  796. . '<option value="2003">2003</option>' . "\n"
  797. . '<option value="2004">2004</option>' . "\n"
  798. . '<option value="2005">2005</option>' . "\n"
  799. . '</select>' . "\n"
  800. . '<select name="month">' . "\n"
  801. . '<option value="01">January</option>' . "\n"
  802. . '<option value="02">February</option>' . "\n"
  803. . '<option value="03">March</option>' . "\n"
  804. . '<option value="04">April</option>' . "\n"
  805. . '<option value="05">May</option>' . "\n"
  806. . '<option value="06">June</option>' . "\n"
  807. . '<option value="07">July</option>' . "\n"
  808. . '<option value="08">August</option>' . "\n"
  809. . '<option value="09" selected="selected">September</option>' . "\n"
  810. . '<option value="10">October</option>' . "\n"
  811. . '<option value="11">November</option>' . "\n"
  812. . '<option value="12">December</option>' . "\n"
  813. . '</select>' . "\n"
  814. . '<select name="day">' . "\n"
  815. . '<option value="01">01</option>' . "\n"
  816. . '<option value="02">02</option>' . "\n"
  817. . '<option value="03">03</option>' . "\n"
  818. . '<option value="04">04</option>' . "\n"
  819. . '<option value="05">05</option>' . "\n"
  820. . '<option value="06">06</option>' . "\n"
  821. . '<option value="07">07</option>' . "\n"
  822. . '<option value="08">08</option>' . "\n"
  823. . '<option value="09">09</option>' . "\n"
  824. . '<option value="10">10</option>' . "\n"
  825. . '<option value="11">11</option>' . "\n"
  826. . '<option value="12">12</option>' . "\n"
  827. . '<option value="13">13</option>' . "\n"
  828. . '<option value="14">14</option>' . "\n"
  829. . '<option value="15">15</option>' . "\n"
  830. . '<option value="16">16</option>' . "\n"
  831. . '<option value="17" selected="selected">17</option>' . "\n"
  832. . '<option value="18">18</option>' . "\n"
  833. . '<option value="19">19</option>' . "\n"
  834. . '<option value="20">20</option>' . "\n"
  835. . '<option value="21">21</option>' . "\n"
  836. . '<option value="22">22</option>' . "\n"
  837. . '<option value="23">23</option>' . "\n"
  838. . '<option value="24">24</option>' . "\n"
  839. . '<option value="25">25</option>' . "\n"
  840. . '<option value="26">26</option>' . "\n"
  841. . '<option value="27">27</option>' . "\n"
  842. . '<option value="28">28</option>' . "\n"
  843. . '<option value="29">29</option>' . "\n"
  844. . '<option value="30">30</option>' . "\n"
  845. . '<option value="31">31</option>' . "\n"
  846. . '</select>' . "\n"
  847. . '<select name="hour">' . "\n"
  848. . '<option value="00">00</option>' . "\n"
  849. . '<option value="01">01</option>' . "\n"
  850. . '<option value="02">02</option>' . "\n"
  851. . '<option value="03">03</option>' . "\n"
  852. . '<option value="04">04</option>' . "\n"
  853. . '<option value="05">05</option>' . "\n"
  854. . '<option value="06">06</option>' . "\n"
  855. . '<option value="07">07</option>' . "\n"
  856. . '<option value="08">08</option>' . "\n"
  857. . '<option value="09" selected="selected">09</option>' . "\n"
  858. . '<option value="10">10</option>' . "\n"
  859. . '<option value="11">11</option>' . "\n"
  860. . '<option value="12">12</option>' . "\n"
  861. . '<option value="13">13</option>' . "\n"
  862. . '<option value="14">14</option>' . "\n"
  863. . '<option value="15">15</option>' . "\n"
  864. . '<option value="16">16</option>' . "\n"
  865. . '<option value="17">17</option>' . "\n"
  866. . '<option value="18">18</option>' . "\n"
  867. . '<option value="19">19</option>' . "\n"
  868. . '<option value="20">20</option>' . "\n"
  869. . '<option value="21">21</option>' . "\n"
  870. . '<option value="22">22</option>' . "\n"
  871. . '<option value="23">23</option>' . "\n"
  872. . '</select>' . "\n"
  873. . '<select name="minute">' . "\n"
  874. . '<option value="00">00</option>' . "\n"
  875. . '<option value="01">01</option>' . "\n"
  876. . '<option value="02">02</option>' . "\n"
  877. . '<option value="03">03</option>' . "\n"
  878. . '<option value="04">04</option>' . "\n"
  879. . '<option value="05">05</option>' . "\n"
  880. . '<option value="06">06</option>' . "\n"
  881. . '<option value="07">07</option>' . "\n"
  882. . '<option value="08">08</option>' . "\n"
  883. . '<option value="09">09</option>' . "\n"
  884. . '<option value="10">10</option>' . "\n"
  885. . '<option value="11">11</option>' . "\n"
  886. . '<option value="12">12</option>' . "\n"
  887. . '<option value="13">13</option>' . "\n"
  888. . '<option value="14">14</option>' . "\n"
  889. . '<option value="15">15</option>' . "\n"
  890. . '<option value="16">16</option>' . "\n"
  891. . '<option value="17">17</option>' . "\n"
  892. . '<option value="18">18</option>' . "\n"
  893. . '<option value="19">19</option>' . "\n"
  894. . '<option value="20">20</option>' . "\n"
  895. . '<option value="21">21</option>' . "\n"
  896. . '<option value="22">22</option>' . "\n"
  897. . '<option value="23">23</option>' . "\n"
  898. . '<option value="24">24</option>' . "\n"
  899. . '<option value="25">25</option>' . "\n"
  900. . '<option value="26">26</option>' . "\n"
  901. . '<option value="27">27</option>' . "\n"
  902. . '<option value="28">28</option>' . "\n"
  903. . '<option value="29">29</option>' . "\n"
  904. . '<option value="30">30</option>' . "\n"
  905. . '<option value="31">31</option>' . "\n"
  906. . '<option value="32">32</option>' . "\n"
  907. . '<option value="33">33</option>' . "\n"
  908. . '<option value="34">34</option>' . "\n"
  909. . '<option value="35">35</option>' . "\n"
  910. . '<option value="36">36</option>' . "\n"
  911. . '<option value="37">37</option>' . "\n"
  912. . '<option value="38">38</option>' . "\n"
  913. . '<option value="39">39</option>' . "\n"
  914. . '<option value="40">40</option>' . "\n"
  915. . '<option value="41">41</option>' . "\n"
  916. . '<option value="42" selected="selected">42</option>' . "\n"
  917. . '<option value="43">43</option>' . "\n"
  918. . '<option value="44">44</option>' . "\n"
  919. . '<option value="45">45</option>' . "\n"
  920. . '<option value="46">46</option>' . "\n"
  921. . '<option value="47">47</option>' . "\n"
  922. . '<option value="48">48</option>' . "\n"
  923. . '<option value="49">49</option>' . "\n"
  924. . '<option value="50">50</option>' . "\n"
  925. . '<option value="51">51</option>' . "\n"
  926. . '<option value="52">52</option>' . "\n"
  927. . '<option value="53">53</option>' . "\n"
  928. . '<option value="54">54</option>' . "\n"
  929. . '<option value="55">55</option>' . "\n"
  930. . '<option value="56">56</option>' . "\n"
  931. . '<option value="57">57</option>' . "\n"
  932. . '<option value="58">58</option>' . "\n"
  933. . '<option value="59">59</option>' . "\n"
  934. . '</select>' . "\n",
  935. $dh->select_datetime('2000-09-17 09:42:53'));
  936. }
  937.  
  938. /**
  939. * Test select_datetime() function
  940. *
  941. * Test the {@link select_datetime()} function in procedural file
  942. * {@link date_helper.php}
  943. */
  944. public function testSelect_datetime_function() {
  945. $this->assertEquals('<select name="year">' . "\n"
  946. . '<option value="1995">1995</option>' . "\n"
  947. . '<option value="1996">1996</option>' . "\n"
  948. . '<option value="1997">1997</option>' . "\n"
  949. . '<option value="1998">1998</option>' . "\n"
  950. . '<option value="1999">1999</option>' . "\n"
  951. . '<option value="2000" selected="selected">2000</option>' . "\n"
  952. . '<option value="2001">2001</option>' . "\n"
  953. . '<option value="2002">2002</option>' . "\n"
  954. . '<option value="2003">2003</option>' . "\n"
  955. . '<option value="2004">2004</option>' . "\n"
  956. . '<option value="2005">2005</option>' . "\n"
  957. . '</select>' . "\n"
  958. . '<select name="month">' . "\n"
  959. . '<option value="01">January</option>' . "\n"
  960. . '<option value="02">February</option>' . "\n"
  961. . '<option value="03">March</option>' . "\n"
  962. . '<option value="04">April</option>' . "\n"
  963. . '<option value="05">May</option>' . "\n"
  964. . '<option value="06">June</option>' . "\n"
  965. . '<option value="07">July</option>' . "\n"
  966. . '<option value="08">August</option>' . "\n"
  967. . '<option value="09" selected="selected">September</option>' . "\n"
  968. . '<option value="10">October</option>' . "\n"
  969. . '<option value="11">November</option>' . "\n"
  970. . '<option value="12">December</option>' . "\n"
  971. . '</select>' . "\n"
  972. . '<select name="day">' . "\n"
  973. . '<option value="01">01</option>' . "\n"
  974. . '<option value="02">02</option>' . "\n"
  975. . '<option value="03">03</option>' . "\n"
  976. . '<option value="04">04</option>' . "\n"
  977. . '<option value="05">05</option>' . "\n"
  978. . '<option value="06">06</option>' . "\n"
  979. . '<option value="07">07</option>' . "\n"
  980. . '<option value="08">08</option>' . "\n"
  981. . '<option value="09">09</option>' . "\n"
  982. . '<option value="10">10</option>' . "\n"
  983. . '<option value="11">11</option>' . "\n"
  984. . '<option value="12">12</option>' . "\n"
  985. . '<option value="13">13</option>' . "\n"
  986. . '<option value="14">14</option>' . "\n"
  987. . '<option value="15">15</option>' . "\n"
  988. . '<option value="16">16</option>' . "\n"
  989. . '<option value="17" selected="selected">17</option>' . "\n"
  990. . '<option value="18">18</option>' . "\n"
  991. . '<option value="19">19</option>' . "\n"
  992. . '<option value="20">20</option>' . "\n"
  993. . '<option value="21">21</option>' . "\n"
  994. . '<option value="22">22</option>' . "\n"
  995. . '<option value="23">23</option>' . "\n"
  996. . '<option value="24">24</option>' . "\n"
  997. . '<option value="25">25</option>' . "\n"
  998. . '<option value="26">26</option>' . "\n"
  999. . '<option value="27">27</option>' . "\n"
  1000. . '<option value="28">28</option>' . "\n"
  1001. . '<option value="29">29</option>' . "\n"
  1002. . '<option value="30">30</option>' . "\n"
  1003. . '<option value="31">31</option>' . "\n"
  1004. . '</select>' . "\n"
  1005. . '<select name="hour">' . "\n"
  1006. . '<option value="00">00</option>' . "\n"
  1007. . '<option value="01">01</option>' . "\n"
  1008. . '<option value="02">02</option>' . "\n"
  1009. . '<option value="03">03</option>' . "\n"
  1010. . '<option value="04">04</option>' . "\n"
  1011. . '<option value="05">05</option>' . "\n"
  1012. . '<option value="06">06</option>' . "\n"
  1013. . '<option value="07">07</option>' . "\n"
  1014. . '<option value="08">08</option>' . "\n"
  1015. . '<option value="09" selected="selected">09</option>' . "\n"
  1016. . '<option value="10">10</option>' . "\n"
  1017. . '<option value="11">11</option>' . "\n"
  1018. . '<option value="12">12</option>' . "\n"
  1019. . '<option value="13">13</option>' . "\n"
  1020. . '<option value="14">14</option>' . "\n"
  1021. . '<option value="15">15</option>' . "\n"
  1022. . '<option value="16">16</option>' . "\n"
  1023. . '<option value="17">17</option>' . "\n"
  1024. . '<option value="18">18</option>' . "\n"
  1025. . '<option value="19">19</option>' . "\n"
  1026. . '<option value="20">20</option>' . "\n"
  1027. . '<option value="21">21</option>' . "\n"
  1028. . '<option value="22">22</option>' . "\n"
  1029. . '<option value="23">23</option>' . "\n"
  1030. . '</select>' . "\n"
  1031. . '<select name="minute">' . "\n"
  1032. . '<option value="00">00</option>' . "\n"
  1033. . '<option value="01">01</option>' . "\n"
  1034. . '<option value="02">02</option>' . "\n"
  1035. . '<option value="03">03</option>' . "\n"
  1036. . '<option value="04">04</option>' . "\n"
  1037. . '<option value="05">05</option>' . "\n"
  1038. . '<option value="06">06</option>' . "\n"
  1039. . '<option value="07">07</option>' . "\n"
  1040. . '<option value="08">08</option>' . "\n"
  1041. . '<option value="09">09</option>' . "\n"
  1042. . '<option value="10">10</option>' . "\n"
  1043. . '<option value="11">11</option>' . "\n"
  1044. . '<option value="12">12</option>' . "\n"
  1045. . '<option value="13">13</option>' . "\n"
  1046. . '<option value="14">14</option>' . "\n"
  1047. . '<option value="15">15</option>' . "\n"
  1048. . '<option value="16">16</option>' . "\n"
  1049. . '<option value="17">17</option>' . "\n"
  1050. . '<option value="18">18</option>' . "\n"
  1051. . '<option value="19">19</option>' . "\n"
  1052. . '<option value="20">20</option>' . "\n"
  1053. . '<option value="21">21</option>' . "\n"
  1054. . '<option value="22">22</option>' . "\n"
  1055. . '<option value="23">23</option>' . "\n"
  1056. . '<option value="24">24</option>' . "\n"
  1057. . '<option value="25">25</option>' . "\n"
  1058. . '<option value="26">26</option>' . "\n"
  1059. . '<option value="27">27</option>' . "\n"
  1060. . '<option value="28">28</option>' . "\n"
  1061. . '<option value="29">29</option>' . "\n"
  1062. . '<option value="30">30</option>' . "\n"
  1063. . '<option value="31">31</option>' . "\n"
  1064. . '<option value="32">32</option>' . "\n"
  1065. . '<option value="33">33</option>' . "\n"
  1066. . '<option value="34">34</option>' . "\n"
  1067. . '<option value="35">35</option>' . "\n"
  1068. . '<option value="36">36</option>' . "\n"
  1069. . '<option value="37">37</option>' . "\n"
  1070. . '<option value="38">38</option>' . "\n"
  1071. . '<option value="39">39</option>' . "\n"
  1072. . '<option value="40">40</option>' . "\n"
  1073. . '<option value="41">41</option>' . "\n"
  1074. . '<option value="42" selected="selected">42</option>' . "\n"
  1075. . '<option value="43">43</option>' . "\n"
  1076. . '<option value="44">44</option>' . "\n"
  1077. . '<option value="45">45</option>' . "\n"
  1078. . '<option value="46">46</option>' . "\n"
  1079. . '<option value="47">47</option>' . "\n"
  1080. . '<option value="48">48</option>' . "\n"
  1081. . '<option value="49">49</option>' . "\n"
  1082. . '<option value="50">50</option>' . "\n"
  1083. . '<option value="51">51</option>' . "\n"
  1084. . '<option value="52">52</option>' . "\n"
  1085. . '<option value="53">53</option>' . "\n"
  1086. . '<option value="54">54</option>' . "\n"
  1087. . '<option value="55">55</option>' . "\n"
  1088. . '<option value="56">56</option>' . "\n"
  1089. . '<option value="57">57</option>' . "\n"
  1090. . '<option value="58">58</option>' . "\n"
  1091. . '<option value="59">59</option>' . "\n"
  1092. . '</select>' . "\n",
  1093. select_datetime('2000-09-17 09:42:53'));
  1094. }
  1095.  
  1096. /**
  1097. * Test select_time()
  1098. *
  1099. * Test the {@link DateHelper::select_time()} method
  1100. */
  1101. public function testSelect_time() {
  1102. $dh = new DateHelper;
  1103.  
  1104. // Test 8:12 AM on April 8, 1998
  1105. $this->assertEquals('<select name="hour">' . "\n"
  1106. . '<option value="00">00</option>' . "\n"
  1107. . '<option value="01">01</option>' . "\n"
  1108. . '<option value="02">02</option>' . "\n"
  1109. . '<option value="03">03</option>' . "\n"
  1110. . '<option value="04">04</option>' . "\n"
  1111. . '<option value="05">05</option>' . "\n"
  1112. . '<option value="06">06</option>' . "\n"
  1113. . '<option value="07">07</option>' . "\n"
  1114. . '<option value="08" selected="selected">08</option>' . "\n"
  1115. . '<option value="09">09</option>' . "\n"
  1116. . '<option value="10">10</option>' . "\n"
  1117. . '<option value="11">11</option>' . "\n"
  1118. . '<option value="12">12</option>' . "\n"
  1119. . '<option value="13">13</option>' . "\n"
  1120. . '<option value="14">14</option>' . "\n"
  1121. . '<option value="15">15</option>' . "\n"
  1122. . '<option value="16">16</option>' . "\n"
  1123. . '<option value="17">17</option>' . "\n"
  1124. . '<option value="18">18</option>' . "\n"
  1125. . '<option value="19">19</option>' . "\n"
  1126. . '<option value="20">20</option>' . "\n"
  1127. . '<option value="21">21</option>' . "\n"
  1128. . '<option value="22">22</option>' . "\n"
  1129. . '<option value="23">23</option>' . "\n"
  1130. . '</select>' . "\n"
  1131. . '<select name="minute">' . "\n"
  1132. . '<option value="00">00</option>' . "\n"
  1133. . '<option value="01">01</option>' . "\n"
  1134. . '<option value="02">02</option>' . "\n"
  1135. . '<option value="03">03</option>' . "\n"
  1136. . '<option value="04">04</option>' . "\n"
  1137. . '<option value="05">05</option>' . "\n"
  1138. . '<option value="06">06</option>' . "\n"
  1139. . '<option value="07">07</option>' . "\n"
  1140. . '<option value="08">08</option>' . "\n"
  1141. . '<option value="09">09</option>' . "\n"
  1142. . '<option value="10">10</option>' . "\n"
  1143. . '<option value="11">11</option>' . "\n"
  1144. . '<option value="12" selected="selected">12</option>' . "\n"
  1145. . '<option value="13">13</option>' . "\n"
  1146. . '<option value="14">14</option>' . "\n"
  1147. . '<option value="15">15</option>' . "\n"
  1148. . '<option value="16">16</option>' . "\n"
  1149. . '<option value="17">17</option>' . "\n"
  1150. . '<option value="18">18</option>' . "\n"
  1151. . '<option value="19">19</option>' . "\n"
  1152. . '<option value="20">20</option>' . "\n"
  1153. . '<option value="21">21</option>' . "\n"
  1154. . '<option value="22">22</option>' . "\n"
  1155. . '<option value="23">23</option>' . "\n"
  1156. . '<option value="24">24</option>' . "\n"
  1157. . '<option value="25">25</option>' . "\n"
  1158. . '<option value="26">26</option>' . "\n"
  1159. . '<option value="27">27</option>' . "\n"
  1160. . '<option value="28">28</option>' . "\n"
  1161. . '<option value="29">29</option>' . "\n"
  1162. . '<option value="30">30</option>' . "\n"
  1163. . '<option value="31">31</option>' . "\n"
  1164. . '<option value="32">32</option>' . "\n"
  1165. . '<option value="33">33</option>' . "\n"
  1166. . '<option value="34">34</option>' . "\n"
  1167. . '<option value="35">35</option>' . "\n"
  1168. . '<option value="36">36</option>' . "\n"
  1169. . '<option value="37">37</option>' . "\n"
  1170. . '<option value="38">38</option>' . "\n"
  1171. . '<option value="39">39</option>' . "\n"
  1172. . '<option value="40">40</option>' . "\n"
  1173. . '<option value="41">41</option>' . "\n"
  1174. . '<option value="42">42</option>' . "\n"
  1175. . '<option value="43">43</option>' . "\n"
  1176. . '<option value="44">44</option>' . "\n"
  1177. . '<option value="45">45</option>' . "\n"
  1178. . '<option value="46">46</option>' . "\n"
  1179. . '<option value="47">47</option>' . "\n"
  1180. . '<option value="48">48</option>' . "\n"
  1181. . '<option value="49">49</option>' . "\n"
  1182. . '<option value="50">50</option>' . "\n"
  1183. . '<option value="51">51</option>' . "\n"
  1184. . '<option value="52">52</option>' . "\n"
  1185. . '<option value="53">53</option>' . "\n"
  1186. . '<option value="54">54</option>' . "\n"
  1187. . '<option value="55">55</option>' . "\n"
  1188. . '<option value="56">56</option>' . "\n"
  1189. . '<option value="57">57</option>' . "\n"
  1190. . '<option value="58">58</option>' . "\n"
  1191. . '<option value="59">59</option>' . "\n"
  1192. . '</select>' . "\n",
  1193. $dh->select_time('1998-04-08 8:12'));
  1194. }
  1195.  
  1196. /**
  1197. * Test time_select() method
  1198. *
  1199. * Test the {@link DateHelper::time_select()} method
  1200. */
  1201. public function testTime_select_method() {
  1202. $dh = new DateHelper('Person','lunch');
  1203. $dh->controller_object = new ActionController;
  1204. $ar = new ActiveRecord;
  1205. $dh->controller_object->Person = $ar;
  1206.  
  1207. // With no value in $_REQUEST, data should be
  1208. // retrieved from the the ActiveRecord
  1209. $ar->expect_query("lunch","11:30:45");
  1210. $this->assertEquals('<select name="Person[lunch(4i)]">' . "\n"
  1211. . '<option value="00">00</option>' . "\n"
  1212. . '<option value="01">01</option>' . "\n"
  1213. . '<option value="02">02</option>' . "\n"
  1214. . '<option value="03">03</option>' . "\n"
  1215. . '<option value="04">04</option>' . "\n"
  1216. . '<option value="05">05</option>' . "\n"
  1217. . '<option value="06">06</option>' . "\n"
  1218. . '<option value="07">07</option>' . "\n"
  1219. . '<option value="08">08</option>' . "\n"
  1220. . '<option value="09">09</option>' . "\n"
  1221. . '<option value="10">10</option>' . "\n"
  1222. . '<option value="11" selected="selected">11</option>' . "\n"
  1223. . '<option value="12">12</option>' . "\n"
  1224. . '<option value="13">13</option>' . "\n"
  1225. . '<option value="14">14</option>' . "\n"
  1226. . '<option value="15">15</option>' . "\n"
  1227. . '<option value="16">16</option>' . "\n"
  1228. . '<option value="17">17</option>' . "\n"
  1229. . '<option value="18">18</option>' . "\n"
  1230. . '<option value="19">19</option>' . "\n"
  1231. . '<option value="20">20</option>' . "\n"
  1232. . '<option value="21">21</option>' . "\n"
  1233. . '<option value="22">22</option>' . "\n"
  1234. . '<option value="23">23</option>' . "\n"
  1235. . '</select>' . "\n"
  1236. . ' : <select name="Person[lunch(5i)]">' . "\n"
  1237. . '<option value="00">00</option>' . "\n"
  1238. . '<option value="01">01</option>' . "\n"
  1239. . '<option value="02">02</option>' . "\n"
  1240. . '<option value="03">03</option>' . "\n"
  1241. . '<option value="04">04</option>' . "\n"
  1242. . '<option value="05">05</option>' . "\n"
  1243. . '<option value="06">06</option>' . "\n"
  1244. . '<option value="07">07</option>' . "\n"
  1245. . '<option value="08">08</option>' . "\n"
  1246. . '<option value="09">09</option>' . "\n"
  1247. . '<option value="10">10</option>' . "\n"
  1248. . '<option value="11">11</option>' . "\n"
  1249. . '<option value="12">12</option>' . "\n"
  1250. . '<option value="13">13</option>' . "\n"
  1251. . '<option value="14">14</option>' . "\n"
  1252. . '<option value="15">15</option>' . "\n"
  1253. . '<option value="16">16</option>' . "\n"
  1254. . '<option value="17">17</option>' . "\n"
  1255. . '<option value="18">18</option>' . "\n"
  1256. . '<option value="19">19</option>' . "\n"
  1257. . '<option value="20">20</option>' . "\n"
  1258. . '<option value="21">21</option>' . "\n"
  1259. . '<option value="22">22</option>' . "\n"
  1260. . '<option value="23">23</option>' . "\n"
  1261. . '<option value="24">24</option>' . "\n"
  1262. . '<option value="25">25</option>' . "\n"
  1263. . '<option value="26">26</option>' . "\n"
  1264. . '<option value="27">27</option>' . "\n"
  1265. . '<option value="28">28</option>' . "\n"
  1266. . '<option value="29">29</option>' . "\n"
  1267. . '<option value="30" selected="selected">30</option>' . "\n"
  1268. . '<option value="31">31</option>' . "\n"
  1269. . '<option value="32">32</option>' . "\n"
  1270. . '<option value="33">33</option>' . "\n"
  1271. . '<option value="34">34</option>' . "\n"
  1272. . '<option value="35">35</option>' . "\n"
  1273. . '<option value="36">36</option>' . "\n"
  1274. . '<option value="37">37</option>' . "\n"
  1275. . '<option value="38">38</option>' . "\n"
  1276. . '<option value="39">39</option>' . "\n"
  1277. . '<option value="40">40</option>' . "\n"
  1278. . '<option value="41">41</option>' . "\n"
  1279. . '<option value="42">42</option>' . "\n"
  1280. . '<option value="43">43</option>' . "\n"
  1281. . '<option value="44">44</option>' . "\n"
  1282. . '<option value="45">45</option>' . "\n"
  1283. . '<option value="46">46</option>' . "\n"
  1284. . '<option value="47">47</option>' . "\n"
  1285. . '<option value="48">48</option>' . "\n"
  1286. . '<option value="49">49</option>' . "\n"
  1287. . '<option value="50">50</option>' . "\n"
  1288. . '<option value="51">51</option>' . "\n"
  1289. . '<option value="52">52</option>' . "\n"
  1290. . '<option value="53">53</option>' . "\n"
  1291. . '<option value="54">54</option>' . "\n"
  1292. . '<option value="55">55</option>' . "\n"
  1293. . '<option value="56">56</option>' . "\n"
  1294. . '<option value="57">57</option>' . "\n"
  1295. . '<option value="58">58</option>' . "\n"
  1296. . '<option value="59">59</option>' . "\n"
  1297. . '</select>' . "\n",
  1298. $dh->time_select());
  1299.  
  1300. // Value in $_REQUEST should override the model
  1301. $_REQUEST['Person']['lunch(4i)'] = '08';
  1302. $_REQUEST['Person']['lunch(5i)'] = '12';
  1303. $this->assertEquals('<select name="Person[lunch(4i)]">' . "\n"
  1304. . '<option value="00">00</option>' . "\n"
  1305. . '<option value="01">01</option>' . "\n"
  1306. . '<option value="02">02</option>' . "\n"
  1307. . '<option value="03">03</option>' . "\n"
  1308. . '<option value="04">04</option>' . "\n"
  1309. . '<option value="05">05</option>' . "\n"
  1310. . '<option value="06">06</option>' . "\n"
  1311. . '<option value="07">07</option>' . "\n"
  1312. . '<option value="08" selected="selected">08</option>' . "\n"
  1313. . '<option value="09">09</option>' . "\n"
  1314. . '<option value="10">10</option>' . "\n"
  1315. . '<option value="11">11</option>' . "\n"
  1316. . '<option value="12">12</option>' . "\n"
  1317. . '<option value="13">13</option>' . "\n"
  1318. . '<option value="14">14</option>' . "\n"
  1319. . '<option value="15">15</option>' . "\n"
  1320. . '<option value="16">16</option>' . "\n"
  1321. . '<option value="17">17</option>' . "\n"
  1322. . '<option value="18">18</option>' . "\n"
  1323. . '<option value="19">19</option>' . "\n"
  1324. . '<option value="20">20</option>' . "\n"
  1325. . '<option value="21">21</option>' . "\n"
  1326. . '<option value="22">22</option>' . "\n"
  1327. . '<option value="23">23</option>' . "\n"
  1328. . '</select>' . "\n"
  1329. . ' : <select name="Person[lunch(5i)]">' . "\n"
  1330. . '<option value="00">00</option>' . "\n"
  1331. . '<option value="01">01</option>' . "\n"
  1332. . '<option value="02">02</option>' . "\n"
  1333. . '<option value="03">03</option>' . "\n"
  1334. . '<option value="04">04</option>' . "\n"
  1335. . '<option value="05">05</option>' . "\n"
  1336. . '<option value="06">06</option>' . "\n"
  1337. . '<option value="07">07</option>' . "\n"
  1338. . '<option value="08">08</option>' . "\n"
  1339. . '<option value="09">09</option>' . "\n"
  1340. . '<option value="10">10</option>' . "\n"
  1341. . '<option value="11">11</option>' . "\n"
  1342. . '<option value="12" selected="selected">12</option>' . "\n"
  1343. . '<option value="13">13</option>' . "\n"
  1344. . '<option value="14">14</option>' . "\n"
  1345. . '<option value="15">15</option>' . "\n"
  1346. . '<option value="16">16</option>' . "\n"
  1347. . '<option value="17">17</option>' . "\n"
  1348. . '<option value="18">18</option>' . "\n"
  1349. . '<option value="19">19</option>' . "\n"
  1350. . '<option value="20">20</option>' . "\n"
  1351. . '<option value="21">21</option>' . "\n"
  1352. . '<option value="22">22</option>' . "\n"
  1353. . '<option value="23">23</option>' . "\n"
  1354. . '<option value="24">24</option>' . "\n"
  1355. . '<option value="25">25</option>' . "\n"
  1356. . '<option value="26">26</option>' . "\n"
  1357. . '<option value="27">27</option>' . "\n"
  1358. . '<option value="28">28</option>' . "\n"
  1359. . '<option value="29">29</option>' . "\n"
  1360. . '<option value="30">30</option>' . "\n"
  1361. . '<option value="31">31</option>' . "\n"
  1362. . '<option value="32">32</option>' . "\n"
  1363. . '<option value="33">33</option>' . "\n"
  1364. . '<option value="34">34</option>' . "\n"
  1365. . '<option value="35">35</option>' . "\n"
  1366. . '<option value="36">36</option>' . "\n"
  1367. . '<option value="37">37</option>' . "\n"
  1368. . '<option value="38">38</option>' . "\n"
  1369. . '<option value="39">39</option>' . "\n"
  1370. . '<option value="40">40</option>' . "\n"
  1371. . '<option value="41">41</option>' . "\n"
  1372. . '<option value="42">42</option>' . "\n"
  1373. . '<option value="43">43</option>' . "\n"
  1374. . '<option value="44">44</option>' . "\n"
  1375. . '<option value="45">45</option>' . "\n"
  1376. . '<option value="46">46</option>' . "\n"
  1377. . '<option value="47">47</option>' . "\n"
  1378. . '<option value="48">48</option>' . "\n"
  1379. . '<option value="49">49</option>' . "\n"
  1380. . '<option value="50">50</option>' . "\n"
  1381. . '<option value="51">51</option>' . "\n"
  1382. . '<option value="52">52</option>' . "\n"
  1383. . '<option value="53">53</option>' . "\n"
  1384. . '<option value="54">54</option>' . "\n"
  1385. . '<option value="55">55</option>' . "\n"
  1386. . '<option value="56">56</option>' . "\n"
  1387. . '<option value="57">57</option>' . "\n"
  1388. . '<option value="58">58</option>' . "\n"
  1389. . '<option value="59">59</option>' . "\n"
  1390. . '</select>' . "\n",
  1391. $dh->time_select());
  1392.  
  1393. // Test output format option 'discard_second' => false
  1394. $_REQUEST['Person']['lunch(4i)'] = '12';
  1395. $_REQUEST['Person']['lunch(5i)'] = '14';
  1396. $_REQUEST['Person']['lunch(6i)'] = '27';
  1397. $this->assertEquals('<select name="Person[lunch(4i)]">' . "\n"
  1398. . '<option value="00">00</option>' . "\n"
  1399. . '<option value="01">01</option>' . "\n"
  1400. . '<option value="02">02</option>' . "\n"
  1401. . '<option value="03">03</option>' . "\n"
  1402. . '<option value="04">04</option>' . "\n"
  1403. . '<option value="05">05</option>' . "\n"
  1404. . '<option value="06">06</option>' . "\n"
  1405. . '<option value="07">07</option>' . "\n"
  1406. . '<option value="08">08</option>' . "\n"
  1407. . '<option value="09">09</option>' . "\n"
  1408. . '<option value="10">10</option>' . "\n"
  1409. . '<option value="11">11</option>' . "\n"
  1410. . '<option value="12" selected="selected">12</option>' . "\n"
  1411. . '<option value="13">13</option>' . "\n"
  1412. . '<option value="14">14</option>' . "\n"
  1413. . '<option value="15">15</option>' . "\n"
  1414. . '<option value="16">16</option>' . "\n"
  1415. . '<option value="17">17</option>' . "\n"
  1416. . '<option value="18">18</option>' . "\n"
  1417. . '<option value="19">19</option>' . "\n"
  1418. . '<option value="20">20</option>' . "\n"
  1419. . '<option value="21">21</option>' . "\n"
  1420. . '<option value="22">22</option>' . "\n"
  1421. . '<option value="23">23</option>' . "\n"
  1422. . '</select>' . "\n"
  1423. . ' : <select name="Person[lunch(5i)]">' . "\n"
  1424. . '<option value="00">00</option>' . "\n"
  1425. . '<option value="01">01</option>' . "\n"
  1426. . '<option value="02">02</option>' . "\n"
  1427. . '<option value="03">03</option>' . "\n"
  1428. . '<option value="04">04</option>' . "\n"
  1429. . '<option value="05">05</option>' . "\n"
  1430. . '<option value="06">06</option>' . "\n"
  1431. . '<option value="07">07</option>' . "\n"
  1432. . '<option value="08">08</option>' . "\n"
  1433. . '<option value="09">09</option>' . "\n"
  1434. . '<option value="10">10</option>' . "\n"
  1435. . '<option value="11">11</option>' . "\n"
  1436. . '<option value="12">12</option>' . "\n"
  1437. . '<option value="13">13</option>' . "\n"
  1438. . '<option value="14" selected="selected">14</option>' . "\n"
  1439. . '<option value="15">15</option>' . "\n"
  1440. . '<option value="16">16</option>' . "\n"
  1441. . '<option value="17">17</option>' . "\n"
  1442. . '<option value="18">18</option>' . "\n"
  1443. . '<option value="19">19</option>' . "\n"
  1444. . '<option value="20">20</option>' . "\n"
  1445. . '<option value="21">21</option>' . "\n"
  1446. . '<option value="22">22</option>' . "\n"
  1447. . '<option value="23">23</option>' . "\n"
  1448. . '<option value="24">24</option>' . "\n"
  1449. . '<option value="25">25</option>' . "\n"
  1450. . '<option value="26">26</option>' . "\n"
  1451. . '<option value="27">27</option>' . "\n"
  1452. . '<option value="28">28</option>' . "\n"
  1453. . '<option value="29">29</option>' . "\n"
  1454. . '<option value="30">30</option>' . "\n"
  1455. . '<option value="31">31</option>' . "\n"
  1456. . '<option value="32">32</option>' . "\n"
  1457. . '<option value="33">33</option>' . "\n"
  1458. . '<option value="34">34</option>' . "\n"
  1459. . '<option value="35">35</option>' . "\n"
  1460. . '<option value="36">36</option>' . "\n"
  1461. . '<option value="37">37</option>' . "\n"
  1462. . '<option value="38">38</option>' . "\n"
  1463. . '<option value="39">39</option>' . "\n"
  1464. . '<option value="40">40</option>' . "\n"
  1465. . '<option value="41">41</option>' . "\n"
  1466. . '<option value="42">42</option>' . "\n"
  1467. . '<option value="43">43</option>' . "\n"
  1468. . '<option value="44">44</option>' . "\n"
  1469. . '<option value="45">45</option>' . "\n"
  1470. . '<option value="46">46</option>' . "\n"
  1471. . '<option value="47">47</option>' . "\n"
  1472. . '<option value="48">48</option>' . "\n"
  1473. . '<option value="49">49</option>' . "\n"
  1474. . '<option value="50">50</option>' . "\n"
  1475. . '<option value="51">51</option>' . "\n"
  1476. . '<option value="52">52</option>' . "\n"
  1477. . '<option value="53">53</option>' . "\n"
  1478. . '<option value="54">54</option>' . "\n"
  1479. . '<option value="55">55</option>' . "\n"
  1480. . '<option value="56">56</option>' . "\n"
  1481. . '<option value="57">57</option>' . "\n"
  1482. . '<option value="58">58</option>' . "\n"
  1483. . '<option value="59">59</option>' . "\n"
  1484. . '</select>' . "\n"
  1485. . ' : <select name="Person[lunch(6i)]">' . "\n"
  1486. . '<option value="00">00</option>' . "\n"
  1487. . '<option value="01">01</option>' . "\n"
  1488. . '<option value="02">02</option>' . "\n"
  1489. . '<option value="03">03</option>' . "\n"
  1490. . '<option value="04">04</option>' . "\n"
  1491. . '<option value="05">05</option>' . "\n"
  1492. . '<option value="06">06</option>' . "\n"
  1493. . '<option value="07">07</option>' . "\n"
  1494. . '<option value="08">08</option>' . "\n"
  1495. . '<option value="09">09</option>' . "\n"
  1496. . '<option value="10">10</option>' . "\n"
  1497. . '<option value="11">11</option>' . "\n"
  1498. . '<option value="12">12</option>' . "\n"
  1499. . '<option value="13">13</option>' . "\n"
  1500. . '<option value="14">14</option>' . "\n"
  1501. . '<option value="15">15</option>' . "\n"
  1502. . '<option value="16">16</option>' . "\n"
  1503. . '<option value="17">17</option>' . "\n"
  1504. . '<option value="18">18</option>' . "\n"
  1505. . '<option value="19">19</option>' . "\n"
  1506. . '<option value="20">20</option>' . "\n"
  1507. . '<option value="21">21</option>' . "\n"
  1508. . '<option value="22">22</option>' . "\n"
  1509. . '<option value="23">23</option>' . "\n"
  1510. . '<option value="24">24</option>' . "\n"
  1511. . '<option value="25">25</option>' . "\n"
  1512. . '<option value="26">26</option>' . "\n"
  1513. . '<option value="27" selected="selected">27</option>' . "\n"
  1514. . '<option value="28">28</option>' . "\n"
  1515. . '<option value="29">29</option>' . "\n"
  1516. . '<option value="30">30</option>' . "\n"
  1517. . '<option value="31">31</option>' . "\n"
  1518. . '<option value="32">32</option>' . "\n"
  1519. . '<option value="33">33</option>' . "\n"
  1520. . '<option value="34">34</option>' . "\n"
  1521. . '<option value="35">35</option>' . "\n"
  1522. . '<option value="36">36</option>' . "\n"
  1523. . '<option value="37">37</option>' . "\n"
  1524. . '<option value="38">38</option>' . "\n"
  1525. . '<option value="39">39</option>' . "\n"
  1526. . '<option value="40">40</option>' . "\n"
  1527. . '<option value="41">41</option>' . "\n"
  1528. . '<option value="42">42</option>' . "\n"
  1529. . '<option value="43">43</option>' . "\n"
  1530. . '<option value="44">44</option>' . "\n"
  1531. . '<option value="45">45</option>' . "\n"
  1532. . '<option value="46">46</option>' . "\n"
  1533. . '<option value="47">47</option>' . "\n"
  1534. . '<option value="48">48</option>' . "\n"
  1535. . '<option value="49">49</option>' . "\n"
  1536. . '<option value="50">50</option>' . "\n"
  1537. . '<option value="51">51</option>' . "\n"
  1538. . '<option value="52">52</option>' . "\n"
  1539. . '<option value="53">53</option>' . "\n"
  1540. . '<option value="54">54</option>' . "\n"
  1541. . '<option value="55">55</option>' . "\n"
  1542. . '<option value="56">56</option>' . "\n"
  1543. . '<option value="57">57</option>' . "\n"
  1544. . '<option value="58">58</option>' . "\n"
  1545. . '<option value="59">59</option>' . "\n"
  1546. . '</select>' . "\n",
  1547. $dh->time_select(array('discard_second' => false)));
  1548. }
  1549.  
  1550. /**
  1551. * Test time_select() function
  1552. *
  1553. * Test {@link time_select()} function in procedural file
  1554. * {@link date_helper.php}
  1555. */
  1556. public function testTime_select_function() {
  1557. $_REQUEST['Person']['lunch(4i)'] = '08';
  1558. $_REQUEST['Person']['lunch(5i)'] = '12';
  1559. $this->assertEquals('<select name="Person[lunch(4i)]">' . "\n"
  1560. . '<option value="00">00</option>' . "\n"
  1561. . '<option value="01">01</option>' . "\n"
  1562. . '<option value="02">02</option>' . "\n"
  1563. . '<option value="03">03</option>' . "\n"
  1564. . '<option value="04">04</option>' . "\n"
  1565. . '<option value="05">05</option>' . "\n"
  1566. . '<option value="06">06</option>' . "\n"
  1567. . '<option value="07">07</option>' . "\n"
  1568. . '<option value="08" selected="selected">08</option>' . "\n"
  1569. . '<option value="09">09</option>' . "\n"
  1570. . '<option value="10">10</option>' . "\n"
  1571. . '<option value="11">11</option>' . "\n"
  1572. . '<option value="12">12</option>' . "\n"
  1573. . '<option value="13">13</option>' . "\n"
  1574. . '<option value="14">14</option>' . "\n"
  1575. . '<option value="15">15</option>' . "\n"
  1576. . '<option value="16">16</option>' . "\n"
  1577. . '<option value="17">17</option>' . "\n"
  1578. . '<option value="18">18</option>' . "\n"
  1579. . '<option value="19">19</option>' . "\n"
  1580. . '<option value="20">20</option>' . "\n"
  1581. . '<option value="21">21</option>' . "\n"
  1582. . '<option value="22">22</option>' . "\n"
  1583. . '<option value="23">23</option>' . "\n"
  1584. . '</select>' . "\n"
  1585. . ' : <select name="Person[lunch(5i)]">' . "\n"
  1586. . '<option value="00">00</option>' . "\n"
  1587. . '<option value="01">01</option>' . "\n"
  1588. . '<option value="02">02</option>' . "\n"
  1589. . '<option value="03">03</option>' . "\n"
  1590. . '<option value="04">04</option>' . "\n"
  1591. . '<option value="05">05</option>' . "\n"
  1592. . '<option value="06">06</option>' . "\n"
  1593. . '<option value="07">07</option>' . "\n"
  1594. . '<option value="08">08</option>' . "\n"
  1595. . '<option value="09">09</option>' . "\n"
  1596. . '<option value="10">10</option>' . "\n"
  1597. . '<option value="11">11</option>' . "\n"
  1598. . '<option value="12" selected="selected">12</option>' . "\n"
  1599. . '<option value="13">13</option>' . "\n"
  1600. . '<option value="14">14</option>' . "\n"
  1601. . '<option value="15">15</option>' . "\n"
  1602. . '<option value="16">16</option>' . "\n"
  1603. . '<option value="17">17</option>' . "\n"
  1604. . '<option value="18">18</option>' . "\n"
  1605. . '<option value="19">19</option>' . "\n"
  1606. . '<option value="20">20</option>' . "\n"
  1607. . '<option value="21">21</option>' . "\n"
  1608. . '<option value="22">22</option>' . "\n"
  1609. . '<option value="23">23</option>' . "\n"
  1610. . '<option value="24">24</option>' . "\n"
  1611. . '<option value="25">25</option>' . "\n"
  1612. . '<option value="26">26</option>' . "\n"
  1613. . '<option value="27">27</option>' . "\n"
  1614. . '<option value="28">28</option>' . "\n"
  1615. . '<option value="29">29</option>' . "\n"
  1616. . '<option value="30">30</option>' . "\n"
  1617. . '<option value="31">31</option>' . "\n"
  1618. . '<option value="32">32</option>' . "\n"
  1619. . '<option value="33">33</option>' . "\n"
  1620. . '<option value="34">34</option>' . "\n"
  1621. . '<option value="35">35</option>' . "\n"
  1622. . '<option value="36">36</option>' . "\n"
  1623. . '<option value="37">37</option>' . "\n"
  1624. . '<option value="38">38</option>' . "\n"
  1625. . '<option value="39">39</option>' . "\n"
  1626. . '<option value="40">40</option>' . "\n"
  1627. . '<option value="41">41</option>' . "\n"
  1628. . '<option value="42">42</option>' . "\n"
  1629. . '<option value="43">43</option>' . "\n"
  1630. . '<option value="44">44</option>' . "\n"
  1631. . '<option value="45">45</option>' . "\n"
  1632. . '<option value="46">46</option>' . "\n"
  1633. . '<option value="47">47</option>' . "\n"
  1634. . '<option value="48">48</option>' . "\n"
  1635. . '<option value="49">49</option>' . "\n"
  1636. . '<option value="50">50</option>' . "\n"
  1637. . '<option value="51">51</option>' . "\n"
  1638. . '<option value="52">52</option>' . "\n"
  1639. . '<option value="53">53</option>' . "\n"
  1640. . '<option value="54">54</option>' . "\n"
  1641. . '<option value="55">55</option>' . "\n"
  1642. . '<option value="56">56</option>' . "\n"
  1643. . '<option value="57">57</option>' . "\n"
  1644. . '<option value="58">58</option>' . "\n"
  1645. . '<option value="59">59</option>' . "\n"
  1646. . '</select>' . "\n",
  1647. time_select('Person','lunch'));
  1648. }
  1649.  
  1650. /**
  1651. * Test select_second()
  1652. *
  1653. * Test {@link DateHelper::select_second()} method
  1654. */
  1655. public function testSelect_second() {
  1656. $dh = new DateHelper;
  1657.  
  1658. // Test generation with all arguments omitted
  1659. $this->assertContains('selected="selected">'.date('s'),
  1660. $dh->select_second());
  1661.  
  1662. // Test generation with 43 selected, default format
  1663. $this->assertEquals('<select name="second">' . "\n"
  1664. . '<option value="00">00</option>' . "\n"
  1665. . '<option value="01">01</option>' . "\n"
  1666. . '<option value="02">02</option>' . "\n"
  1667. . '<option value="03">03</option>' . "\n"
  1668. . '<option value="04">04</option>' . "\n"
  1669. . '<option value="05">05</option>' . "\n"
  1670. . '<option value="06">06</option>' . "\n"
  1671. . '<option value="07">07</option>' . "\n"
  1672. . '<option value="08">08</option>' . "\n"
  1673. . '<option value="09">09</option>' . "\n"
  1674. . '<option value="10">10</option>' . "\n"
  1675. . '<option value="11">11</option>' . "\n"
  1676. . '<option value="12">12</option>' . "\n"
  1677. . '<option value="13">13</option>' . "\n"
  1678. . '<option value="14">14</option>' . "\n"
  1679. . '<option value="15">15</option>' . "\n"
  1680. . '<option value="16">16</option>' . "\n"
  1681. . '<option value="17">17</option>' . "\n"
  1682. . '<option value="18">18</option>' . "\n"
  1683. . '<option value="19">19</option>' . "\n"
  1684. . '<option value="20">20</option>' . "\n"
  1685. . '<option value="21">21</option>' . "\n"
  1686. . '<option value="22">22</option>' . "\n"
  1687. . '<option value="23">23</option>' . "\n"
  1688. . '<option value="24">24</option>' . "\n"
  1689. . '<option value="25">25</option>' . "\n"
  1690. . '<option value="26">26</option>' . "\n"
  1691. . '<option value="27">27</option>' . "\n"
  1692. . '<option value="28">28</option>' . "\n"
  1693. . '<option value="29">29</option>' . "\n"
  1694. . '<option value="30">30</option>' . "\n"
  1695. . '<option value="31">31</option>' . "\n"
  1696. . '<option value="32">32</option>' . "\n"
  1697. . '<option value="33">33</option>' . "\n"
  1698. . '<option value="34">34</option>' . "\n"
  1699. . '<option value="35">35</option>' . "\n"
  1700. . '<option value="36">36</option>' . "\n"
  1701. . '<option value="37">37</option>' . "\n"
  1702. . '<option value="38">38</option>' . "\n"
  1703. . '<option value="39">39</option>' . "\n"
  1704. . '<option value="40">40</option>' . "\n"
  1705. . '<option value="41">41</option>' . "\n"
  1706. . '<option value="42">42</option>' . "\n"
  1707. . '<option value="43" selected="selected">43</option>' . "\n"
  1708. . '<option value="44">44</option>' . "\n"
  1709. . '<option value="45">45</option>' . "\n"
  1710. . '<option value="46">46</option>' . "\n"
  1711. . '<option value="47">47</option>' . "\n"
  1712. . '<option value="48">48</option>' . "\n"
  1713. . '<option value="49">49</option>' . "\n"
  1714. . '<option value="50">50</option>' . "\n"
  1715. . '<option value="51">51</option>' . "\n"
  1716. . '<option value="52">52</option>' . "\n"
  1717. . '<option value="53">53</option>' . "\n"
  1718. . '<option value="54">54</option>' . "\n"
  1719. . '<option value="55">55</option>' . "\n"
  1720. . '<option value="56">56</option>' . "\n"
  1721. . '<option value="57">57</option>' . "\n"
  1722. . '<option value="58">58</option>' . "\n"
  1723. . '<option value="59">59</option>' . "\n"
  1724. . '</select>' . "\n",
  1725. $dh->select_second('43'));
  1726.  
  1727. // Test generation with 17 selected, name change
  1728. $this->assertEquals('<select name="last-second">' . "\n"
  1729. . '<option value="00">00</option>' . "\n"
  1730. . '<option value="01">01</option>' . "\n"
  1731. . '<option value="02">02</option>' . "\n"
  1732. . '<option value="03">03</option>' . "\n"
  1733. . '<option value="04">04</option>' . "\n"
  1734. . '<option value="05">05</option>' . "\n"
  1735. . '<option value="06">06</option>' . "\n"
  1736. . '<option value="07">07</option>' . "\n"
  1737. . '<option value="08">08</option>' . "\n"
  1738. . '<option value="09">09</option>' . "\n"
  1739. . '<option value="10">10</option>' . "\n"
  1740. . '<option value="11">11</option>' . "\n"
  1741. . '<option value="12">12</option>' . "\n"
  1742. . '<option value="13">13</option>' . "\n"
  1743. . '<option value="14">14</option>' . "\n"
  1744. . '<option value="15">15</option>' . "\n"
  1745. . '<option value="16">16</option>' . "\n"
  1746. . '<option value="17" selected="selected">17</option>' . "\n"
  1747. . '<option value="18">18</option>' . "\n"
  1748. . '<option value="19">19</option>' . "\n"
  1749. . '<option value="20">20</option>' . "\n"
  1750. . '<option value="21">21</option>' . "\n"
  1751. . '<option value="22">22</option>' . "\n"
  1752. . '<option value="23">23</option>' . "\n"
  1753. . '<option value="24">24</option>' . "\n"
  1754. . '<option value="25">25</option>' . "\n"
  1755. . '<option value="26">26</option>' . "\n"
  1756. . '<option value="27">27</option>' . "\n"
  1757. . '<option value="28">28</option>' . "\n"
  1758. . '<option value="29">29</option>' . "\n"
  1759. . '<option value="30">30</option>' . "\n"
  1760. . '<option value="31">31</option>' . "\n"
  1761. . '<option value="32">32</option>' . "\n"
  1762. . '<option value="33">33</option>' . "\n"
  1763. . '<option value="34">34</option>' . "\n"
  1764. . '<option value="35">35</option>' . "\n"
  1765. . '<option value="36">36</option>' . "\n"
  1766. . '<option value="37">37</option>' . "\n"
  1767. . '<option value="38">38</option>' . "\n"
  1768. . '<option value="39">39</option>' . "\n"
  1769. . '<option value="40">40</option>' . "\n"
  1770. . '<option value="41">41</option>' . "\n"
  1771. . '<option value="42">42</option>' . "\n"
  1772. . '<option value="43">43</option>' . "\n"
  1773. . '<option value="44">44</option>' . "\n"
  1774. . '<option value="45">45</option>' . "\n"
  1775. . '<option value="46">46</option>' . "\n"
  1776. . '<option value="47">47</option>' . "\n"
  1777. . '<option value="48">48</option>' . "\n"
  1778. . '<option value="49">49</option>' . "\n"
  1779. . '<option value="50">50</option>' . "\n"
  1780. . '<option value="51">51</option>' . "\n"
  1781. . '<option value="52">52</option>' . "\n"
  1782. . '<option value="53">53</option>' . "\n"
  1783. . '<option value="54">54</option>' . "\n"
  1784. . '<option value="55">55</option>' . "\n"
  1785. . '<option value="56">56</option>' . "\n"
  1786. . '<option value="57">57</option>' . "\n"
  1787. . '<option value="58">58</option>' . "\n"
  1788. . '<option value="59">59</option>' . "\n"
  1789. . '</select>' . "\n",
  1790. $dh->select_second('17',
  1791. array('field_name' => 'last-second')));
  1792.  
  1793. // Test generation with 52 selected, include blank
  1794. $this->assertEquals('<select name="second">' . "\n"
  1795. . '<option value=""></option>' . "\n"
  1796. . '<option value="00">00</option>' . "\n"
  1797. . '<option value="01">01</option>' . "\n"
  1798. . '<option value="02">02</option>' . "\n"
  1799. . '<option value="03">03</option>' . "\n"
  1800. . '<option value="04">04</option>' . "\n"
  1801. . '<option value="05">05</option>' . "\n"
  1802. . '<option value="06">06</option>' . "\n"
  1803. . '<option value="07">07</option>' . "\n"
  1804. . '<option value="08">08</option>' . "\n"
  1805. . '<option value="09">09</option>' . "\n"
  1806. . '<option value="10">10</option>' . "\n"
  1807. . '<option value="11">11</option>' . "\n"
  1808. . '<option value="12">12</option>' . "\n"
  1809. . '<option value="13">13</option>' . "\n"
  1810. . '<option value="14">14</option>' . "\n"
  1811. . '<option value="15">15</option>' . "\n"
  1812. . '<option value="16">16</option>' . "\n"
  1813. . '<option value="17">17</option>' . "\n"
  1814. . '<option value="18">18</option>' . "\n"
  1815. . '<option value="19">19</option>' . "\n"
  1816. . '<option value="20">20</option>' . "\n"
  1817. . '<option value="21">21</option>' . "\n"
  1818. . '<option value="22">22</option>' . "\n"
  1819. . '<option value="23">23</option>' . "\n"
  1820. . '<option value="24">24</option>' . "\n"
  1821. . '<option value="25">25</option>' . "\n"
  1822. . '<option value="26">26</option>' . "\n"
  1823. . '<option value="27">27</option>' . "\n"
  1824. . '<option value="28">28</option>' . "\n"
  1825. . '<option value="29">29</option>' . "\n"
  1826. . '<option value="30">30</option>' . "\n"
  1827. . '<option value="31">31</option>' . "\n"
  1828. . '<option value="32">32</option>' . "\n"
  1829. . '<option value="33">33</option>' . "\n"
  1830. . '<option value="34">34</option>' . "\n"
  1831. . '<option value="35">35</option>' . "\n"
  1832. . '<option value="36">36</option>' . "\n"
  1833. . '<option value="37">37</option>' . "\n"
  1834. . '<option value="38">38</option>' . "\n"
  1835. . '<option value="39">39</option>' . "\n"
  1836. . '<option value="40">40</option>' . "\n"
  1837. . '<option value="41">41</option>' . "\n"
  1838. . '<option value="42">42</option>' . "\n"
  1839. . '<option value="43">43</option>' . "\n"
  1840. . '<option value="44">44</option>' . "\n"
  1841. . '<option value="45">45</option>' . "\n"
  1842. . '<option value="46">46</option>' . "\n"
  1843. . '<option value="47">47</option>' . "\n"
  1844. . '<option value="48">48</option>' . "\n"
  1845. . '<option value="49">49</option>' . "\n"
  1846. . '<option value="50">50</option>' . "\n"
  1847. . '<option value="51">51</option>' . "\n"
  1848. . '<option value="52" selected="selected">52</option>' . "\n"
  1849. . '<option value="53">53</option>' . "\n"
  1850. . '<option value="54">54</option>' . "\n"
  1851. . '<option value="55">55</option>' . "\n"
  1852. . '<option value="56">56</option>' . "\n"
  1853. . '<option value="57">57</option>' . "\n"
  1854. . '<option value="58">58</option>' . "\n"
  1855. . '<option value="59">59</option>' . "\n"
  1856. . '</select>' . "\n",
  1857. $dh->select_second('52',
  1858. array('include_blank' => true)));
  1859.  
  1860. // Test override of seconds argument
  1861. // Simulate 22 parsed from $_REQUEST
  1862. $dh->attribute_name = 'right_this_second';
  1863. $dh->request_seconds['right_this_second'] = 22;
  1864. // Test generation with 43 selected, default format
  1865. $this->assertEquals('<select name="second">' . "\n"
  1866. . '<option value="00">00</option>' . "\n"
  1867. . '<option value="01">01</option>' . "\n"
  1868. . '<option value="02">02</option>' . "\n"
  1869. . '<option value="03">03</option>' . "\n"
  1870. . '<option value="04">04</option>' . "\n"
  1871. . '<option value="05">05</option>' . "\n"
  1872. . '<option value="06">06</option>' . "\n"
  1873. . '<option value="07">07</option>' . "\n"
  1874. . '<option value="08">08</option>' . "\n"
  1875. . '<option value="09">09</option>' . "\n"
  1876. . '<option value="10">10</option>' . "\n"
  1877. . '<option value="11">11</option>' . "\n"
  1878. . '<option value="12">12</option>' . "\n"
  1879. . '<option value="13">13</option>' . "\n"
  1880. . '<option value="14">14</option>' . "\n"
  1881. . '<option value="15">15</option>' . "\n"
  1882. . '<option value="16">16</option>' . "\n"
  1883. . '<option value="17">17</option>' . "\n"
  1884. . '<option value="18">18</option>' . "\n"
  1885. . '<option value="19">19</option>' . "\n"
  1886. . '<option value="20">20</option>' . "\n"
  1887. . '<option value="21">21</option>' . "\n"
  1888. . '<option value="22" selected="selected">22</option>' . "\n"
  1889. . '<option value="23">23</option>' . "\n"
  1890. . '<option value="24">24</option>' . "\n"
  1891. . '<option value="25">25</option>' . "\n"
  1892. . '<option value="26">26</option>' . "\n"
  1893. . '<option value="27">27</option>' . "\n"
  1894. . '<option value="28">28</option>' . "\n"
  1895. . '<option value="29">29</option>' . "\n"
  1896. . '<option value="30">30</option>' . "\n"
  1897. . '<option value="31">31</option>' . "\n"
  1898. . '<option value="32">32</option>' . "\n"
  1899. . '<option value="33">33</option>' . "\n"
  1900. . '<option value="34">34</option>' . "\n"
  1901. . '<option value="35">35</option>' . "\n"
  1902. . '<option value="36">36</option>' . "\n"
  1903. . '<option value="37">37</option>' . "\n"
  1904. . '<option value="38">38</option>' . "\n"
  1905. . '<option value="39">39</option>' . "\n"
  1906. . '<option value="40">40</option>' . "\n"
  1907. . '<option value="41">41</option>' . "\n"
  1908. . '<option value="42">42</option>' . "\n"
  1909. . '<option value="43">43</option>' . "\n"
  1910. . '<option value="44">44</option>' . "\n"
  1911. . '<option value="45">45</option>' . "\n"
  1912. . '<option value="46">46</option>' . "\n"
  1913. . '<option value="47">47</option>' . "\n"
  1914. . '<option value="48">48</option>' . "\n"
  1915. . '<option value="49">49</option>' . "\n"
  1916. . '<option value="50">50</option>' . "\n"
  1917. . '<option value="51">51</option>' . "\n"
  1918. . '<option value="52">52</option>' . "\n"
  1919. . '<option value="53">53</option>' . "\n"
  1920. . '<option value="54">54</option>' . "\n"
  1921. . '<option value="55">55</option>' . "\n"
  1922. . '<option value="56">56</option>' . "\n"
  1923. . '<option value="57">57</option>' . "\n"
  1924. . '<option value="58">58</option>' . "\n"
  1925. . '<option value="59">59</option>' . "\n"
  1926. . '</select>' . "\n",
  1927. $dh->select_second('43'));
  1928. }
  1929.  
  1930. /**
  1931. * Test select_minute()
  1932. *
  1933. * Test {@link DateHelper::select_minute()} method
  1934. */
  1935. public function testSelect_minute() {
  1936. $dh = new DateHelper;
  1937.  
  1938. // Test generation with all arguments omitted
  1939. $this->assertContains('selected="selected">'.date('i'),
  1940. $dh->select_minute());
  1941.  
  1942. // Test generation with 43 selected, default format
  1943. $this->assertEquals('<select name="minute">' . "\n"
  1944. . '<option value="00">00</option>' . "\n"
  1945. . '<option value="01">01</option>' . "\n"
  1946. . '<option value="02">02</option>' . "\n"
  1947. . '<option value="03">03</option>' . "\n"
  1948. . '<option value="04">04</option>' . "\n"
  1949. . '<option value="05">05</option>' . "\n"
  1950. . '<option value="06">06</option>' . "\n"
  1951. . '<option value="07">07</option>' . "\n"
  1952. . '<option value="08">08</option>' . "\n"
  1953. . '<option value="09">09</option>' . "\n"
  1954. . '<option value="10">10</option>' . "\n"
  1955. . '<option value="11">11</option>' . "\n"
  1956. . '<option value="12">12</option>' . "\n"
  1957. . '<option value="13">13</option>' . "\n"
  1958. . '<option value="14">14</option>' . "\n"
  1959. . '<option value="15">15</option>' . "\n"
  1960. . '<option value="16">16</option>' . "\n"
  1961. . '<option value="17">17</option>' . "\n"
  1962. . '<option value="18">18</option>' . "\n"
  1963. . '<option value="19">19</option>' . "\n"
  1964. . '<option value="20">20</option>' . "\n"
  1965. . '<option value="21">21</option>' . "\n"
  1966. . '<option value="22">22</option>' . "\n"
  1967. . '<option value="23">23</option>' . "\n"
  1968. . '<option value="24">24</option>' . "\n"
  1969. . '<option value="25">25</option>' . "\n"
  1970. . '<option value="26">26</option>' . "\n"
  1971. . '<option value="27">27</option>' . "\n"
  1972. . '<option value="28">28</option>' . "\n"
  1973. . '<option value="29">29</option>' . "\n"
  1974. . '<option value="30">30</option>' . "\n"
  1975. . '<option value="31">31</option>' . "\n"
  1976. . '<option value="32">32</option>' . "\n"
  1977. . '<option value="33">33</option>' . "\n"
  1978. . '<option value="34">34</option>' . "\n"
  1979. . '<option value="35">35</option>' . "\n"
  1980. . '<option value="36">36</option>' . "\n"
  1981. . '<option value="37">37</option>' . "\n"
  1982. . '<option value="38">38</option>' . "\n"
  1983. . '<option value="39">39</option>' . "\n"
  1984. . '<option value="40">40</option>' . "\n"
  1985. . '<option value="41">41</option>' . "\n"
  1986. . '<option value="42">42</option>' . "\n"
  1987. . '<option value="43" selected="selected">43</option>' . "\n"
  1988. . '<option value="44">44</option>' . "\n"
  1989. . '<option value="45">45</option>' . "\n"
  1990. . '<option value="46">46</option>' . "\n"
  1991. . '<option value="47">47</option>' . "\n"
  1992. . '<option value="48">48</option>' . "\n"
  1993. . '<option value="49">49</option>' . "\n"
  1994. . '<option value="50">50</option>' . "\n"
  1995. . '<option value="51">51</option>' . "\n"
  1996. . '<option value="52">52</option>' . "\n"
  1997. . '<option value="53">53</option>' . "\n"
  1998. . '<option value="54">54</option>' . "\n"
  1999. . '<option value="55">55</option>' . "\n"
  2000. . '<option value="56">56</option>' . "\n"
  2001. . '<option value="57">57</option>' . "\n"
  2002. . '<option value="58">58</option>' . "\n"
  2003. . '<option value="59">59</option>' . "\n"
  2004. . '</select>' . "\n",
  2005. $dh->select_minute('43'));
  2006.  
  2007. // Test generation with 17 selected, name change
  2008. $this->assertEquals('<select name="last-minute">' . "\n"
  2009. . '<option value="00">00</option>' . "\n"
  2010. . '<option value="01">01</option>' . "\n"
  2011. . '<option value="02">02</option>' . "\n"
  2012. . '<option value="03">03</option>' . "\n"
  2013. . '<option value="04">04</option>' . "\n"
  2014. . '<option value="05">05</option>' . "\n"
  2015. . '<option value="06">06</option>' . "\n"
  2016. . '<option value="07">07</option>' . "\n"
  2017. . '<option value="08">08</option>' . "\n"
  2018. . '<option value="09">09</option>' . "\n"
  2019. . '<option value="10">10</option>' . "\n"
  2020. . '<option value="11">11</option>' . "\n"
  2021. . '<option value="12">12</option>' . "\n"
  2022. . '<option value="13">13</option>' . "\n"
  2023. . '<option value="14">14</option>' . "\n"
  2024. . '<option value="15">15</option>' . "\n"
  2025. . '<option value="16">16</option>' . "\n"
  2026. . '<option value="17" selected="selected">17</option>' . "\n"
  2027. . '<option value="18">18</option>' . "\n"
  2028. . '<option value="19">19</option>' . "\n"
  2029. . '<option value="20">20</option>' . "\n"
  2030. . '<option value="21">21</option>' . "\n"
  2031. . '<option value="22">22</option>' . "\n"
  2032. . '<option value="23">23</option>' . "\n"
  2033. . '<option value="24">24</option>' . "\n"
  2034. . '<option value="25">25</option>' . "\n"
  2035. . '<option value="26">26</option>' . "\n"
  2036. . '<option value="27">27</option>' . "\n"
  2037. . '<option value="28">28</option>' . "\n"
  2038. . '<option value="29">29</option>' . "\n"
  2039. . '<option value="30">30</option>' . "\n"
  2040. . '<option value="31">31</option>' . "\n"
  2041. . '<option value="32">32</option>' . "\n"
  2042. . '<option value="33">33</option>' . "\n"
  2043. . '<option value="34">34</option>' . "\n"
  2044. . '<option value="35">35</option>' . "\n"
  2045. . '<option value="36">36</option>' . "\n"
  2046. . '<option value="37">37</option>' . "\n"
  2047. . '<option value="38">38</option>' . "\n"
  2048. . '<option value="39">39</option>' . "\n"
  2049. . '<option value="40">40</option>' . "\n"
  2050. . '<option value="41">41</option>' . "\n"
  2051. . '<option value="42">42</option>' . "\n"
  2052. . '<option value="43">43</option>' . "\n"
  2053. . '<option value="44">44</option>' . "\n"
  2054. . '<option value="45">45</option>' . "\n"
  2055. . '<option value="46">46</option>' . "\n"
  2056. . '<option value="47">47</option>' . "\n"
  2057. . '<option value="48">48</option>' . "\n"
  2058. . '<option value="49">49</option>' . "\n"
  2059. . '<option value="50">50</option>' . "\n"
  2060. . '<option value="51">51</option>' . "\n"
  2061. . '<option value="52">52</option>' . "\n"
  2062. . '<option value="53">53</option>' . "\n"
  2063. . '<option value="54">54</option>' . "\n"
  2064. . '<option value="55">55</option>' . "\n"
  2065. . '<option value="56">56</option>' . "\n"
  2066. . '<option value="57">57</option>' . "\n"
  2067. . '<option value="58">58</option>' . "\n"
  2068. . '<option value="59">59</option>' . "\n"
  2069. . '</select>' . "\n",
  2070. $dh->select_minute('17',
  2071. array('field_name' => 'last-minute')));
  2072.  
  2073. // Test generation with 52 selected, include blank
  2074. $this->assertEquals('<select name="minute">' . "\n"
  2075. . '<option value=""></option>' . "\n"
  2076. . '<option value="00">00</option>' . "\n"
  2077. . '<option value="01">01</option>' . "\n"
  2078. . '<option value="02">02</option>' . "\n"
  2079. . '<option value="03">03</option>' . "\n"
  2080. . '<option value="04">04</option>' . "\n"
  2081. . '<option value="05">05</option>' . "\n"
  2082. . '<option value="06">06</option>' . "\n"
  2083. . '<option value="07">07</option>' . "\n"
  2084. . '<option value="08">08</option>' . "\n"
  2085. . '<option value="09">09</option>' . "\n"
  2086. . '<option value="10">10</option>' . "\n"
  2087. . '<option value="11">11</option>' . "\n"
  2088. . '<option value="12">12</option>' . "\n"
  2089. . '<option value="13">13</option>' . "\n"
  2090. . '<option value="14">14</option>' . "\n"
  2091. . '<option value="15">15</option>' . "\n"
  2092. . '<option value="16">16</option>' . "\n"
  2093. . '<option value="17">17</option>' . "\n"
  2094. . '<option value="18">18</option>' . "\n"
  2095. . '<option value="19">19</option>' . "\n"
  2096. . '<option value="20">20</option>' . "\n"
  2097. . '<option value="21">21</option>' . "\n"
  2098. . '<option value="22">22</option>' . "\n"
  2099. . '<option value="23">23</option>' . "\n"
  2100. . '<option value="24">24</option>' . "\n"
  2101. . '<option value="25">25</option>' . "\n"
  2102. . '<option value="26">26</option>' . "\n"
  2103. . '<option value="27">27</option>' . "\n"
  2104. . '<option value="28">28</option>' . "\n"
  2105. . '<option value="29">29</option>' . "\n"
  2106. . '<option value="30">30</option>' . "\n"
  2107. . '<option value="31">31</option>' . "\n"
  2108. . '<option value="32">32</option>' . "\n"
  2109. . '<option value="33">33</option>' . "\n"
  2110. . '<option value="34">34</option>' . "\n"
  2111. . '<option value="35">35</option>' . "\n"
  2112. . '<option value="36">36</option>' . "\n"
  2113. . '<option value="37">37</option>' . "\n"
  2114. . '<option value="38">38</option>' . "\n"
  2115. . '<option value="39">39</option>' . "\n"
  2116. . '<option value="40">40</option>' . "\n"
  2117. . '<option value="41">41</option>' . "\n"
  2118. . '<option value="42">42</option>' . "\n"
  2119. . '<option value="43">43</option>' . "\n"
  2120. . '<option value="44">44</option>' . "\n"
  2121. . '<option value="45">45</option>' . "\n"
  2122. . '<option value="46">46</option>' . "\n"
  2123. . '<option value="47">47</option>' . "\n"
  2124. . '<option value="48">48</option>' . "\n"
  2125. . '<option value="49">49</option>' . "\n"
  2126. . '<option value="50">50</option>' . "\n"
  2127. . '<option value="51">51</option>' . "\n"
  2128. . '<option value="52" selected="selected">52</option>' . "\n"
  2129. . '<option value="53">53</option>' . "\n"
  2130. . '<option value="54">54</option>' . "\n"
  2131. . '<option value="55">55</option>' . "\n"
  2132. . '<option value="56">56</option>' . "\n"
  2133. . '<option value="57">57</option>' . "\n"
  2134. . '<option value="58">58</option>' . "\n"
  2135. . '<option value="59">59</option>' . "\n"
  2136. . '</select>' . "\n",
  2137. $dh->select_minute('52',
  2138. array('include_blank' => true)));
  2139.  
  2140. // Test override of minutes argument
  2141. // Simulate 22 parsed from $_REQUEST
  2142. $dh->attribute_name = 'right_this_minute';
  2143. $dh->request_minutes['right_this_minute'] = 22;
  2144. // Test generation with 43 selected, default format
  2145. $this->assertEquals('<select name="minute">' . "\n"
  2146. . '<option value="00">00</option>' . "\n"
  2147. . '<option value="01">01</option>' . "\n"
  2148. . '<option value="02">02</option>' . "\n"
  2149. . '<option value="03">03</option>' . "\n"
  2150. . '<option value="04">04</option>' . "\n"
  2151. . '<option value="05">05</option>' . "\n"
  2152. . '<option value="06">06</option>' . "\n"
  2153. . '<option value="07">07</option>' . "\n"
  2154. . '<option value="08">08</option>' . "\n"
  2155. . '<option value="09">09</option>' . "\n"
  2156. . '<option value="10">10</option>' . "\n"
  2157. . '<option value="11">11</option>' . "\n"
  2158. . '<option value="12">12</option>' . "\n"
  2159. . '<option value="13">13</option>' . "\n"
  2160. . '<option value="14">14</option>' . "\n"
  2161. . '<option value="15">15</option>' . "\n"
  2162. . '<option value="16">16</option>' . "\n"
  2163. . '<option value="17">17</option>' . "\n"
  2164. . '<option value="18">18</option>' . "\n"
  2165. . '<option value="19">19</option>' . "\n"
  2166. . '<option value="20">20</option>' . "\n"
  2167. . '<option value="21">21</option>' . "\n"
  2168. . '<option value="22" selected="selected">22</option>' . "\n"
  2169. . '<option value="23">23</option>' . "\n"
  2170. . '<option value="24">24</option>' . "\n"
  2171. . '<option value="25">25</option>' . "\n"
  2172. . '<option value="26">26</option>' . "\n"
  2173. . '<option value="27">27</option>' . "\n"
  2174. . '<option value="28">28</option>' . "\n"
  2175. . '<option value="29">29</option>' . "\n"
  2176. . '<option value="30">30</option>' . "\n"
  2177. . '<option value="31">31</option>' . "\n"
  2178. . '<option value="32">32</option>' . "\n"
  2179. . '<option value="33">33</option>' . "\n"
  2180. . '<option value="34">34</option>' . "\n"
  2181. . '<option value="35">35</option>' . "\n"
  2182. . '<option value="36">36</option>' . "\n"
  2183. . '<option value="37">37</option>' . "\n"
  2184. . '<option value="38">38</option>' . "\n"
  2185. . '<option value="39">39</option>' . "\n"
  2186. . '<option value="40">40</option>' . "\n"
  2187. . '<option value="41">41</option>' . "\n"
  2188. . '<option value="42">42</option>' . "\n"
  2189. . '<option value="43">43</option>' . "\n"
  2190. . '<option value="44">44</option>' . "\n"
  2191. . '<option value="45">45</option>' . "\n"
  2192. . '<option value="46">46</option>' . "\n"
  2193. . '<option value="47">47</option>' . "\n"
  2194. . '<option value="48">48</option>' . "\n"
  2195. . '<option value="49">49</option>' . "\n"
  2196. . '<option value="50">50</option>' . "\n"
  2197. . '<option value="51">51</option>' . "\n"
  2198. . '<option value="52">52</option>' . "\n"
  2199. . '<option value="53">53</option>' . "\n"
  2200. . '<option value="54">54</option>' . "\n"
  2201. . '<option value="55">55</option>' . "\n"
  2202. . '<option value="56">56</option>' . "\n"
  2203. . '<option value="57">57</option>' . "\n"
  2204. . '<option value="58">58</option>' . "\n"
  2205. . '<option value="59">59</option>' . "\n"
  2206. . '</select>' . "\n",
  2207. $dh->select_minute('43'));
  2208. }
  2209.  
  2210. /**
  2211. * Test select_hour()
  2212. *
  2213. * Test {@link DateHelper::select_hour()} method
  2214. */
  2215. public function testSelect_hour() {
  2216. $dh = new DateHelper;
  2217.  
  2218. // Test generation with all arguments omitted
  2219. $this->assertContains('selected="selected">'.date('H'),
  2220. $dh->select_hour());
  2221.  
  2222. // Test generation with 17 selected, default format
  2223. $this->assertEquals('<select name="hour">' . "\n"
  2224. . '<option value="00">00</option>' . "\n"
  2225. . '<option value="01">01</option>' . "\n"
  2226. . '<option value="02">02</option>' . "\n"
  2227. . '<option value="03">03</option>' . "\n"
  2228. . '<option value="04">04</option>' . "\n"
  2229. . '<option value="05">05</option>' . "\n"
  2230. . '<option value="06">06</option>' . "\n"
  2231. . '<option value="07">07</option>' . "\n"
  2232. . '<option value="08">08</option>' . "\n"
  2233. . '<option value="09">09</option>' . "\n"
  2234. . '<option value="10">10</option>' . "\n"
  2235. . '<option value="11">11</option>' . "\n"
  2236. . '<option value="12">12</option>' . "\n"
  2237. . '<option value="13">13</option>' . "\n"
  2238. . '<option value="14">14</option>' . "\n"
  2239. . '<option value="15">15</option>' . "\n"
  2240. . '<option value="16">16</option>' . "\n"
  2241. . '<option value="17" selected="selected">17</option>' . "\n"
  2242. . '<option value="18">18</option>' . "\n"
  2243. . '<option value="19">19</option>' . "\n"
  2244. . '<option value="20">20</option>' . "\n"
  2245. . '<option value="21">21</option>' . "\n"
  2246. . '<option value="22">22</option>' . "\n"
  2247. . '<option value="23">23</option>' . "\n"
  2248. . '</select>' . "\n",
  2249. $dh->select_hour('17'));
  2250.  
  2251. // Test generation with 12 selected, name change
  2252. $this->assertEquals('<select name="this-hour">' . "\n"
  2253. . '<option value="00">00</option>' . "\n"
  2254. . '<option value="01">01</option>' . "\n"
  2255. . '<option value="02">02</option>' . "\n"
  2256. . '<option value="03">03</option>' . "\n"
  2257. . '<option value="04">04</option>' . "\n"
  2258. . '<option value="05">05</option>' . "\n"
  2259. . '<option value="06">06</option>' . "\n"
  2260. . '<option value="07">07</option>' . "\n"
  2261. . '<option value="08">08</option>' . "\n"
  2262. . '<option value="09">09</option>' . "\n"
  2263. . '<option value="10">10</option>' . "\n"
  2264. . '<option value="11">11</option>' . "\n"
  2265. . '<option value="12" selected="selected">12</option>' . "\n"
  2266. . '<option value="13">13</option>' . "\n"
  2267. . '<option value="14">14</option>' . "\n"
  2268. . '<option value="15">15</option>' . "\n"
  2269. . '<option value="16">16</option>' . "\n"
  2270. . '<option value="17">17</option>' . "\n"
  2271. . '<option value="18">18</option>' . "\n"
  2272. . '<option value="19">19</option>' . "\n"
  2273. . '<option value="20">20</option>' . "\n"
  2274. . '<option value="21">21</option>' . "\n"
  2275. . '<option value="22">22</option>' . "\n"
  2276. . '<option value="23">23</option>' . "\n"
  2277. . '</select>' . "\n",
  2278. $dh->select_hour('12',
  2279. array('field_name' => 'this-hour')));
  2280.  
  2281. // Test generation with 09 selected, include blank
  2282. $this->assertEquals('<select name="hour">' . "\n"
  2283. . '<option value=""></option>' . "\n"
  2284. . '<option value="00">00</option>' . "\n"
  2285. . '<option value="01">01</option>' . "\n"
  2286. . '<option value="02">02</option>' . "\n"
  2287. . '<option value="03">03</option>' . "\n"
  2288. . '<option value="04">04</option>' . "\n"
  2289. . '<option value="05">05</option>' . "\n"
  2290. . '<option value="06">06</option>' . "\n"
  2291. . '<option value="07">07</option>' . "\n"
  2292. . '<option value="08">08</option>' . "\n"
  2293. . '<option value="09" selected="selected">09</option>' . "\n"
  2294. . '<option value="10">10</option>' . "\n"
  2295. . '<option value="11">11</option>' . "\n"
  2296. . '<option value="12">12</option>' . "\n"
  2297. . '<option value="13">13</option>' . "\n"
  2298. . '<option value="14">14</option>' . "\n"
  2299. . '<option value="15">15</option>' . "\n"
  2300. . '<option value="16">16</option>' . "\n"
  2301. . '<option value="17">17</option>' . "\n"
  2302. . '<option value="18">18</option>' . "\n"
  2303. . '<option value="19">19</option>' . "\n"
  2304. . '<option value="20">20</option>' . "\n"
  2305. . '<option value="21">21</option>' . "\n"
  2306. . '<option value="22">22</option>' . "\n"
  2307. . '<option value="23">23</option>' . "\n"
  2308. . '</select>' . "\n",
  2309. $dh->select_hour('09',
  2310. array('include_blank' => true)));
  2311.  
  2312.  
  2313. // Test override of hours argument
  2314. // Simulate 22 parsed from $_REQUEST
  2315. $dh->attribute_name = 'right_this_hour';
  2316. $dh->request_hours['right_this_hour'] = 22;
  2317. // Test generation with 17 selected, default format
  2318. $this->assertEquals('<select name="hour">' . "\n"
  2319. . '<option value="00">00</option>' . "\n"
  2320. . '<option value="01">01</option>' . "\n"
  2321. . '<option value="02">02</option>' . "\n"
  2322. . '<option value="03">03</option>' . "\n"
  2323. . '<option value="04">04</option>' . "\n"
  2324. . '<option value="05">05</option>' . "\n"
  2325. . '<option value="06">06</option>' . "\n"
  2326. . '<option value="07">07</option>' . "\n"
  2327. . '<option value="08">08</option>' . "\n"
  2328. . '<option value="09">09</option>' . "\n"
  2329. . '<option value="10">10</option>' . "\n"
  2330. . '<option value="11">11</option>' . "\n"
  2331. . '<option value="12">12</option>' . "\n"
  2332. . '<option value="13">13</option>' . "\n"
  2333. . '<option value="14">14</option>' . "\n"
  2334. . '<option value="15">15</option>' . "\n"
  2335. . '<option value="16">16</option>' . "\n"
  2336. . '<option value="17">17</option>' . "\n"
  2337. . '<option value="18">18</option>' . "\n"
  2338. . '<option value="19">19</option>' . "\n"
  2339. . '<option value="20">20</option>' . "\n"
  2340. . '<option value="21">21</option>' . "\n"
  2341. . '<option value="22" selected="selected">22</option>' . "\n"
  2342. . '<option value="23">23</option>' . "\n"
  2343. . '</select>' . "\n",
  2344. $dh->select_hour('17'));
  2345. }
  2346.  
  2347. /**
  2348. * Test select_day() method
  2349. *
  2350. * Test {@link DateHelper::select_day()}
  2351. */
  2352. public function testSelect_day_method() {
  2353. $dh = new DateHelper();
  2354.  
  2355. // Test generation with all arguments omitted
  2356. $this->assertContains('selected="selected">'.date('d'),
  2357. $dh->select_day());
  2358.  
  2359. // Test generation with twelfth selected, default format
  2360. $this->assertEquals('<select name="day">' . "\n"
  2361. . '<option value="01">01</option>' . "\n"
  2362. . '<option value="02">02</option>' . "\n"
  2363. . '<option value="03">03</option>' . "\n"
  2364. . '<option value="04">04</option>' . "\n"
  2365. . '<option value="05">05</option>' . "\n"
  2366. . '<option value="06">06</option>' . "\n"
  2367. . '<option value="07">07</option>' . "\n"
  2368. . '<option value="08">08</option>' . "\n"
  2369. . '<option value="09">09</option>' . "\n"
  2370. . '<option value="10">10</option>' . "\n"
  2371. . '<option value="11">11</option>' . "\n"
  2372. . '<option value="12" selected="selected">12</option>' . "\n"
  2373. . '<option value="13">13</option>' . "\n"
  2374. . '<option value="14">14</option>' . "\n"
  2375. . '<option value="15">15</option>' . "\n"
  2376. . '<option value="16">16</option>' . "\n"
  2377. . '<option value="17">17</option>' . "\n"
  2378. . '<option value="18">18</option>' . "\n"
  2379. . '<option value="19">19</option>' . "\n"
  2380. . '<option value="20">20</option>' . "\n"
  2381. . '<option value="21">21</option>' . "\n"
  2382. . '<option value="22">22</option>' . "\n"
  2383. . '<option value="23">23</option>' . "\n"
  2384. . '<option value="24">24</option>' . "\n"
  2385. . '<option value="25">25</option>' . "\n"
  2386. . '<option value="26">26</option>' . "\n"
  2387. . '<option value="27">27</option>' . "\n"
  2388. . '<option value="28">28</option>' . "\n"
  2389. . '<option value="29">29</option>' . "\n"
  2390. . '<option value="30">30</option>' . "\n"
  2391. . '<option value="31">31</option>' . "\n"
  2392. . '</select>' . "\n",
  2393. $dh->select_day('12'));
  2394.  
  2395. // Test generation with English selection, default format
  2396. $this->assertEquals('<select name="day">' . "\n"
  2397. . '<option value="01">01</option>' . "\n"
  2398. . '<option value="02">02</option>' . "\n"
  2399. . '<option value="03">03</option>' . "\n"
  2400. . '<option value="04">04</option>' . "\n"
  2401. . '<option value="05">05</option>' . "\n"
  2402. . '<option value="06">06</option>' . "\n"
  2403. . '<option value="07">07</option>' . "\n"
  2404. . '<option value="08">08</option>' . "\n"
  2405. . '<option value="09">09</option>' . "\n"
  2406. . '<option value="10">10</option>' . "\n"
  2407. . '<option value="11">11</option>' . "\n"
  2408. . '<option value="12">12</option>' . "\n"
  2409. . '<option value="13">13</option>' . "\n"
  2410. . '<option value="14">14</option>' . "\n"
  2411. . '<option value="15">15</option>' . "\n"
  2412. . '<option value="16">16</option>' . "\n"
  2413. . '<option value="17">17</option>' . "\n"
  2414. . '<option value="18">18</option>' . "\n"
  2415. . '<option value="19">19</option>' . "\n"
  2416. . '<option value="20">20</option>' . "\n"
  2417. . '<option value="21">21</option>' . "\n"
  2418. . '<option value="22">22</option>' . "\n"
  2419. . '<option value="23">23</option>' . "\n"
  2420. . '<option value="24">24</option>' . "\n"
  2421. . '<option value="25" selected="selected">25</option>' . "\n"
  2422. . '<option value="26">26</option>' . "\n"
  2423. . '<option value="27">27</option>' . "\n"
  2424. . '<option value="28">28</option>' . "\n"
  2425. . '<option value="29">29</option>' . "\n"
  2426. . '<option value="30">30</option>' . "\n"
  2427. . '<option value="31">31</option>' . "\n"
  2428. . '</select>' . "\n",
  2429. $dh->select_day('25 December 2002'));
  2430.  
  2431. // Test generation with twentieth selected, name change
  2432. $this->assertEquals('<select name="new-day">' . "\n"
  2433. . '<option value="01">01</option>' . "\n"
  2434. . '<option value="02">02</option>' . "\n"
  2435. . '<option value="03">03</option>' . "\n"
  2436. . '<option value="04">04</option>' . "\n"
  2437. . '<option value="05">05</option>' . "\n"
  2438. . '<option value="06">06</option>' . "\n"
  2439. . '<option value="07">07</option>' . "\n"
  2440. . '<option value="08">08</option>' . "\n"
  2441. . '<option value="09">09</option>' . "\n"
  2442. . '<option value="10">10</option>' . "\n"
  2443. . '<option value="11">11</option>' . "\n"
  2444. . '<option value="12">12</option>' . "\n"
  2445. . '<option value="13">13</option>' . "\n"
  2446. . '<option value="14">14</option>' . "\n"
  2447. . '<option value="15">15</option>' . "\n"
  2448. . '<option value="16">16</option>' . "\n"
  2449. . '<option value="17">17</option>' . "\n"
  2450. . '<option value="18">18</option>' . "\n"
  2451. . '<option value="19">19</option>' . "\n"
  2452. . '<option value="20" selected="selected">20</option>' . "\n"
  2453. . '<option value="21">21</option>' . "\n"
  2454. . '<option value="22">22</option>' . "\n"
  2455. . '<option value="23">23</option>' . "\n"
  2456. . '<option value="24">24</option>' . "\n"
  2457. . '<option value="25">25</option>' . "\n"
  2458. . '<option value="26">26</option>' . "\n"
  2459. . '<option value="27">27</option>' . "\n"
  2460. . '<option value="28">28</option>' . "\n"
  2461. . '<option value="29">29</option>' . "\n"
  2462. . '<option value="30">30</option>' . "\n"
  2463. . '<option value="31">31</option>' . "\n"
  2464. . '</select>' . "\n",
  2465. $dh->select_day('20',
  2466. array('field_name'=>'new-day')));
  2467.  
  2468. // Test generation with thirtieth selected, include blank
  2469. $this->assertEquals('<select name="day">' . "\n"
  2470. . '<option value=""></option>' . "\n"
  2471. . '<option value="01">01</option>' . "\n"
  2472. . '<option value="02">02</option>' . "\n"
  2473. . '<option value="03">03</option>' . "\n"
  2474. . '<option value="04">04</option>' . "\n"
  2475. . '<option value="05">05</option>' . "\n"
  2476. . '<option value="06">06</option>' . "\n"
  2477. . '<option value="07">07</option>' . "\n"
  2478. . '<option value="08">08</option>' . "\n"
  2479. . '<option value="09">09</option>' . "\n"
  2480. . '<option value="10">10</option>' . "\n"
  2481. . '<option value="11">11</option>' . "\n"
  2482. . '<option value="12">12</option>' . "\n"
  2483. . '<option value="13">13</option>' . "\n"
  2484. . '<option value="14">14</option>' . "\n"
  2485. . '<option value="15">15</option>' . "\n"
  2486. . '<option value="16">16</option>' . "\n"
  2487. . '<option value="17">17</option>' . "\n"
  2488. . '<option value="18">18</option>' . "\n"
  2489. . '<option value="19">19</option>' . "\n"
  2490. . '<option value="20">20</option>' . "\n"
  2491. . '<option value="21">21</option>' . "\n"
  2492. . '<option value="22">22</option>' . "\n"
  2493. . '<option value="23">23</option>' . "\n"
  2494. . '<option value="24">24</option>' . "\n"
  2495. . '<option value="25">25</option>' . "\n"
  2496. . '<option value="26">26</option>' . "\n"
  2497. . '<option value="27">27</option>' . "\n"
  2498. . '<option value="28">28</option>' . "\n"
  2499. . '<option value="29">29</option>' . "\n"
  2500. . '<option value="30" selected="selected">30</option>' . "\n"
  2501. . '<option value="31">31</option>' . "\n"
  2502. . '</select>' . "\n",
  2503. $dh->select_day('30',
  2504. array('include_blank'=>true)));
  2505.  
  2506. // Test override of day argument
  2507. // Simulate fifth parsed from $_REQUEST
  2508. $dh->attribute_name = 'someday';
  2509. $dh->request_days = array('someday' => '05');
  2510. // Test generation with twelfth selected, default format
  2511. $this->assertEquals('<select name="day">' . "\n"
  2512. . '<option value="01">01</option>' . "\n"
  2513. . '<option value="02">02</option>' . "\n"
  2514. . '<option value="03">03</option>' . "\n"
  2515. . '<option value="04">04</option>' . "\n"
  2516. . '<option value="05" selected="selected">05</option>' . "\n"
  2517. . '<option value="06">06</option>' . "\n"
  2518. . '<option value="07">07</option>' . "\n"
  2519. . '<option value="08">08</option>' . "\n"
  2520. . '<option value="09">09</option>' . "\n"
  2521. . '<option value="10">10</option>' . "\n"
  2522. . '<option value="11">11</option>' . "\n"
  2523. . '<option value="12">12</option>' . "\n"
  2524. . '<option value="13">13</option>' . "\n"
  2525. . '<option value="14">14</option>' . "\n"
  2526. . '<option value="15">15</option>' . "\n"
  2527. . '<option value="16">16</option>' . "\n"
  2528. . '<option value="17">17</option>' . "\n"
  2529. . '<option value="18">18</option>' . "\n"
  2530. . '<option value="19">19</option>' . "\n"
  2531. . '<option value="20">20</option>' . "\n"
  2532. . '<option value="21">21</option>' . "\n"
  2533. . '<option value="22">22</option>' . "\n"
  2534. . '<option value="23">23</option>' . "\n"
  2535. . '<option value="24">24</option>' . "\n"
  2536. . '<option value="25">25</option>' . "\n"
  2537. . '<option value="26">26</option>' . "\n"
  2538. . '<option value="27">27</option>' . "\n"
  2539. . '<option value="28">28</option>' . "\n"
  2540. . '<option value="29">29</option>' . "\n"
  2541. . '<option value="30">30</option>' . "\n"
  2542. . '<option value="31">31</option>' . "\n"
  2543. . '</select>' . "\n",
  2544. $dh->select_day('12'));
  2545. }
  2546.  
  2547. /**
  2548. * Test select_day() function
  2549. *
  2550. * Test {@link select_day()} in procedural file {@link date_helper.php}
  2551. */
  2552. public function testSelect_day_function() {
  2553.  
  2554. // Test generation with twelfth selected, default format
  2555. $this->assertEquals('<select name="day">' . "\n"
  2556. . '<option value="01">01</option>' . "\n"
  2557. . '<option value="02">02</option>' . "\n"
  2558. . '<option value="03">03</option>' . "\n"
  2559. . '<option value="04">04</option>' . "\n"
  2560. . '<option value="05">05</option>' . "\n"
  2561. . '<option value="06">06</option>' . "\n"
  2562. . '<option value="07">07</option>' . "\n"
  2563. . '<option value="08">08</option>' . "\n"
  2564. . '<option value="09">09</option>' . "\n"
  2565. . '<option value="10">10</option>' . "\n"
  2566. . '<option value="11">11</option>' . "\n"
  2567. . '<option value="12" selected="selected">12</option>' . "\n"
  2568. . '<option value="13">13</option>' . "\n"
  2569. . '<option value="14">14</option>' . "\n"
  2570. . '<option value="15">15</option>' . "\n"
  2571. . '<option value="16">16</option>' . "\n"
  2572. . '<option value="17">17</option>' . "\n"
  2573. . '<option value="18">18</option>' . "\n"
  2574. . '<option value="19">19</option>' . "\n"
  2575. . '<option value="20">20</option>' . "\n"
  2576. . '<option value="21">21</option>' . "\n"
  2577. . '<option value="22">22</option>' . "\n"
  2578. . '<option value="23">23</option>' . "\n"
  2579. . '<option value="24">24</option>' . "\n"
  2580. . '<option value="25">25</option>' . "\n"
  2581. . '<option value="26">26</option>' . "\n"
  2582. . '<option value="27">27</option>' . "\n"
  2583. . '<option value="28">28</option>' . "\n"
  2584. . '<option value="29">29</option>' . "\n"
  2585. . '<option value="30">30</option>' . "\n"
  2586. . '<option value="31">31</option>' . "\n"
  2587. . '</select>' . "\n",
  2588. select_day('12'));
  2589. }
  2590.  
  2591. /**
  2592. * Test select_month() method
  2593. *
  2594. * Test the {@link DateHelper::select_month()} method.<br />
  2595. * <b>NB:</b> doesn't test correctness of selection of current month
  2596. */
  2597. public function testSelect_month_method() {
  2598. $dh = new DateHelper();
  2599.  
  2600. // Test generation with all arguments omitted
  2601. $this->assertContains('selected="selected">'.date('F'),
  2602. $dh->select_month());
  2603.  
  2604. // Test generation with November selected, default output format
  2605. $this->assertEquals('<select name="month">' . "\n"
  2606. . '<option value="01">January</option>' . "\n"
  2607. . '<option value="02">February</option>' . "\n"
  2608. . '<option value="03">March</option>' . "\n"
  2609. . '<option value="04">April</option>' . "\n"
  2610. . '<option value="05">May</option>' . "\n"
  2611. . '<option value="06">June</option>' . "\n"
  2612. . '<option value="07">July</option>' . "\n"
  2613. . '<option value="08">August</option>' . "\n"
  2614. . '<option value="09">September</option>' . "\n"
  2615. . '<option value="10">October</option>' . "\n"
  2616. . '<option value="11" selected="selected">November</option>' . "\n"
  2617. . '<option value="12">December</option>' . "\n"
  2618. . '</select>' . "\n",
  2619. $dh->select_month('11'));
  2620.  
  2621. // Test generation with English selection, default output format
  2622. $this->assertEquals('<select name="month">' . "\n"
  2623. . '<option value="01">January</option>' . "\n"
  2624. . '<option value="02">February</option>' . "\n"
  2625. . '<option value="03">March</option>' . "\n"
  2626. . '<option value="04">April</option>' . "\n"
  2627. . '<option value="05">May</option>' . "\n"
  2628. . '<option value="06">June</option>' . "\n"
  2629. . '<option value="07" selected="selected">July</option>' . "\n"
  2630. . '<option value="08">August</option>' . "\n"
  2631. . '<option value="09">September</option>' . "\n"
  2632. . '<option value="10">October</option>' . "\n"
  2633. . '<option value="11">November</option>' . "\n"
  2634. . '<option value="12">December</option>' . "\n"
  2635. . '</select>' . "\n",
  2636. $dh->select_month('28 July 2004'));
  2637.  
  2638. // Test generation of month numbers as visible content
  2639. $this->assertEquals('<select name="month">' . "\n"
  2640. . '<option value="01">1</option>' . "\n"
  2641. . '<option value="02">2</option>' . "\n"
  2642. . '<option value="03" selected="selected">3</option>' . "\n"
  2643. . '<option value="04">4</option>' . "\n"
  2644. . '<option value="05">5</option>' . "\n"
  2645. . '<option value="06">6</option>' . "\n"
  2646. . '<option value="07">7</option>' . "\n"
  2647. . '<option value="08">8</option>' . "\n"
  2648. . '<option value="09">9</option>' . "\n"
  2649. . '<option value="10">10</option>' . "\n"
  2650. . '<option value="11">11</option>' . "\n"
  2651. . '<option value="12">12</option>' . "\n"
  2652. . '</select>' . "\n",
  2653. $dh->select_month("03",
  2654. array('use_month_numbers'=>1)));
  2655.  
  2656. // Test addition of month numbers to visible content
  2657. $this->assertEquals('<select name="month">' . "\n"
  2658. . '<option value="01">1 - January</option>' . "\n"
  2659. . '<option value="02">2 - February</option>' . "\n"
  2660. . '<option value="03">3 - March</option>' . "\n"
  2661. . '<option value="04">4 - April</option>' . "\n"
  2662. . '<option value="05" selected="selected">5 - May</option>' . "\n"
  2663. . '<option value="06">6 - June</option>' . "\n"
  2664. . '<option value="07">7 - July</option>' . "\n"
  2665. . '<option value="08">8 - August</option>' . "\n"
  2666. . '<option value="09">9 - September</option>' . "\n"
  2667. . '<option value="10">10 - October</option>' . "\n"
  2668. . '<option value="11">11 - November</option>' . "\n"
  2669. . '<option value="12">12 - December</option>' . "\n"
  2670. . '</select>' . "\n",
  2671. $dh->select_month("05",
  2672. array('add_month_numbers'=>1)));
  2673.  
  2674. // Test override of month argument
  2675. // Simulate month of May parsed from $_REQUEST
  2676. $dh->attribute_name = 'sometime';
  2677. $dh->request_months = array('sometime' => '05');
  2678. // Test generation with November overridden, default output format
  2679. $this->assertEquals('<select name="month">' . "\n"
  2680. . '<option value="01">January</option>' . "\n"
  2681. . '<option value="02">February</option>' . "\n"
  2682. . '<option value="03">March</option>' . "\n"
  2683. . '<option value="04">April</option>' . "\n"
  2684. . '<option value="05" selected="selected">May</option>' . "\n"
  2685. . '<option value="06">June</option>' . "\n"
  2686. . '<option value="07">July</option>' . "\n"
  2687. . '<option value="08">August</option>' . "\n"
  2688. . '<option value="09">September</option>' . "\n"
  2689. . '<option value="10">October</option>' . "\n"
  2690. . '<option value="11">November</option>' . "\n"
  2691. . '<option value="12">December</option>' . "\n"
  2692. . '</select>' . "\n",
  2693. $dh->select_month('11'));
  2694. }
  2695.  
  2696. /**
  2697. * Test select_month() function
  2698. *
  2699. * Test the {@link select_month()} function in procedural file
  2700. * {@link date_helper.php}
  2701. */
  2702. public function testSelect_month_function() {
  2703.  
  2704. // Test generation with November selected, default output format
  2705. $this->assertEquals('<select name="month">' . "\n"
  2706. . '<option value="01">January</option>' . "\n"
  2707. . '<option value="02">February</option>' . "\n"
  2708. . '<option value="03">March</option>' . "\n"
  2709. . '<option value="04">April</option>' . "\n"
  2710. . '<option value="05">May</option>' . "\n"
  2711. . '<option value="06">June</option>' . "\n"
  2712. . '<option value="07">July</option>' . "\n"
  2713. . '<option value="08">August</option>' . "\n"
  2714. . '<option value="09">September</option>' . "\n"
  2715. . '<option value="10">October</option>' . "\n"
  2716. . '<option value="11" selected="selected">November</option>' . "\n"
  2717. . '<option value="12">December</option>' . "\n"
  2718. . '</select>' . "\n",
  2719. select_month('11'));
  2720. }
  2721.  
  2722. /**
  2723. * Test year_option()
  2724. */
  2725. public function testYear_option() {
  2726. $dh = new DateHelper;
  2727. $this->assertEquals('<option value="2001">2001</option>' . "\n",
  2728. $dh->year_option('2001','2002'));
  2729. $this->assertEquals('<option value="2004" selected="selected">'
  2730. . '2004</option>' . "\n",
  2731. $dh->year_option('2004','2004'));
  2732. }
  2733.  
  2734. /**
  2735. * Test select_year() method
  2736. *
  2737. * Test {@link DateHelper::select_year()}
  2738. */
  2739. public function testSelect_year() {
  2740. $dh = new DateHelper;
  2741.  
  2742. // Test generation with all arguments omitted
  2743. $this->assertContains('selected="selected">'.date('Y'),
  2744. $dh->select_year());
  2745.  
  2746. // Specify year in digits, default all options
  2747. $this->assertEquals('<select name="year">' . "\n"
  2748. . '<option value="2001">2001</option>' . "\n"
  2749. . '<option value="2002">2002</option>' . "\n"
  2750. . '<option value="2003">2003</option>' . "\n"
  2751. . '<option value="2004">2004</option>' . "\n"
  2752. . '<option value="2005">2005</option>' . "\n"
  2753. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2754. . '<option value="2007">2007</option>' . "\n"
  2755. . '<option value="2008">2008</option>' . "\n"
  2756. . '<option value="2009">2009</option>' . "\n"
  2757. . '<option value="2010">2010</option>' . "\n"
  2758. . '<option value="2011">2011</option>' . "\n"
  2759. . '</select>' . "\n",
  2760. $dh->select_year('2006'));
  2761.  
  2762. // Specify year in English, default all options
  2763. $this->assertEquals('<select name="year">' . "\n"
  2764. . '<option value="1992">1992</option>' . "\n"
  2765. . '<option value="1993">1993</option>' . "\n"
  2766. . '<option value="1994">1994</option>' . "\n"
  2767. . '<option value="1995">1995</option>' . "\n"
  2768. . '<option value="1996">1996</option>' . "\n"
  2769. . '<option value="1997" selected="selected">1997</option>' . "\n"
  2770. . '<option value="1998">1998</option>' . "\n"
  2771. . '<option value="1999">1999</option>' . "\n"
  2772. . '<option value="2000">2000</option>' . "\n"
  2773. . '<option value="2001">2001</option>' . "\n"
  2774. . '<option value="2002">2002</option>' . "\n"
  2775. . '</select>' . "\n",
  2776. $dh->select_year('September 12, 1997'));
  2777.  
  2778. // Specify year in digits, option 'start_year' => '2003'
  2779. $this->assertEquals('<select name="year">' . "\n"
  2780. . '<option value="2003">2003</option>' . "\n"
  2781. . '<option value="2004">2004</option>' . "\n"
  2782. . '<option value="2005">2005</option>' . "\n"
  2783. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2784. . '<option value="2007">2007</option>' . "\n"
  2785. . '<option value="2008">2008</option>' . "\n"
  2786. . '<option value="2009">2009</option>' . "\n"
  2787. . '<option value="2010">2010</option>' . "\n"
  2788. . '<option value="2011">2011</option>' . "\n"
  2789. . '</select>' . "\n",
  2790. $dh->select_year('2006',
  2791. array('start_year' => 2003)));
  2792.  
  2793. // Specify year in digits, option 'end_year' => '2009'
  2794. $this->assertEquals('<select name="year">' . "\n"
  2795. . '<option value="2001">2001</option>' . "\n"
  2796. . '<option value="2002">2002</option>' . "\n"
  2797. . '<option value="2003">2003</option>' . "\n"
  2798. . '<option value="2004">2004</option>' . "\n"
  2799. . '<option value="2005">2005</option>' . "\n"
  2800. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2801. . '<option value="2007">2007</option>' . "\n"
  2802. . '<option value="2008">2008</option>' . "\n"
  2803. . '<option value="2009">2009</option>' . "\n"
  2804. . '</select>' . "\n",
  2805. $dh->select_year('2006',
  2806. array('end_year'=>'2009')));
  2807.  
  2808. // Specify year in digits, option 'field_name' => 'tax_year'
  2809. $this->assertEquals('<select name="tax_year">' . "\n"
  2810. . '<option value="2001">2001</option>' . "\n"
  2811. . '<option value="2002">2002</option>' . "\n"
  2812. . '<option value="2003">2003</option>' . "\n"
  2813. . '<option value="2004">2004</option>' . "\n"
  2814. . '<option value="2005">2005</option>' . "\n"
  2815. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2816. . '<option value="2007">2007</option>' . "\n"
  2817. . '<option value="2008">2008</option>' . "\n"
  2818. . '<option value="2009">2009</option>' . "\n"
  2819. . '<option value="2010">2010</option>' . "\n"
  2820. . '<option value="2011">2011</option>' . "\n"
  2821. . '</select>' . "\n",
  2822. $dh->select_year('2006',
  2823. array('field_name'=>'tax_year')));
  2824.  
  2825. // Specify year in English, default all options
  2826. $this->assertEquals('<select name="year">' . "\n"
  2827. . '<option value="2001">2001</option>' . "\n"
  2828. . '<option value="2002">2002</option>' . "\n"
  2829. . '<option value="2003">2003</option>' . "\n"
  2830. . '<option value="2004">2004</option>' . "\n"
  2831. . '<option value="2005">2005</option>' . "\n"
  2832. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2833. . '<option value="2007">2007</option>' . "\n"
  2834. . '<option value="2008">2008</option>' . "\n"
  2835. . '<option value="2009">2009</option>' . "\n"
  2836. . '<option value="2010">2010</option>' . "\n"
  2837. . '<option value="2011">2011</option>' . "\n"
  2838. . '</select>' . "\n",
  2839. $dh->select_year('November 9, 2006'));
  2840.  
  2841. // Specify year in digits, reverse start and end years
  2842. $this->assertEquals('<select name="year">' . "\n"
  2843. . '<option value="2009">2009</option>' . "\n"
  2844. . '<option value="2008">2008</option>' . "\n"
  2845. . '<option value="2007">2007</option>' . "\n"
  2846. . '<option value="2006" selected="selected">2006</option>' . "\n"
  2847. . '<option value="2005">2005</option>' . "\n"
  2848. . '<option value="2004">2004</option>' . "\n"
  2849. . '<option value="2003">2003</option>' . "\n"
  2850. . '</select>' . "\n",
  2851. $dh->select_year('2006',
  2852. array('start_year'=>'2009',
  2853. 'end_year'=>'2003')));
  2854.  
  2855. // Specify year in digits and override with $request_years
  2856. $dh->attribute_name = 'sometime';
  2857. $dh->request_years = array('sometime' => '2002');
  2858. $this->assertEquals('<select name="year">' . "\n"
  2859. . '<option value="1997">1997</option>' . "\n"
  2860. . '<option value="1998">1998</option>' . "\n"
  2861. . '<option value="1999">1999</option>' . "\n"
  2862. . '<option value="2000">2000</option>' . "\n"
  2863. . '<option value="2001">2001</option>' . "\n"
  2864. . '<option value="2002" selected="selected">2002</option>' . "\n"
  2865. . '<option value="2003">2003</option>' . "\n"
  2866. . '<option value="2004">2004</option>' . "\n"
  2867. . '<option value="2005">2005</option>' . "\n"
  2868. . '<option value="2006">2006</option>' . "\n"
  2869. . '<option value="2007">2007</option>' . "\n"
  2870. . '</select>' . "\n",
  2871. $dh->select_year('2006'));
  2872. }
  2873.  
  2874. /**
  2875. * Test year_select() method
  2876. *
  2877. * Test {@link DateHelper::year_select()} method
  2878. */
  2879. public function testYear_select_method() {
  2880. $dh = new DateHelper('foo','bar');
  2881. $dh->controller_object = new ActionController;
  2882. $ar = new ActiveRecord;
  2883. $dh->controller_object->foo = $ar;
  2884.  
  2885. // With no value in $_REQUEST, data should be
  2886. // retrieved from the the ActiveRecord
  2887. $ar->expect_query("bar","1999");
  2888. $this->assertEquals('<select name="foo[bar(1i)]">' . "\n"
  2889. . '<option value="1994">1994</option>' . "\n"
  2890. . '<option value="1995">1995</option>' . "\n"
  2891. . '<option value="1996">1996</option>' . "\n"
  2892. . '<option value="1997">1997</option>' . "\n"
  2893. . '<option value="1998">1998</option>' . "\n"
  2894. . '<option value="1999" selected="selected">1999</option>' . "\n"
  2895. . '<option value="2000">2000</option>' . "\n"
  2896. . '<option value="2001">2001</option>' . "\n"
  2897. . '<option value="2002">2002</option>' . "\n"
  2898. . '<option value="2003">2003</option>' . "\n"
  2899. . '<option value="2004">2004</option>' . "\n"
  2900. . '</select>' . "\n",
  2901. $dh->year_select());
  2902.  
  2903. // Get year from $_REQUEST, default all options
  2904. $_REQUEST['foo']['bar(1i)'] = '2004';
  2905. $this->assertEquals('<select name="foo[bar(1i)]">' . "\n"
  2906. . '<option value="1999">1999</option>' . "\n"
  2907. . '<option value="2000">2000</option>' . "\n"
  2908. . '<option value="2001">2001</option>' . "\n"
  2909. . '<option value="2002">2002</option>' . "\n"
  2910. . '<option value="2003">2003</option>' . "\n"
  2911. . '<option value="2004" selected="selected">2004</option>' . "\n"
  2912. . '<option value="2005">2005</option>' . "\n"
  2913. . '<option value="2006">2006</option>' . "\n"
  2914. . '<option value="2007">2007</option>' . "\n"
  2915. . '<option value="2008">2008</option>' . "\n"
  2916. . '<option value="2009">2009</option>' . "\n"
  2917. . '</select>' . "\n",
  2918. $dh->year_select());
  2919. }
  2920.  
  2921. /**
  2922. * Test year_select() function
  2923. *
  2924. * Test {@link year_select()} function in procedural file
  2925. * {@link date_helper.php}
  2926. */
  2927. public function testYear_select_function() {
  2928. $_REQUEST['foo']['bar(1i)'] = '2004';
  2929.  
  2930. // Specify year in digits, default all options
  2931. $this->assertEquals('<select name="foo[bar(1i)]">' . "\n"
  2932. . '<option value="1999">1999</option>' . "\n"
  2933. . '<option value="2000">2000</option>' . "\n"
  2934. . '<option value="2001">2001</option>' . "\n"
  2935. . '<option value="2002">2002</option>' . "\n"
  2936. . '<option value="2003">2003</option>' . "\n"
  2937. . '<option value="2004" selected="selected">2004</option>' . "\n"
  2938. . '<option value="2005">2005</option>' . "\n"
  2939. . '<option value="2006">2006</option>' . "\n"
  2940. . '<option value="2007">2007</option>' . "\n"
  2941. . '<option value="2008">2008</option>' . "\n"
  2942. . '<option value="2009">2009</option>' . "\n"
  2943. . '</select>' . "\n",
  2944. year_select('foo','bar'));
  2945. }
  2946.  
  2947. /**
  2948. * Test to_date_select_tag() method
  2949. *
  2950. * Test {@link DateHelper::to_date_select_tag()} method
  2951. */
  2952. public function testTo_date_select_tag() {
  2953. $dh = new DateHelper('Person', 'birthdate');
  2954. $dh->controller_object = new ActionController;
  2955. $ar = new ActiveRecord;
  2956. $dh->controller_object->Person = $ar;
  2957.  
  2958. // With no value in $_REQUEST, data should be
  2959. // retrieved from the the ActiveRecord
  2960. $ar->expect_query("birthdate","1999-02-17");
  2961.  
  2962. // Test with default format
  2963. $this->assertEquals('<select name="Person[birthdate(1i)]">' . "\n"
  2964. . '<option value="1994">1994</option>' . "\n"
  2965. . '<option value="1995">1995</option>' . "\n"
  2966. . '<option value="1996">1996</option>' . "\n"
  2967. . '<option value="1997">1997</option>' . "\n"
  2968. . '<option value="1998">1998</option>' . "\n"
  2969. . '<option value="1999" selected="selected">1999</option>' . "\n"
  2970. . '<option value="2000">2000</option>' . "\n"
  2971. . '<option value="2001">2001</option>' . "\n"
  2972. . '<option value="2002">2002</option>' . "\n"
  2973. . '<option value="2003">2003</option>' . "\n"
  2974. . '<option value="2004">2004</option>' . "\n"
  2975. . '</select>' . "\n"
  2976. . ' <select name="Person[birthdate(2i)]">' . "\n"
  2977. . '<option value="01">January</option>' . "\n"
  2978. . '<option value="02" selected="selected">February</option>' . "\n"
  2979. . '<option value="03">March</option>' . "\n"
  2980. . '<option value="04">April</option>' . "\n"
  2981. . '<option value="05">May</option>' . "\n"
  2982. . '<option value="06">June</option>' . "\n"
  2983. . '<option value="07">July</option>' . "\n"
  2984. . '<option value="08">August</option>' . "\n"
  2985. . '<option value="09">September</option>' . "\n"
  2986. . '<option value="10">October</option>' . "\n"
  2987. . '<option value="11">November</option>' . "\n"
  2988. . '<option value="12">December</option>' . "\n"
  2989. . '</select>' . "\n"
  2990. . ' <select name="Person[birthdate(3i)]">' . "\n"
  2991. . '<option value="01">01</option>' . "\n"
  2992. . '<option value="02">02</option>' . "\n"
  2993. . '<option value="03">03</option>' . "\n"
  2994. . '<option value="04">04</option>' . "\n"
  2995. . '<option value="05">05</option>' . "\n"
  2996. . '<option value="06">06</option>' . "\n"
  2997. . '<option value="07">07</option>' . "\n"
  2998. . '<option value="08">08</option>' . "\n"
  2999. . '<option value="09">09</option>' . "\n"
  3000. . '<option value="10">10</option>' . "\n"
  3001. . '<option value="11">11</option>' . "\n"
  3002. . '<option value="12">12</option>' . "\n"
  3003. . '<option value="13">13</option>' . "\n"
  3004. . '<option value="14">14</option>' . "\n"
  3005. . '<option value="15">15</option>' . "\n"
  3006. . '<option value="16">16</option>' . "\n"
  3007. . '<option value="17" selected="selected">17</option>' . "\n"
  3008. . '<option value="18">18</option>' . "\n"
  3009. . '<option value="19">19</option>' . "\n"
  3010. . '<option value="20">20</option>' . "\n"
  3011. . '<option value="21">21</option>' . "\n"
  3012. . '<option value="22">22</option>' . "\n"
  3013. . '<option value="23">23</option>' . "\n"
  3014. . '<option value="24">24</option>' . "\n"
  3015. . '<option value="25">25</option>' . "\n"
  3016. . '<option value="26">26</option>' . "\n"
  3017. . '<option value="27">27</option>' . "\n"
  3018. . '<option value="28">28</option>' . "\n"
  3019. . '<option value="29">29</option>' . "\n"
  3020. . '<option value="30">30</option>' . "\n"
  3021. . '<option value="31">31</option>' . "\n"
  3022. . '</select>' . "\n",
  3023. $dh->to_date_select_tag());
  3024.  
  3025.  
  3026. $_REQUEST['Person']['birthdate(1i)'] = '1955';
  3027. $_REQUEST['Person']['birthdate(2i)'] = '08';
  3028. $_REQUEST['Person']['birthdate(3i)'] = '13';
  3029.  
  3030. // Test with default format
  3031. $this->assertEquals('<select name="Person[birthdate(1i)]">' . "\n"
  3032. . '<option value="1950">1950</option>' . "\n"
  3033. . '<option value="1951">1951</option>' . "\n"
  3034. . '<option value="1952">1952</option>' . "\n"
  3035. . '<option value="1953">1953</option>' . "\n"
  3036. . '<option value="1954">1954</option>' . "\n"
  3037. . '<option value="1955" selected="selected">1955</option>' . "\n"
  3038. . '<option value="1956">1956</option>' . "\n"
  3039. . '<option value="1957">1957</option>' . "\n"
  3040. . '<option value="1958">1958</option>' . "\n"
  3041. . '<option value="1959">1959</option>' . "\n"
  3042. . '<option value="1960">1960</option>' . "\n"
  3043. . '</select>' . "\n"
  3044. . ' <select name="Person[birthdate(2i)]">' . "\n"
  3045. . '<option value="01">January</option>' . "\n"
  3046. . '<option value="02">February</option>' . "\n"
  3047. . '<option value="03">March</option>' . "\n"
  3048. . '<option value="04">April</option>' . "\n"
  3049. . '<option value="05">May</option>' . "\n"
  3050. . '<option value="06">June</option>' . "\n"
  3051. . '<option value="07">July</option>' . "\n"
  3052. . '<option value="08" selected="selected">August</option>' . "\n"
  3053. . '<option value="09">September</option>' . "\n"
  3054. . '<option value="10">October</option>' . "\n"
  3055. . '<option value="11">November</option>' . "\n"
  3056. . '<option value="12">December</option>' . "\n"
  3057. . '</select>' . "\n"
  3058. . ' <select name="Person[birthdate(3i)]">' . "\n"
  3059. . '<option value="01">01</option>' . "\n"
  3060. . '<option value="02">02</option>' . "\n"
  3061. . '<option value="03">03</option>' . "\n"
  3062. . '<option value="04">04</option>' . "\n"
  3063. . '<option value="05">05</option>' . "\n"
  3064. . '<option value="06">06</option>' . "\n"
  3065. . '<option value="07">07</option>' . "\n"
  3066. . '<option value="08">08</option>' . "\n"
  3067. . '<option value="09">09</option>' . "\n"
  3068. . '<option value="10">10</option>' . "\n"
  3069. . '<option value="11">11</option>' . "\n"
  3070. . '<option value="12">12</option>' . "\n"
  3071. . '<option value="13" selected="selected">13</option>' . "\n"
  3072. . '<option value="14">14</option>' . "\n"
  3073. . '<option value="15">15</option>' . "\n"
  3074. . '<option value="16">16</option>' . "\n"
  3075. . '<option value="17">17</option>' . "\n"
  3076. . '<option value="18">18</option>' . "\n"
  3077. . '<option value="19">19</option>' . "\n"
  3078. . '<option value="20">20</option>' . "\n"
  3079. . '<option value="21">21</option>' . "\n"
  3080. . '<option value="22">22</option>' . "\n"
  3081. . '<option value="23">23</option>' . "\n"
  3082. . '<option value="24">24</option>' . "\n"
  3083. . '<option value="25">25</option>' . "\n"
  3084. . '<option value="26">26</option>' . "\n"
  3085. . '<option value="27">27</option>' . "\n"
  3086. . '<option value="28">28</option>' . "\n"
  3087. . '<option value="29">29</option>' . "\n"
  3088. . '<option value="30">30</option>' . "\n"
  3089. . '<option value="31">31</option>' . "\n"
  3090. . '</select>' . "\n",
  3091. $dh->to_date_select_tag());
  3092.  
  3093. // Test 'month_before_year' option
  3094. $this->assertEquals('<select name="Person[birthdate(2i)]">' . "\n"
  3095. . '<option value="01">January</option>' . "\n"
  3096. . '<option value="02">February</option>' . "\n"
  3097. . '<option value="03">March</option>' . "\n"
  3098. . '<option value="04">April</option>' . "\n"
  3099. . '<option value="05">May</option>' . "\n"
  3100. . '<option value="06">June</option>' . "\n"
  3101. . '<option value="07">July</option>' . "\n"
  3102. . '<option value="08" selected="selected">August</option>' . "\n"
  3103. . '<option value="09">September</option>' . "\n"
  3104. . '<option value="10">October</option>' . "\n"
  3105. . '<option value="11">November</option>' . "\n"
  3106. . '<option value="12">December</option>' . "\n"
  3107. . '</select>' . "\n"
  3108. . ' <select name="Person[birthdate(1i)]">' . "\n"
  3109. . '<option value="1950">1950</option>' . "\n"
  3110. . '<option value="1951">1951</option>' . "\n"
  3111. . '<option value="1952">1952</option>' . "\n"
  3112. . '<option value="1953">1953</option>' . "\n"
  3113. . '<option value="1954">1954</option>' . "\n"
  3114. . '<option value="1955" selected="selected">1955</option>' . "\n"
  3115. . '<option value="1956">1956</option>' . "\n"
  3116. . '<option value="1957">1957</option>' . "\n"
  3117. . '<option value="1958">1958</option>' . "\n"
  3118. . '<option value="1959">1959</option>' . "\n"
  3119. . '<option value="1960">1960</option>' . "\n"
  3120. . '</select>' . "\n"
  3121. . ' <select name="Person[birthdate(3i)]">' . "\n"
  3122. . '<option value="01">01</option>' . "\n"
  3123. . '<option value="02">02</option>' . "\n"
  3124. . '<option value="03">03</option>' . "\n"
  3125. . '<option value="04">04</option>' . "\n"
  3126. . '<option value="05">05</option>' . "\n"
  3127. . '<option value="06">06</option>' . "\n"
  3128. . '<option value="07">07</option>' . "\n"
  3129. . '<option value="08">08</option>' . "\n"
  3130. . '<option value="09">09</option>' . "\n"
  3131. . '<option value="10">10</option>' . "\n"
  3132. . '<option value="11">11</option>' . "\n"
  3133. . '<option value="12">12</option>' . "\n"
  3134. . '<option value="13" selected="selected">13</option>' . "\n"
  3135. . '<option value="14">14</option>' . "\n"
  3136. . '<option value="15">15</option>' . "\n"
  3137. . '<option value="16">16</option>' . "\n"
  3138. . '<option value="17">17</option>' . "\n"
  3139. . '<option value="18">18</option>' . "\n"
  3140. . '<option value="19">19</option>' . "\n"
  3141. . '<option value="20">20</option>' . "\n"
  3142. . '<option value="21">21</option>' . "\n"
  3143. . '<option value="22">22</option>' . "\n"
  3144. . '<option value="23">23</option>' . "\n"
  3145. . '<option value="24">24</option>' . "\n"
  3146. . '<option value="25">25</option>' . "\n"
  3147. . '<option value="26">26</option>' . "\n"
  3148. . '<option value="27">27</option>' . "\n"
  3149. . '<option value="28">28</option>' . "\n"
  3150. . '<option value="29">29</option>' . "\n"
  3151. . '<option value="30">30</option>' . "\n"
  3152. . '<option value="31">31</option>' . "\n"
  3153. . '</select>' . "\n",
  3154. $dh->to_date_select_tag(
  3155. array('month_before_year' => true)));
  3156.  
  3157. // Test with 'discard_year' option
  3158. $this->assertEquals('<select name="Person[birthdate(2i)]">' . "\n"
  3159. . '<option value="01">January</option>' . "\n"
  3160. . '<option value="02">February</option>' . "\n"
  3161. . '<option value="03">March</option>' . "\n"
  3162. . '<option value="04">April</option>' . "\n"
  3163. . '<option value="05">May</option>' . "\n"
  3164. . '<option value="06">June</option>' . "\n"
  3165. . '<option value="07">July</option>' . "\n"
  3166. . '<option value="08" selected="selected">August</option>' . "\n"
  3167. . '<option value="09">September</option>' . "\n"
  3168. . '<option value="10">October</option>' . "\n"
  3169. . '<option value="11">November</option>' . "\n"
  3170. . '<option value="12">December</option>' . "\n"
  3171. . '</select>' . "\n"
  3172. . ' <select name="Person[birthdate(3i)]">' . "\n"
  3173. . '<option value="01">01</option>' . "\n"
  3174. . '<option value="02">02</option>' . "\n"
  3175. . '<option value="03">03</option>' . "\n"
  3176. . '<option value="04">04</option>' . "\n"
  3177. . '<option value="05">05</option>' . "\n"
  3178. . '<option value="06">06</option>' . "\n"
  3179. . '<option value="07">07</option>' . "\n"
  3180. . '<option value="08">08</option>' . "\n"
  3181. . '<option value="09">09</option>' . "\n"
  3182. . '<option value="10">10</option>' . "\n"
  3183. . '<option value="11">11</option>' . "\n"
  3184. . '<option value="12">12</option>' . "\n"
  3185. . '<option value="13" selected="selected">13</option>' . "\n"
  3186. . '<option value="14">14</option>' . "\n"
  3187. . '<option value="15">15</option>' . "\n"
  3188. . '<option value="16">16</option>' . "\n"
  3189. . '<option value="17">17</option>' . "\n"
  3190. . '<option value="18">18</option>' . "\n"
  3191. . '<option value="19">19</option>' . "\n"
  3192. . '<option value="20">20</option>' . "\n"
  3193. . '<option value="21">21</option>' . "\n"
  3194. . '<option value="22">22</option>' . "\n"
  3195. . '<option value="23">23</option>' . "\n"
  3196. . '<option value="24">24</option>' . "\n"
  3197. . '<option value="25">25</option>' . "\n"
  3198. . '<option value="26">26</option>' . "\n"
  3199. . '<option value="27">27</option>' . "\n"
  3200. . '<option value="28">28</option>' . "\n"
  3201. . '<option value="29">29</option>' . "\n"
  3202. . '<option value="30">30</option>' . "\n"
  3203. . '<option value="31">31</option>' . "\n"
  3204. . '</select>' . "\n",
  3205. $dh->to_date_select_tag(array('discard_year' => true)));
  3206.  
  3207. // Test 'month_before_year' and 'discard_day' options
  3208. $this->assertEquals('<select name="Person[birthdate(2i)]">' . "\n"
  3209. . '<option value="01">January</option>' . "\n"
  3210. . '<option value="02">February</option>' . "\n"
  3211. . '<option value="03">March</option>' . "\n"
  3212. . '<option value="04">April</option>' . "\n"
  3213. . '<option value="05">May</option>' . "\n"
  3214. . '<option value="06">June</option>' . "\n"
  3215. . '<option value="07">July</option>' . "\n"
  3216. . '<option value="08" selected="selected">August</option>' . "\n"
  3217. . '<option value="09">September</option>' . "\n"
  3218. . '<option value="10">October</option>' . "\n"
  3219. . '<option value="11">November</option>' . "\n"
  3220. . '<option value="12">December</option>' . "\n"
  3221. . '</select>' . "\n"
  3222. . ' <select name="Person[birthdate(1i)]">' . "\n"
  3223. . '<option value="1950">1950</option>' . "\n"
  3224. . '<option value="1951">1951</option>' . "\n"
  3225. . '<option value="1952">1952</option>' . "\n"
  3226. . '<option value="1953">1953</option>' . "\n"
  3227. . '<option value="1954">1954</option>' . "\n"
  3228. . '<option value="1955" selected="selected">1955</option>' . "\n"
  3229. . '<option value="1956">1956</option>' . "\n"
  3230. . '<option value="1957">1957</option>' . "\n"
  3231. . '<option value="1958">1958</option>' . "\n"
  3232. . '<option value="1959">1959</option>' . "\n"
  3233. . '<option value="1960">1960</option>' . "\n"
  3234. . '</select>' . "\n",
  3235. $dh->to_date_select_tag(array('month_before_year' => true,
  3236. 'discard_day' => true)));
  3237. }
  3238.  
  3239. /**
  3240. * Test to_datetime_select_tag() method
  3241. *
  3242. * Test {@link DateHelper::to_datetime_select_tag()} method
  3243. */
  3244. public function testTo_datetime_select_tag() {
  3245. $dh = new DateHelper('Person','birth');
  3246. $dh->controller_object = new ActionController;
  3247. $ar = new ActiveRecord;
  3248. $dh->controller_object->Person = $ar;
  3249.  
  3250. // Data from the the ActiveRecord, default format
  3251. $ar->expect_query("birth","2001-07-05 11:30:45");
  3252. $this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
  3253. . '<option value="1996">1996</option>' . "\n"
  3254. . '<option value="1997">1997</option>' . "\n"
  3255. . '<option value="1998">1998</option>' . "\n"
  3256. . '<option value="1999">1999</option>' . "\n"
  3257. . '<option value="2000">2000</option>' . "\n"
  3258. . '<option value="2001" selected="selected">2001</option>' . "\n"
  3259. . '<option value="2002">2002</option>' . "\n"
  3260. . '<option value="2003">2003</option>' . "\n"
  3261. . '<option value="2004">2004</option>' . "\n"
  3262. . '<option value="2005">2005</option>' . "\n"
  3263. . '<option value="2006">2006</option>' . "\n"
  3264. . '</select>' . "\n"
  3265. . '<select name="Person[birth(2i)]">' . "\n"
  3266. . '<option value="01">January</option>' . "\n"
  3267. . '<option value="02">February</option>' . "\n"
  3268. . '<option value="03">March</option>' . "\n"
  3269. . '<option value="04">April</option>' . "\n"
  3270. . '<option value="05">May</option>' . "\n"
  3271. . '<option value="06">June</option>' . "\n"
  3272. . '<option value="07" selected="selected">July</option>' . "\n"
  3273. . '<option value="08">August</option>' . "\n"
  3274. . '<option value="09">September</option>' . "\n"
  3275. . '<option value="10">October</option>' . "\n"
  3276. . '<option value="11">November</option>' . "\n"
  3277. . '<option value="12">December</option>' . "\n"
  3278. . '</select>' . "\n"
  3279. . '<select name="Person[birth(3i)]">' . "\n"
  3280. . '<option value="01">01</option>' . "\n"
  3281. . '<option value="02">02</option>' . "\n"
  3282. . '<option value="03">03</option>' . "\n"
  3283. . '<option value="04">04</option>' . "\n"
  3284. . '<option value="05" selected="selected">05</option>' . "\n"
  3285. . '<option value="06">06</option>' . "\n"
  3286. . '<option value="07">07</option>' . "\n"
  3287. . '<option value="08">08</option>' . "\n"
  3288. . '<option value="09">09</option>' . "\n"
  3289. . '<option value="10">10</option>' . "\n"
  3290. . '<option value="11">11</option>' . "\n"
  3291. . '<option value="12">12</option>' . "\n"
  3292. . '<option value="13">13</option>' . "\n"
  3293. . '<option value="14">14</option>' . "\n"
  3294. . '<option value="15">15</option>' . "\n"
  3295. . '<option value="16">16</option>' . "\n"
  3296. . '<option value="17">17</option>' . "\n"
  3297. . '<option value="18">18</option>' . "\n"
  3298. . '<option value="19">19</option>' . "\n"
  3299. . '<option value="20">20</option>' . "\n"
  3300. . '<option value="21">21</option>' . "\n"
  3301. . '<option value="22">22</option>' . "\n"
  3302. . '<option value="23">23</option>' . "\n"
  3303. . '<option value="24">24</option>' . "\n"
  3304. . '<option value="25">25</option>' . "\n"
  3305. . '<option value="26">26</option>' . "\n"
  3306. . '<option value="27">27</option>' . "\n"
  3307. . '<option value="28">28</option>' . "\n"
  3308. . '<option value="29">29</option>' . "\n"
  3309. . '<option value="30">30</option>' . "\n"
  3310. . '<option value="31">31</option>' . "\n"
  3311. . '</select>' . "\n"
  3312. . ' &mdash; <select name="Person[birth(4i)]">' . "\n"
  3313. . '<option value="00">00</option>' . "\n"
  3314. . '<option value="01">01</option>' . "\n"
  3315. . '<option value="02">02</option>' . "\n"
  3316. . '<option value="03">03</option>' . "\n"
  3317. . '<option value="04">04</option>' . "\n"
  3318. . '<option value="05">05</option>' . "\n"
  3319. . '<option value="06">06</option>' . "\n"
  3320. . '<option value="07">07</option>' . "\n"
  3321. . '<option value="08">08</option>' . "\n"
  3322. . '<option value="09">09</option>' . "\n"
  3323. . '<option value="10">10</option>' . "\n"
  3324. . '<option value="11" selected="selected">11</option>' . "\n"
  3325. . '<option value="12">12</option>' . "\n"
  3326. . '<option value="13">13</option>' . "\n"
  3327. . '<option value="14">14</option>' . "\n"
  3328. . '<option value="15">15</option>' . "\n"
  3329. . '<option value="16">16</option>' . "\n"
  3330. . '<option value="17">17</option>' . "\n"
  3331. . '<option value="18">18</option>' . "\n"
  3332. . '<option value="19">19</option>' . "\n"
  3333. . '<option value="20">20</option>' . "\n"
  3334. . '<option value="21">21</option>' . "\n"
  3335. . '<option value="22">22</option>' . "\n"
  3336. . '<option value="23">23</option>' . "\n"
  3337. . '</select>' . "\n"
  3338. . ' : <select name="Person[birth(5i)]">' . "\n"
  3339. . '<option value="00">00</option>' . "\n"
  3340. . '<option value="01">01</option>' . "\n"
  3341. . '<option value="02">02</option>' . "\n"
  3342. . '<option value="03">03</option>' . "\n"
  3343. . '<option value="04">04</option>' . "\n"
  3344. . '<option value="05">05</option>' . "\n"
  3345. . '<option value="06">06</option>' . "\n"
  3346. . '<option value="07">07</option>' . "\n"
  3347. . '<option value="08">08</option>' . "\n"
  3348. . '<option value="09">09</option>' . "\n"
  3349. . '<option value="10">10</option>' . "\n"
  3350. . '<option value="11">11</option>' . "\n"
  3351. . '<option value="12">12</option>' . "\n"
  3352. . '<option value="13">13</option>' . "\n"
  3353. . '<option value="14">14</option>' . "\n"
  3354. . '<option value="15">15</option>' . "\n"
  3355. . '<option value="16">16</option>' . "\n"
  3356. . '<option value="17">17</option>' . "\n"
  3357. . '<option value="18">18</option>' . "\n"
  3358. . '<option value="19">19</option>' . "\n"
  3359. . '<option value="20">20</option>' . "\n"
  3360. . '<option value="21">21</option>' . "\n"
  3361. . '<option value="22">22</option>' . "\n"
  3362. . '<option value="23">23</option>' . "\n"
  3363. . '<option value="24">24</option>' . "\n"
  3364. . '<option value="25">25</option>' . "\n"
  3365. . '<option value="26">26</option>' . "\n"
  3366. . '<option value="27">27</option>' . "\n"
  3367. . '<option value="28">28</option>' . "\n"
  3368. . '<option value="29">29</option>' . "\n"
  3369. . '<option value="30" selected="selected">30</option>' . "\n"
  3370. . '<option value="31">31</option>' . "\n"
  3371. . '<option value="32">32</option>' . "\n"
  3372. . '<option value="33">33</option>' . "\n"
  3373. . '<option value="34">34</option>' . "\n"
  3374. . '<option value="35">35</option>' . "\n"
  3375. . '<option value="36">36</option>' . "\n"
  3376. . '<option value="37">37</option>' . "\n"
  3377. . '<option value="38">38</option>' . "\n"
  3378. . '<option value="39">39</option>' . "\n"
  3379. . '<option value="40">40</option>' . "\n"
  3380. . '<option value="41">41</option>' . "\n"
  3381. . '<option value="42">42</option>' . "\n"
  3382. . '<option value="43">43</option>' . "\n"
  3383. . '<option value="44">44</option>' . "\n"
  3384. . '<option value="45">45</option>' . "\n"
  3385. . '<option value="46">46</option>' . "\n"
  3386. . '<option value="47">47</option>' . "\n"
  3387. . '<option value="48">48</option>' . "\n"
  3388. . '<option value="49">49</option>' . "\n"
  3389. . '<option value="50">50</option>' . "\n"
  3390. . '<option value="51">51</option>' . "\n"
  3391. . '<option value="52">52</option>' . "\n"
  3392. . '<option value="53">53</option>' . "\n"
  3393. . '<option value="54">54</option>' . "\n"
  3394. . '<option value="55">55</option>' . "\n"
  3395. . '<option value="56">56</option>' . "\n"
  3396. . '<option value="57">57</option>' . "\n"
  3397. . '<option value="58">58</option>' . "\n"
  3398. . '<option value="59">59</option>' . "\n"
  3399. . '</select>' . "\n",
  3400. $dh->to_datetime_select_tag());
  3401.  
  3402. // Data from $_REQUEST should override ActiveRecord
  3403. // Use default format
  3404. $_REQUEST['Person']['birth(1i)'] = '2000';
  3405. $_REQUEST['Person']['birth(2i)'] = '09';
  3406. $_REQUEST['Person']['birth(3i)'] = '17';
  3407. $_REQUEST['Person']['birth(4i)'] = '09';
  3408. $_REQUEST['Person']['birth(5i)'] = '42';
  3409. $_REQUEST['Person']['birth(6i)'] = '53';
  3410. $this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
  3411. . '<option value="1995">1995</option>' . "\n"
  3412. . '<option value="1996">1996</option>' . "\n"
  3413. . '<option value="1997">1997</option>' . "\n"
  3414. . '<option value="1998">1998</option>' . "\n"
  3415. . '<option value="1999">1999</option>' . "\n"
  3416. . '<option value="2000" selected="selected">2000</option>' . "\n"
  3417. . '<option value="2001">2001</option>' . "\n"
  3418. . '<option value="2002">2002</option>' . "\n"
  3419. . '<option value="2003">2003</option>' . "\n"
  3420. . '<option value="2004">2004</option>' . "\n"
  3421. . '<option value="2005">2005</option>' . "\n"
  3422. . '</select>' . "\n"
  3423. . '<select name="Person[birth(2i)]">' . "\n"
  3424. . '<option value="01">January</option>' . "\n"
  3425. . '<option value="02">February</option>' . "\n"
  3426. . '<option value="03">March</option>' . "\n"
  3427. . '<option value="04">April</option>' . "\n"
  3428. . '<option value="05">May</option>' . "\n"
  3429. . '<option value="06">June</option>' . "\n"
  3430. . '<option value="07">July</option>' . "\n"
  3431. . '<option value="08">August</option>' . "\n"
  3432. . '<option value="09" selected="selected">September</option>' . "\n"
  3433. . '<option value="10">October</option>' . "\n"
  3434. . '<option value="11">November</option>' . "\n"
  3435. . '<option value="12">December</option>' . "\n"
  3436. . '</select>' . "\n"
  3437. . '<select name="Person[birth(3i)]">' . "\n"
  3438. . '<option value="01">01</option>' . "\n"
  3439. . '<option value="02">02</option>' . "\n"
  3440. . '<option value="03">03</option>' . "\n"
  3441. . '<option value="04">04</option>' . "\n"
  3442. . '<option value="05">05</option>' . "\n"
  3443. . '<option value="06">06</option>' . "\n"
  3444. . '<option value="07">07</option>' . "\n"
  3445. . '<option value="08">08</option>' . "\n"
  3446. . '<option value="09">09</option>' . "\n"
  3447. . '<option value="10">10</option>' . "\n"
  3448. . '<option value="11">11</option>' . "\n"
  3449. . '<option value="12">12</option>' . "\n"
  3450. . '<option value="13">13</option>' . "\n"
  3451. . '<option value="14">14</option>' . "\n"
  3452. . '<option value="15">15</option>' . "\n"
  3453. . '<option value="16">16</option>' . "\n"
  3454. . '<option value="17" selected="selected">17</option>' . "\n"
  3455. . '<option value="18">18</option>' . "\n"
  3456. . '<option value="19">19</option>' . "\n"
  3457. . '<option value="20">20</option>' . "\n"
  3458. . '<option value="21">21</option>' . "\n"
  3459. . '<option value="22">22</option>' . "\n"
  3460. . '<option value="23">23</option>' . "\n"
  3461. . '<option value="24">24</option>' . "\n"
  3462. . '<option value="25">25</option>' . "\n"
  3463. . '<option value="26">26</option>' . "\n"
  3464. . '<option value="27">27</option>' . "\n"
  3465. . '<option value="28">28</option>' . "\n"
  3466. . '<option value="29">29</option>' . "\n"
  3467. . '<option value="30">30</option>' . "\n"
  3468. . '<option value="31">31</option>' . "\n"
  3469. . '</select>' . "\n"
  3470. . ' &mdash; <select name="Person[birth(4i)]">' . "\n"
  3471. . '<option value="00">00</option>' . "\n"
  3472. . '<option value="01">01</option>' . "\n"
  3473. . '<option value="02">02</option>' . "\n"
  3474. . '<option value="03">03</option>' . "\n"
  3475. . '<option value="04">04</option>' . "\n"
  3476. . '<option value="05">05</option>' . "\n"
  3477. . '<option value="06">06</option>' . "\n"
  3478. . '<option value="07">07</option>' . "\n"
  3479. . '<option value="08">08</option>' . "\n"
  3480. . '<option value="09" selected="selected">09</option>' . "\n"
  3481. . '<option value="10">10</option>' . "\n"
  3482. . '<option value="11">11</option>' . "\n"
  3483. . '<option value="12">12</option>' . "\n"
  3484. . '<option value="13">13</option>' . "\n"
  3485. . '<option value="14">14</option>' . "\n"
  3486. . '<option value="15">15</option>' . "\n"
  3487. . '<option value="16">16</option>' . "\n"
  3488. . '<option value="17">17</option>' . "\n"
  3489. . '<option value="18">18</option>' . "\n"
  3490. . '<option value="19">19</option>' . "\n"
  3491. . '<option value="20">20</option>' . "\n"
  3492. . '<option value="21">21</option>' . "\n"
  3493. . '<option value="22">22</option>' . "\n"
  3494. . '<option value="23">23</option>' . "\n"
  3495. . '</select>' . "\n"
  3496. . ' : <select name="Person[birth(5i)]">' . "\n"
  3497. . '<option value="00">00</option>' . "\n"
  3498. . '<option value="01">01</option>' . "\n"
  3499. . '<option value="02">02</option>' . "\n"
  3500. . '<option value="03">03</option>' . "\n"
  3501. . '<option value="04">04</option>' . "\n"
  3502. . '<option value="05">05</option>' . "\n"
  3503. . '<option value="06">06</option>' . "\n"
  3504. . '<option value="07">07</option>' . "\n"
  3505. . '<option value="08">08</option>' . "\n"
  3506. . '<option value="09">09</option>' . "\n"
  3507. . '<option value="10">10</option>' . "\n"
  3508. . '<option value="11">11</option>' . "\n"
  3509. . '<option value="12">12</option>' . "\n"
  3510. . '<option value="13">13</option>' . "\n"
  3511. . '<option value="14">14</option>' . "\n"
  3512. . '<option value="15">15</option>' . "\n"
  3513. . '<option value="16">16</option>' . "\n"
  3514. . '<option value="17">17</option>' . "\n"
  3515. . '<option value="18">18</option>' . "\n"
  3516. . '<option value="19">19</option>' . "\n"
  3517. . '<option value="20">20</option>' . "\n"
  3518. . '<option value="21">21</option>' . "\n"
  3519. . '<option value="22">22</option>' . "\n"
  3520. . '<option value="23">23</option>' . "\n"
  3521. . '<option value="24">24</option>' . "\n"
  3522. . '<option value="25">25</option>' . "\n"
  3523. . '<option value="26">26</option>' . "\n"
  3524. . '<option value="27">27</option>' . "\n"
  3525. . '<option value="28">28</option>' . "\n"
  3526. . '<option value="29">29</option>' . "\n"
  3527. . '<option value="30">30</option>' . "\n"
  3528. . '<option value="31">31</option>' . "\n"
  3529. . '<option value="32">32</option>' . "\n"
  3530. . '<option value="33">33</option>' . "\n"
  3531. . '<option value="34">34</option>' . "\n"
  3532. . '<option value="35">35</option>' . "\n"
  3533. . '<option value="36">36</option>' . "\n"
  3534. . '<option value="37">37</option>' . "\n"
  3535. . '<option value="38">38</option>' . "\n"
  3536. . '<option value="39">39</option>' . "\n"
  3537. . '<option value="40">40</option>' . "\n"
  3538. . '<option value="41">41</option>' . "\n"
  3539. . '<option value="42" selected="selected">42</option>' . "\n"
  3540. . '<option value="43">43</option>' . "\n"
  3541. . '<option value="44">44</option>' . "\n"
  3542. . '<option value="45">45</option>' . "\n"
  3543. . '<option value="46">46</option>' . "\n"
  3544. . '<option value="47">47</option>' . "\n"
  3545. . '<option value="48">48</option>' . "\n"
  3546. . '<option value="49">49</option>' . "\n"
  3547. . '<option value="50">50</option>' . "\n"
  3548. . '<option value="51">51</option>' . "\n"
  3549. . '<option value="52">52</option>' . "\n"
  3550. . '<option value="53">53</option>' . "\n"
  3551. . '<option value="54">54</option>' . "\n"
  3552. . '<option value="55">55</option>' . "\n"
  3553. . '<option value="56">56</option>' . "\n"
  3554. . '<option value="57">57</option>' . "\n"
  3555. . '<option value="58">58</option>' . "\n"
  3556. . '<option value="59">59</option>' . "\n"
  3557. . '</select>' . "\n",
  3558. $dh->to_datetime_select_tag());
  3559.  
  3560. // As above but enable seconds
  3561. $this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
  3562. . '<option value="1995">1995</option>' . "\n"
  3563. . '<option value="1996">1996</option>' . "\n"
  3564. . '<option value="1997">1997</option>' . "\n"
  3565. . '<option value="1998">1998</option>' . "\n"
  3566. . '<option value="1999">1999</option>' . "\n"
  3567. . '<option value="2000" selected="selected">2000</option>' . "\n"
  3568. . '<option value="2001">2001</option>' . "\n"
  3569. . '<option value="2002">2002</option>' . "\n"
  3570. . '<option value="2003">2003</option>' . "\n"
  3571. . '<option value="2004">2004</option>' . "\n"
  3572. . '<option value="2005">2005</option>' . "\n"
  3573. . '</select>' . "\n"
  3574. . '<select name="Person[birth(2i)]">' . "\n"
  3575. . '<option value="01">January</option>' . "\n"
  3576. . '<option value="02">February</option>' . "\n"
  3577. . '<option value="03">March</option>' . "\n"
  3578. . '<option value="04">April</option>' . "\n"
  3579. . '<option value="05">May</option>' . "\n"
  3580. . '<option value="06">June</option>' . "\n"
  3581. . '<option value="07">July</option>' . "\n"
  3582. . '<option value="08">August</option>' . "\n"
  3583. . '<option value="09" selected="selected">September</option>' . "\n"
  3584. . '<option value="10">October</option>' . "\n"
  3585. . '<option value="11">November</option>' . "\n"
  3586. . '<option value="12">December</option>' . "\n"
  3587. . '</select>' . "\n"
  3588. . '<select name="Person[birth(3i)]">' . "\n"
  3589. . '<option value="01">01</option>' . "\n"
  3590. . '<option value="02">02</option>' . "\n"
  3591. . '<option value="03">03</option>' . "\n"
  3592. . '<option value="04">04</option>' . "\n"
  3593. . '<option value="05">05</option>' . "\n"
  3594. . '<option value="06">06</option>' . "\n"
  3595. . '<option value="07">07</option>' . "\n"
  3596. . '<option value="08">08</option>' . "\n"
  3597. . '<option value="09">09</option>' . "\n"
  3598. . '<option value="10">10</option>' . "\n"
  3599. . '<option value="11">11</option>' . "\n"
  3600. . '<option value="12">12</option>' . "\n"
  3601. . '<option value="13">13</option>' . "\n"
  3602. . '<option value="14">14</option>' . "\n"
  3603. . '<option value="15">15</option>' . "\n"
  3604. . '<option value="16">16</option>' . "\n"
  3605. . '<option value="17" selected="selected">17</option>' . "\n"
  3606. . '<option value="18">18</option>' . "\n"
  3607. . '<option value="19">19</option>' . "\n"
  3608. . '<option value="20">20</option>' . "\n"
  3609. . '<option value="21">21</option>' . "\n"
  3610. . '<option value="22">22</option>' . "\n"
  3611. . '<option value="23">23</option>' . "\n"
  3612. . '<option value="24">24</option>' . "\n"
  3613. . '<option value="25">25</option>' . "\n"
  3614. . '<option value="26">26</option>' . "\n"
  3615. . '<option value="27">27</option>' . "\n"
  3616. . '<option value="28">28</option>' . "\n"
  3617. . '<option value="29">29</option>' . "\n"
  3618. . '<option value="30">30</option>' . "\n"
  3619. . '<option value="31">31</option>' . "\n"
  3620. . '</select>' . "\n"
  3621. . ' &mdash; <select name="Person[birth(4i)]">' . "\n"
  3622. . '<option value="00">00</option>' . "\n"
  3623. . '<option value="01">01</option>' . "\n"
  3624. . '<option value="02">02</option>' . "\n"
  3625. . '<option value="03">03</option>' . "\n"
  3626. . '<option value="04">04</option>' . "\n"
  3627. . '<option value="05">05</option>' . "\n"
  3628. . '<option value="06">06</option>' . "\n"
  3629. . '<option value="07">07</option>' . "\n"
  3630. . '<option value="08">08</option>' . "\n"
  3631. . '<option value="09" selected="selected">09</option>' . "\n"
  3632. . '<option value="10">10</option>' . "\n"
  3633. . '<option value="11">11</option>' . "\n"
  3634. . '<option value="12">12</option>' . "\n"
  3635. . '<option value="13">13</option>' . "\n"
  3636. . '<option value="14">14</option>' . "\n"
  3637. . '<option value="15">15</option>' . "\n"
  3638. . '<option value="16">16</option>' . "\n"
  3639. . '<option value="17">17</option>' . "\n"
  3640. . '<option value="18">18</option>' . "\n"
  3641. . '<option value="19">19</option>' . "\n"
  3642. . '<option value="20">20</option>' . "\n"
  3643. . '<option value="21">21</option>' . "\n"
  3644. . '<option value="22">22</option>' . "\n"
  3645. . '<option value="23">23</option>' . "\n"
  3646. . '</select>' . "\n"
  3647. . ' : <select name="Person[birth(5i)]">' . "\n"
  3648. . '<option value="00">00</option>' . "\n"
  3649. . '<option value="01">01</option>' . "\n"
  3650. . '<option value="02">02</option>' . "\n"
  3651. . '<option value="03">03</option>' . "\n"
  3652. . '<option value="04">04</option>' . "\n"
  3653. . '<option value="05">05</option>' . "\n"
  3654. . '<option value="06">06</option>' . "\n"
  3655. . '<option value="07">07</option>' . "\n"
  3656. . '<option value="08">08</option>' . "\n"
  3657. . '<option value="09">09</option>' . "\n"
  3658. . '<option value="10">10</option>' . "\n"
  3659. . '<option value="11">11</option>' . "\n"
  3660. . '<option value="12">12</option>' . "\n"
  3661. . '<option value="13">13</option>' . "\n"
  3662. . '<option value="14">14</option>' . "\n"
  3663. . '<option value="15">15</option>' . "\n"
  3664. . '<option value="16">16</option>' . "\n"
  3665. . '<option value="17">17</option>' . "\n"
  3666. . '<option value="18">18</option>' . "\n"
  3667. . '<option value="19">19</option>' . "\n"
  3668. . '<option value="20">20</option>' . "\n"
  3669. . '<option value="21">21</option>' . "\n"
  3670. . '<option value="22">22</option>' . "\n"
  3671. . '<option value="23">23</option>' . "\n"
  3672. . '<option value="24">24</option>' . "\n"
  3673. . '<option value="25">25</option>' . "\n"
  3674. . '<option value="26">26</option>' . "\n"
  3675. . '<option value="27">27</option>' . "\n"
  3676. . '<option value="28">28</option>' . "\n"
  3677. . '<option value="29">29</option>' . "\n"
  3678. . '<option value="30">30</option>' . "\n"
  3679. . '<option value="31">31</option>' . "\n"
  3680. . '<option value="32">32</option>' . "\n"
  3681. . '<option value="33">33</option>' . "\n"
  3682. . '<option value="34">34</option>' . "\n"
  3683. . '<option value="35">35</option>' . "\n"
  3684. . '<option value="36">36</option>' . "\n"
  3685. . '<option value="37">37</option>' . "\n"
  3686. . '<option value="38">38</option>' . "\n"
  3687. . '<option value="39">39</option>' . "\n"
  3688. . '<option value="40">40</option>' . "\n"
  3689. . '<option value="41">41</option>' . "\n"
  3690. . '<option value="42" selected="selected">42</option>' . "\n"
  3691. . '<option value="43">43</option>' . "\n"
  3692. . '<option value="44">44</option>' . "\n"
  3693. . '<option value="45">45</option>' . "\n"
  3694. . '<option value="46">46</option>' . "\n"
  3695. . '<option value="47">47</option>' . "\n"
  3696. . '<option value="48">48</option>' . "\n"
  3697. . '<option value="49">49</option>' . "\n"
  3698. . '<option value="50">50</option>' . "\n"
  3699. . '<option value="51">51</option>' . "\n"
  3700. . '<option value="52">52</option>' . "\n"
  3701. . '<option value="53">53</option>' . "\n"
  3702. . '<option value="54">54</option>' . "\n"
  3703. . '<option value="55">55</option>' . "\n"
  3704. . '<option value="56">56</option>' . "\n"
  3705. . '<option value="57">57</option>' . "\n"
  3706. . '<option value="58">58</option>' . "\n"
  3707. . '<option value="59">59</option>' . "\n"
  3708. . '</select>' . "\n"
  3709. . ' : <select name="Person[birth(6i)]">' . "\n"
  3710. . '<option value="00">00</option>' . "\n"
  3711. . '<option value="01">01</option>' . "\n"
  3712. . '<option value="02">02</option>' . "\n"
  3713. . '<option value="03">03</option>' . "\n"
  3714. . '<option value="04">04</option>' . "\n"
  3715. . '<option value="05">05</option>' . "\n"
  3716. . '<option value="06">06</option>' . "\n"
  3717. . '<option value="07">07</option>' . "\n"
  3718. . '<option value="08">08</option>' . "\n"
  3719. . '<option value="09">09</option>' . "\n"
  3720. . '<option value="10">10</option>' . "\n"
  3721. . '<option value="11">11</option>' . "\n"
  3722. . '<option value="12">12</option>' . "\n"
  3723. . '<option value="13">13</option>' . "\n"
  3724. . '<option value="14">14</option>' . "\n"
  3725. . '<option value="15">15</option>' . "\n"
  3726. . '<option value="16">16</option>' . "\n"
  3727. . '<option value="17">17</option>' . "\n"
  3728. . '<option value="18">18</option>' . "\n"
  3729. . '<option value="19">19</option>' . "\n"
  3730. . '<option value="20">20</option>' . "\n"
  3731. . '<option value="21">21</option>' . "\n"
  3732. . '<option value="22">22</option>' . "\n"
  3733. . '<option value="23">23</option>' . "\n"
  3734. . '<option value="24">24</option>' . "\n"
  3735. . '<option value="25">25</option>' . "\n"
  3736. . '<option value="26">26</option>' . "\n"
  3737. . '<option value="27">27</option>' . "\n"
  3738. . '<option value="28">28</option>' . "\n"
  3739. . '<option value="29">29</option>' . "\n"
  3740. . '<option value="30">30</option>' . "\n"
  3741. . '<option value="31">31</option>' . "\n"
  3742. . '<option value="32">32</option>' . "\n"
  3743. . '<option value="33">33</option>' . "\n"
  3744. . '<option value="34">34</option>' . "\n"
  3745. . '<option value="35">35</option>' . "\n"
  3746. . '<option value="36">36</option>' . "\n"
  3747. . '<option value="37">37</option>' . "\n"
  3748. . '<option value="38">38</option>' . "\n"
  3749. . '<option value="39">39</option>' . "\n"
  3750. . '<option value="40">40</option>' . "\n"
  3751. . '<option value="41">41</option>' . "\n"
  3752. . '<option value="42">42</option>' . "\n"
  3753. . '<option value="43">43</option>' . "\n"
  3754. . '<option value="44">44</option>' . "\n"
  3755. . '<option value="45">45</option>' . "\n"
  3756. . '<option value="46">46</option>' . "\n"
  3757. . '<option value="47">47</option>' . "\n"
  3758. . '<option value="48">48</option>' . "\n"
  3759. . '<option value="49">49</option>' . "\n"
  3760. . '<option value="50">50</option>' . "\n"
  3761. . '<option value="51">51</option>' . "\n"
  3762. . '<option value="52">52</option>' . "\n"
  3763. . '<option value="53" selected="selected">53</option>' . "\n"
  3764. . '<option value="54">54</option>' . "\n"
  3765. . '<option value="55">55</option>' . "\n"
  3766. . '<option value="56">56</option>' . "\n"
  3767. . '<option value="57">57</option>' . "\n"
  3768. . '<option value="58">58</option>' . "\n"
  3769. . '<option value="59">59</option>' . "\n"
  3770. . '</select>' . "\n",
  3771. $dh->to_datetime_select_tag(array('discard_second' => false)));
  3772. }
  3773.  
  3774. /**
  3775. * Test to_expiration_date_select_tag() method
  3776. *
  3777. * Test the {@link DateHelper::to_expiration_date_select_tag()} method
  3778. */
  3779. public function testTo_expiration_date_select_tag_method() {
  3780. $dh = new DateHelper('License', 'expiration_date');
  3781. $_REQUEST['License']['expiration_date(1i)'] = date('Y');
  3782. $_REQUEST['License']['expiration_date(2i)'] = '08';
  3783.  
  3784. // Test expiration date of August this year
  3785. $this->assertContains('<option value="'.date('Y').
  3786. '" selected="selected"',
  3787. $dh->to_expiration_date_select_tag());
  3788. $this->assertContains('<option value="'.(date('Y')+7).'"',
  3789. $dh->to_expiration_date_select_tag());
  3790. $this->assertContains('<option value="08" selected="selected">'
  3791. . '8</option>',
  3792. $dh->to_expiration_date_select_tag());
  3793. }
  3794.  
  3795. /**
  3796. * Test expiration_date_select() function
  3797. *
  3798. * Test the {@link expiration_date_select()} function in procedural
  3799. * file {@link date_helper.php}
  3800. */
  3801. public function testExpiration_date_select_function() {
  3802.  
  3803. // Test expiration date of August this year
  3804. $_REQUEST['License']['expiration_date(1i)'] = date('Y');
  3805. $_REQUEST['License']['expiration_date(2i)'] = '08';
  3806. $this->assertContains('<option value="'.date('Y').
  3807. '" selected="selected"',
  3808. expiration_date_select('License','expiration_date'));
  3809. $this->assertContains('<option value="'.(date('Y')+7).'"',
  3810. expiration_date_select('License','expiration_date'));
  3811. $this->assertContains('<option value="08" selected="selected">'
  3812. . '8</option>',
  3813. expiration_date_select('License','expiration_date'));
  3814. }
  3815.  
  3816. }
  3817.  
  3818. // Call DateHelperTest::main() if this source file is executed directly.
  3819. if (PHPUnit2_MAIN_METHOD == "DateHelperTest::main") {
  3820. DateHelperTest::main();
  3821. }
  3822.  
  3823. // -- set Emacs parameters --
  3824. // Local variables:
  3825. // tab-width: 4
  3826. // c-basic-offset: 4
  3827. // c-hanging-comment-ender-p: nil
  3828. // indent-tabs-mode: nil
  3829. // End:
  3830. ?>

Documentation generated on Thu, 04 May 2006 19:47:23 -0600 by phpDocumentor 1.3.0RC4