[ Index ] |
|
Code source de PHPonTrax 2.6.6-svn |
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 . ' — <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 . ' — <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 . ' — <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 . ' — <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 . ' — <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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 20:04:38 2007 | par Balluche grâce à PHPXref 0.7 |