Changeset 198 for trunk/trax/test

Show
Ignore:
Timestamp:
04/20/06 10:20:30 (6 years ago)
Author:
haas
Message:

DateHelper? docs and tests

Location:
trunk/trax/test
Files:
4 added
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/trax/test/ActiveRecordHelperTest.php

    r192 r198  
    1515require_once 'testenv.php'; 
    1616 
     17//  We need to load a mock DB class to test ActiveRecordHelper 
     18//  Change the include path to put the mockDB/ directory first, so 
     19//  that when ActiveRecord loads it will pick up the mock class. 
     20@ini_set('include_path','./mockDB:'.ini_get('include_path')); 
     21require_once "active_record.php"; 
     22 
    1723// Call ActiveRecordErrorTest::main() if this source file is executed directly. 
    1824if (!defined("PHPUnit2_MAIN_METHOD")) { 
     
    2632require_once "PHPUnit2/Framework/IncompleteTestError.php"; 
    2733 
     34//  root Trax files in the test directory 
     35define("TRAX_ROOT", dirname(__FILE__) . "/"); 
     36define("TRAX_VIEWS_EXTENTION",  "phtml"); 
     37$GLOBALS['TRAX_INCLUDES'] = 
     38    array( "config"      => "config", 
     39           "controllers" => "controllers", 
     40           "helpers"     => "helpers", 
     41           "layouts"     => "layouts", 
     42           "views"       => "views"); 
     43 
    2844require_once "action_view/helpers.php"; 
    2945require_once "action_view/helpers/active_record_helper.php"; 
     46require_once "router.php"; 
     47require_once 'trax_exceptions.php'; 
     48require_once 'inflector.php'; 
     49require_once 'action_controller.php'; 
     50 
     51// Set Trax operating mode 
     52define("TRAX_MODE",   "development"); 
     53 
     54class DataType extends ActiveRecord {} 
    3055 
    3156/** 
     
    5479     */ 
    5580    protected function setUp() { 
     81 
     82        //  Force constructor to get a connection 
     83        $GLOBALS['ACTIVE_RECORD_DB'] = null; 
     84 
     85        // Set up information that normally comes from database.ini 
     86        $GLOBALS['TRAX_DB_SETTINGS'][TRAX_MODE] 
     87            = array('phptype'    => 'mysql', 
     88                    'database'   => 'database_development', 
     89                    'hostspec'   => 'localhost', 
     90                    'username'   => 'root', 
     91                    'password'   => '', 
     92                    'persistent' => true); 
    5693    } 
    5794 
     
    149186     */ 
    150187    public function testAll_input_tags() { 
     188        $ar = new ActionController; 
     189        $GLOBALS['current_controller_object'] = $ar; 
     190        $dt = new DataType; 
     191        $ar->DataType = $dt; 
     192        $arh = new ActiveRecordHelper(); 
     193        $arh->scaffolding = true; 
     194        echo "calling all_input_tags()\n"; 
     195        echo $arh->all_input_tags($dt, 'DataType', array());  
     196 
     197 
     198 
    151199        // Remove the following line when you implement this test. 
    152200        throw new PHPUnit2_Framework_IncompleteTestError; 
  • trunk/trax/test/DateHelperTest.php

    r196 r198  
    2626require_once "PHPUnit2/Framework/IncompleteTestError.php"; 
    2727 
     28//  Create an ActiveRecord and an ActionController to test with 
     29@ini_set('include_path', 
     30         './mockActiveRecord:./mockActionController:'.ini_get('include_path')); 
     31require_once "active_record.php"; 
     32require_once "action_controller.php"; 
    2833require_once "trax_exceptions.php"; 
    2934require_once "action_view/helpers.php"; 
    3035require_once "action_view/helpers/date_helper.php"; 
     36 
     37/** 
     38 *  Extend the DateHelper class so we can access protected stuff 
     39 */ 
     40class ExDateHelper extends DateHelper 
     41{ 
     42    function value() { 
     43        return parent::value(); 
     44    } 
     45} 
     46 
    3147 
    3248/** 
     
    6480     */ 
    6581    protected function tearDown() { 
     82        unset($_REQUEST); 
    6683    } 
    6784 
    6885    /** 
    69      *  @todo Implement testConstruct() 
     86     *  Test __construct() 
     87     * 
     88     *  Test the {@link DateHelper::__construct() constructor} 
    7089     */ 
    7190    public function testConstruct() { 
    72         // Remove the following line when you implement this test. 
    73         throw new PHPUnit2_Framework_IncompleteTestError; 
     91        $dh = new DateHelper('Foo', 'bar'); 
     92        $this->assertEquals('Foo', $dh->object_name); 
     93        $this->assertEquals('bar', $dh->attribute_name); 
    7494    } 
    7595 
    7696    /** 
    77      *  @todo Implement testExpiration_date_select() 
     97     *  Test the expiration_date_select() method 
     98     * 
     99     *  Test the {@link DateHelper::expiration_date_select()} method 
    78100     */ 
    79101    public function testExpiration_date_select() { 
    80         // Remove the following line when you implement this test. 
    81         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    82115    } 
    83116 
    84117    /** 
    85      *  @todo Implement testDatetime_select_method() 
     118     *  Test datetime_select() method 
     119     * 
     120     *  Test the {@link DateHelper::datetime_select()} method 
    86121     */ 
    87122    public function testDatetime_select_method() { 
    88         // Remove the following line when you implement this test. 
    89         throw new PHPUnit2_Framework_IncompleteTestError; 
     123        $dh = new DateHelper('Person','birth'); 
     124        $dh->controller_object = new ActionController; 
     125        $ar = new ActiveRecord; 
     126        $dh->controller_object->Person = $ar; 
     127 
     128        //  With no value in $_REQUEST, data should be 
     129        //  retrieved from the the ActiveRecord 
     130        $ar->expect_query("birth","2001-07-05 11:30:45"); 
     131        $this->assertEquals('<select name="Person[birth(1i)]">' . "\n" 
     132           . '<option value="1996">1996</option>' . "\n" 
     133           . '<option value="1997">1997</option>' . "\n" 
     134           . '<option value="1998">1998</option>' . "\n" 
     135           . '<option value="1999">1999</option>' . "\n" 
     136           . '<option value="2000">2000</option>' . "\n" 
     137           . '<option value="2001"  selected="selected">2001</option>' . "\n" 
     138           . '<option value="2002">2002</option>' . "\n" 
     139           . '<option value="2003">2003</option>' . "\n" 
     140           . '<option value="2004">2004</option>' . "\n" 
     141           . '<option value="2005">2005</option>' . "\n" 
     142           . '<option value="2006">2006</option>' . "\n" 
     143           . '</select>' . "\n" 
     144           . '<select name="Person[birth(2i)]">' . "\n" 
     145           . '<option value="01">January</option>' . "\n" 
     146           . '<option value="02">February</option>' . "\n" 
     147           . '<option value="03">March</option>' . "\n" 
     148           . '<option value="04">April</option>' . "\n" 
     149           . '<option value="05">May</option>' . "\n" 
     150           . '<option value="06">June</option>' . "\n" 
     151           . '<option value="07" selected="selected">July</option>' . "\n" 
     152           . '<option value="08">August</option>' . "\n" 
     153           . '<option value="09">September</option>' . "\n" 
     154           . '<option value="10">October</option>' . "\n" 
     155           . '<option value="11">November</option>' . "\n" 
     156           . '<option value="12">December</option>' . "\n" 
     157           . '</select>' . "\n" 
     158           . '<select name="Person[birth(3i)]">' . "\n" 
     159           . '<option value="01">01</option>' . "\n" 
     160           . '<option value="02">02</option>' . "\n" 
     161           . '<option value="03">03</option>' . "\n" 
     162           . '<option value="04">04</option>' . "\n" 
     163           . '<option value="05"  selected="selected">05</option>' . "\n" 
     164           . '<option value="06">06</option>' . "\n" 
     165           . '<option value="07">07</option>' . "\n" 
     166           . '<option value="08">08</option>' . "\n" 
     167           . '<option value="09">09</option>' . "\n" 
     168           . '<option value="10">10</option>' . "\n" 
     169           . '<option value="11">11</option>' . "\n" 
     170           . '<option value="12">12</option>' . "\n" 
     171           . '<option value="13">13</option>' . "\n" 
     172           . '<option value="14">14</option>' . "\n" 
     173           . '<option value="15">15</option>' . "\n" 
     174           . '<option value="16">16</option>' . "\n" 
     175           . '<option value="17">17</option>' . "\n" 
     176           . '<option value="18">18</option>' . "\n" 
     177           . '<option value="19">19</option>' . "\n" 
     178           . '<option value="20">20</option>' . "\n" 
     179           . '<option value="21">21</option>' . "\n" 
     180           . '<option value="22">22</option>' . "\n" 
     181           . '<option value="23">23</option>' . "\n" 
     182           . '<option value="24">24</option>' . "\n" 
     183           . '<option value="25">25</option>' . "\n" 
     184           . '<option value="26">26</option>' . "\n" 
     185           . '<option value="27">27</option>' . "\n" 
     186           . '<option value="28">28</option>' . "\n" 
     187           . '<option value="29">29</option>' . "\n" 
     188           . '<option value="30">30</option>' . "\n" 
     189           . '<option value="31">31</option>' . "\n" 
     190           . '</select>' . "\n" 
     191           . ' &mdash; <select name="Person[birth(4i)]">' . "\n" 
     192           . '<option value="00">00</option>' . "\n" 
     193           . '<option value="01">01</option>' . "\n" 
     194           . '<option value="02">02</option>' . "\n" 
     195           . '<option value="03">03</option>' . "\n" 
     196           . '<option value="04">04</option>' . "\n" 
     197           . '<option value="05">05</option>' . "\n" 
     198           . '<option value="06">06</option>' . "\n" 
     199           . '<option value="07">07</option>' . "\n" 
     200           . '<option value="08">08</option>' . "\n" 
     201           . '<option value="09">09</option>' . "\n" 
     202           . '<option value="10">10</option>' . "\n" 
     203           . '<option value="11"  selected="selected">11</option>' . "\n" 
     204           . '<option value="12">12</option>' . "\n" 
     205           . '<option value="13">13</option>' . "\n" 
     206           . '<option value="14">14</option>' . "\n" 
     207           . '<option value="15">15</option>' . "\n" 
     208           . '<option value="16">16</option>' . "\n" 
     209           . '<option value="17">17</option>' . "\n" 
     210           . '<option value="18">18</option>' . "\n" 
     211           . '<option value="19">19</option>' . "\n" 
     212           . '<option value="20">20</option>' . "\n" 
     213           . '<option value="21">21</option>' . "\n" 
     214           . '<option value="22">22</option>' . "\n" 
     215           . '<option value="23">23</option>' . "\n" 
     216           . '</select>' . "\n" 
     217           . ' : <select name="Person[birth(5i)]">' . "\n" 
     218           . '<option value="00">00</option>' . "\n" 
     219           . '<option value="01">01</option>' . "\n" 
     220           . '<option value="02">02</option>' . "\n" 
     221           . '<option value="03">03</option>' . "\n" 
     222           . '<option value="04">04</option>' . "\n" 
     223           . '<option value="05">05</option>' . "\n" 
     224           . '<option value="06">06</option>' . "\n" 
     225           . '<option value="07">07</option>' . "\n" 
     226           . '<option value="08">08</option>' . "\n" 
     227           . '<option value="09">09</option>' . "\n" 
     228           . '<option value="10">10</option>' . "\n" 
     229           . '<option value="11">11</option>' . "\n" 
     230           . '<option value="12">12</option>' . "\n" 
     231           . '<option value="13">13</option>' . "\n" 
     232           . '<option value="14">14</option>' . "\n" 
     233           . '<option value="15">15</option>' . "\n" 
     234           . '<option value="16">16</option>' . "\n" 
     235           . '<option value="17">17</option>' . "\n" 
     236           . '<option value="18">18</option>' . "\n" 
     237           . '<option value="19">19</option>' . "\n" 
     238           . '<option value="20">20</option>' . "\n" 
     239           . '<option value="21">21</option>' . "\n" 
     240           . '<option value="22">22</option>' . "\n" 
     241           . '<option value="23">23</option>' . "\n" 
     242           . '<option value="24">24</option>' . "\n" 
     243           . '<option value="25">25</option>' . "\n" 
     244           . '<option value="26">26</option>' . "\n" 
     245           . '<option value="27">27</option>' . "\n" 
     246           . '<option value="28">28</option>' . "\n" 
     247           . '<option value="29">29</option>' . "\n" 
     248           . '<option value="30"  selected="selected">30</option>' . "\n" 
     249           . '<option value="31">31</option>' . "\n" 
     250           . '<option value="32">32</option>' . "\n" 
     251           . '<option value="33">33</option>' . "\n" 
     252           . '<option value="34">34</option>' . "\n" 
     253           . '<option value="35">35</option>' . "\n" 
     254           . '<option value="36">36</option>' . "\n" 
     255           . '<option value="37">37</option>' . "\n" 
     256           . '<option value="38">38</option>' . "\n" 
     257           . '<option value="39">39</option>' . "\n" 
     258           . '<option value="40">40</option>' . "\n" 
     259           . '<option value="41">41</option>' . "\n" 
     260           . '<option value="42">42</option>' . "\n" 
     261           . '<option value="43">43</option>' . "\n" 
     262           . '<option value="44">44</option>' . "\n" 
     263           . '<option value="45">45</option>' . "\n" 
     264           . '<option value="46">46</option>' . "\n" 
     265           . '<option value="47">47</option>' . "\n" 
     266           . '<option value="48">48</option>' . "\n" 
     267           . '<option value="49">49</option>' . "\n" 
     268           . '<option value="50">50</option>' . "\n" 
     269           . '<option value="51">51</option>' . "\n" 
     270           . '<option value="52">52</option>' . "\n" 
     271           . '<option value="53">53</option>' . "\n" 
     272           . '<option value="54">54</option>' . "\n" 
     273           . '<option value="55">55</option>' . "\n" 
     274           . '<option value="56">56</option>' . "\n" 
     275           . '<option value="57">57</option>' . "\n" 
     276           . '<option value="58">58</option>' . "\n" 
     277           . '<option value="59">59</option>' . "\n" 
     278           . '</select>' . "\n", 
     279           $dh->datetime_select()); 
    90280    } 
    91281 
    92282    /** 
    93      *  @todo Implement testDatetime_select_function() 
     283     *  Test datetime_select() function 
     284     * 
     285     *  Test the {@link datetime_select()} function in procedural file 
     286     *  {@link date_helper.php} 
    94287     */ 
    95288    public function testDatetime_select_function() { 
    96         // Remove the following line when you implement this test. 
    97         throw new PHPUnit2_Framework_IncompleteTestError; 
     289 
     290        //  Values from $_REQUEST, default format 
     291        $_REQUEST['Person']['birth(1i)'] = '2001'; 
     292        $_REQUEST['Person']['birth(2i)'] = '07'; 
     293        $_REQUEST['Person']['birth(3i)'] = '05'; 
     294        $_REQUEST['Person']['birth(4i)'] = '11'; 
     295        $_REQUEST['Person']['birth(5i)'] = '30'; 
     296        $this->assertEquals('<select name="Person[birth(1i)]">' . "\n" 
     297           . '<option value="1996">1996</option>' . "\n" 
     298           . '<option value="1997">1997</option>' . "\n" 
     299           . '<option value="1998">1998</option>' . "\n" 
     300           . '<option value="1999">1999</option>' . "\n" 
     301           . '<option value="2000">2000</option>' . "\n" 
     302           . '<option value="2001"  selected="selected">2001</option>' . "\n" 
     303           . '<option value="2002">2002</option>' . "\n" 
     304           . '<option value="2003">2003</option>' . "\n" 
     305           . '<option value="2004">2004</option>' . "\n" 
     306           . '<option value="2005">2005</option>' . "\n" 
     307           . '<option value="2006">2006</option>' . "\n" 
     308           . '</select>' . "\n" 
     309           . '<select name="Person[birth(2i)]">' . "\n" 
     310           . '<option value="01">January</option>' . "\n" 
     311           . '<option value="02">February</option>' . "\n" 
     312           . '<option value="03">March</option>' . "\n" 
     313           . '<option value="04">April</option>' . "\n" 
     314           . '<option value="05">May</option>' . "\n" 
     315           . '<option value="06">June</option>' . "\n" 
     316           . '<option value="07" selected="selected">July</option>' . "\n" 
     317           . '<option value="08">August</option>' . "\n" 
     318           . '<option value="09">September</option>' . "\n" 
     319           . '<option value="10">October</option>' . "\n" 
     320           . '<option value="11">November</option>' . "\n" 
     321           . '<option value="12">December</option>' . "\n" 
     322           . '</select>' . "\n" 
     323           . '<select name="Person[birth(3i)]">' . "\n" 
     324           . '<option value="01">01</option>' . "\n" 
     325           . '<option value="02">02</option>' . "\n" 
     326           . '<option value="03">03</option>' . "\n" 
     327           . '<option value="04">04</option>' . "\n" 
     328           . '<option value="05"  selected="selected">05</option>' . "\n" 
     329           . '<option value="06">06</option>' . "\n" 
     330           . '<option value="07">07</option>' . "\n" 
     331           . '<option value="08">08</option>' . "\n" 
     332           . '<option value="09">09</option>' . "\n" 
     333           . '<option value="10">10</option>' . "\n" 
     334           . '<option value="11">11</option>' . "\n" 
     335           . '<option value="12">12</option>' . "\n" 
     336           . '<option value="13">13</option>' . "\n" 
     337           . '<option value="14">14</option>' . "\n" 
     338           . '<option value="15">15</option>' . "\n" 
     339           . '<option value="16">16</option>' . "\n" 
     340           . '<option value="17">17</option>' . "\n" 
     341           . '<option value="18">18</option>' . "\n" 
     342           . '<option value="19">19</option>' . "\n" 
     343           . '<option value="20">20</option>' . "\n" 
     344           . '<option value="21">21</option>' . "\n" 
     345           . '<option value="22">22</option>' . "\n" 
     346           . '<option value="23">23</option>' . "\n" 
     347           . '<option value="24">24</option>' . "\n" 
     348           . '<option value="25">25</option>' . "\n" 
     349           . '<option value="26">26</option>' . "\n" 
     350           . '<option value="27">27</option>' . "\n" 
     351           . '<option value="28">28</option>' . "\n" 
     352           . '<option value="29">29</option>' . "\n" 
     353           . '<option value="30">30</option>' . "\n" 
     354           . '<option value="31">31</option>' . "\n" 
     355           . '</select>' . "\n" 
     356           . ' &mdash; <select name="Person[birth(4i)]">' . "\n" 
     357           . '<option value="00">00</option>' . "\n" 
     358           . '<option value="01">01</option>' . "\n" 
     359           . '<option value="02">02</option>' . "\n" 
     360           . '<option value="03">03</option>' . "\n" 
     361           . '<option value="04">04</option>' . "\n" 
     362           . '<option value="05">05</option>' . "\n" 
     363           . '<option value="06">06</option>' . "\n" 
     364           . '<option value="07">07</option>' . "\n" 
     365           . '<option value="08">08</option>' . "\n" 
     366           . '<option value="09">09</option>' . "\n" 
     367           . '<option value="10">10</option>' . "\n" 
     368           . '<option value="11"  selected="selected">11</option>' . "\n" 
     369           . '<option value="12">12</option>' . "\n" 
     370           . '<option value="13">13</option>' . "\n" 
     371           . '<option value="14">14</option>' . "\n" 
     372           . '<option value="15">15</option>' . "\n" 
     373           . '<option value="16">16</option>' . "\n" 
     374           . '<option value="17">17</option>' . "\n" 
     375           . '<option value="18">18</option>' . "\n" 
     376           . '<option value="19">19</option>' . "\n" 
     377           . '<option value="20">20</option>' . "\n" 
     378           . '<option value="21">21</option>' . "\n" 
     379           . '<option value="22">22</option>' . "\n" 
     380           . '<option value="23">23</option>' . "\n" 
     381           . '</select>' . "\n" 
     382           . ' : <select name="Person[birth(5i)]">' . "\n" 
     383           . '<option value="00">00</option>' . "\n" 
     384           . '<option value="01">01</option>' . "\n" 
     385           . '<option value="02">02</option>' . "\n" 
     386           . '<option value="03">03</option>' . "\n" 
     387           . '<option value="04">04</option>' . "\n" 
     388           . '<option value="05">05</option>' . "\n" 
     389           . '<option value="06">06</option>' . "\n" 
     390           . '<option value="07">07</option>' . "\n" 
     391           . '<option value="08">08</option>' . "\n" 
     392           . '<option value="09">09</option>' . "\n" 
     393           . '<option value="10">10</option>' . "\n" 
     394           . '<option value="11">11</option>' . "\n" 
     395           . '<option value="12">12</option>' . "\n" 
     396           . '<option value="13">13</option>' . "\n" 
     397           . '<option value="14">14</option>' . "\n" 
     398           . '<option value="15">15</option>' . "\n" 
     399           . '<option value="16">16</option>' . "\n" 
     400           . '<option value="17">17</option>' . "\n" 
     401           . '<option value="18">18</option>' . "\n" 
     402           . '<option value="19">19</option>' . "\n" 
     403           . '<option value="20">20</option>' . "\n" 
     404           . '<option value="21">21</option>' . "\n" 
     405           . '<option value="22">22</option>' . "\n" 
     406           . '<option value="23">23</option>' . "\n" 
     407           . '<option value="24">24</option>' . "\n" 
     408           . '<option value="25">25</option>' . "\n" 
     409           . '<option value="26">26</option>' . "\n" 
     410           . '<option value="27">27</option>' . "\n" 
     411           . '<option value="28">28</option>' . "\n" 
     412           . '<option value="29">29</option>' . "\n" 
     413           . '<option value="30"  selected="selected">30</option>' . "\n" 
     414           . '<option value="31">31</option>' . "\n" 
     415           . '<option value="32">32</option>' . "\n" 
     416           . '<option value="33">33</option>' . "\n" 
     417           . '<option value="34">34</option>' . "\n" 
     418           . '<option value="35">35</option>' . "\n" 
     419           . '<option value="36">36</option>' . "\n" 
     420           . '<option value="37">37</option>' . "\n" 
     421           . '<option value="38">38</option>' . "\n" 
     422           . '<option value="39">39</option>' . "\n" 
     423           . '<option value="40">40</option>' . "\n" 
     424           . '<option value="41">41</option>' . "\n" 
     425           . '<option value="42">42</option>' . "\n" 
     426           . '<option value="43">43</option>' . "\n" 
     427           . '<option value="44">44</option>' . "\n" 
     428           . '<option value="45">45</option>' . "\n" 
     429           . '<option value="46">46</option>' . "\n" 
     430           . '<option value="47">47</option>' . "\n" 
     431           . '<option value="48">48</option>' . "\n" 
     432           . '<option value="49">49</option>' . "\n" 
     433           . '<option value="50">50</option>' . "\n" 
     434           . '<option value="51">51</option>' . "\n" 
     435           . '<option value="52">52</option>' . "\n" 
     436           . '<option value="53">53</option>' . "\n" 
     437           . '<option value="54">54</option>' . "\n" 
     438           . '<option value="55">55</option>' . "\n" 
     439           . '<option value="56">56</option>' . "\n" 
     440           . '<option value="57">57</option>' . "\n" 
     441           . '<option value="58">58</option>' . "\n" 
     442           . '<option value="59">59</option>' . "\n" 
     443           . '</select>' . "\n", 
     444           datetime_select('Person', 'birth')); 
    98445    } 
    99446 
    100447    /** 
    101      *  @todo Implement testDate_select_method() 
     448     *  Test date_select_method() 
     449     * 
     450     *  Test the {@link DateHelper::date_select()} method 
    102451     */ 
    103452    public function testDate_select_method() { 
    104         // Remove the following line when you implement this test. 
    105         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    106520    } 
    107521 
    108522    /** 
    109      *  @todo Implement testDate_select_function() 
     523     *  Test date_select() function 
     524     * 
     525     *  Test the {@link date_select()} function in the 
     526     *  {@link date_helper.php} procedural file 
    110527     */ 
    111528    public function testDate_select_function() { 
    112         // Remove the following line when you implement this test. 
    113         throw new PHPUnit2_Framework_IncompleteTestError; 
    114     } 
     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    } 
    115596 
    116597    /** 
    117      *  @todo Implement testSelect_expiration_date_method() 
     598     *  Test select_expiration_date() method 
     599     * 
     600     *  Test the {@link DateHelper::select_expiration_date()} method 
    118601     */ 
    119602    public function testSelect_expiration_date_method() { 
    120         // Remove the following line when you implement this test. 
    121         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    122616    } 
    123617 
    124618    /** 
    125      *  @todo Implement testSelect_expiration_date_function() 
     619     *  Test select_expiration_date() function 
     620     * 
     621     *  Test the {@link select_expiration_date()} function in the 
     622     *  {@link date_helper.php} procedural file 
    126623     */ 
    127624    public function testSelect_expiration_date_function() { 
    128         // Remove the following line when you implement this test. 
    129         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    130637    } 
    131638 
    132639    /** 
    133      *  @todo Implement testSelect_date_method() 
     640     *  Test select_date() method 
     641     * 
     642     *  Test the {@link DateHelper::select_date()} method 
    134643     */ 
    135644    public function testSelect_date_method() { 
    136         // Remove the following line when you implement this test. 
    137         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    138707    } 
    139708 
    140709    /** 
    141      *  @todo Implement testSelect_date_function() 
     710     *  Test select_date() function 
     711     * 
     712     *  Test the {@link select_date()} function in procedural file 
     713     *  {@link date_helper.php} 
    142714     */ 
    143715    public function testSelect_date_function() { 
    144         // Remove the following line when you implement this test. 
    145         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    146777    } 
    147778 
    148779    /** 
    149      *  @todo Implement testSelect_datetime_method() 
     780     *  Test select_datetime() method 
     781     * 
     782     *  Test {@link DateHelper::select_datetime() method 
    150783     */ 
    151784    public function testSelect_datetime_method() { 
    152         // Remove the following line when you implement this test. 
    153         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    154936    } 
    155937 
    156938    /** 
    157      *  @todo Implement testSelect_datetime_function() 
     939     *  Test select_datetime() function 
     940     * 
     941     *  Test the {@link select_datetime()} function in procedural file 
     942     *  {@link date_helper.php} 
    158943     */ 
    159944    public function testSelect_datetime_function() { 
    160         // Remove the following line when you implement this test. 
    161         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    1621094    } 
    1631095 
    1641096    /** 
    165      *  @todo Implement testSelect_time() 
     1097     *  Test select_time() 
     1098     * 
     1099     *  Test the {@link DateHelper::select_time()} method 
    1661100     */ 
    1671101    public function testSelect_time() { 
    168         // Remove the following line when you implement this test. 
    169         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    1701194    } 
    1711195 
    1721196    /** 
    173      *  @todo Implement testSelect_second() 
     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 
    1741654     */ 
    1751655    public function testSelect_second() { 
    176         // Remove the following line when you implement this test. 
    177         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    1781928    } 
    1791929 
    1801930    /** 
    181      *  @todo Implement testSelect_minute() 
     1931     *  Test select_minute() 
     1932     * 
     1933     *  Test {@link DateHelper::select_minute()} method 
    1821934     */ 
    1831935    public function testSelect_minute() { 
    184         // Remove the following line when you implement this test. 
    185         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    1862208    } 
    1872209 
    1882210    /** 
    189      *  @todo Implement testSelect_hour() 
     2211     *  Test select_hour() 
     2212     * 
     2213     *  Test {@link DateHelper::select_hour()} method 
    1902214     */ 
    1912215    public function testSelect_hour() { 
    192         // Remove the following line when you implement this test. 
    193         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    1942345    } 
    1952346 
    1962347    /** 
    197      *  @todo Implement testSelect_day_method() 
     2348     *  Test select_day() method 
     2349     * 
     2350     *  Test {@link DateHelper::select_day()} 
    1982351     */ 
    1992352    public function testSelect_day_method() { 
    200         // Remove the following line when you implement this test. 
    201         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    2022545    } 
    2032546 
    2042547    /** 
    205      *  @todo Implement testSelect_day_function() 
     2548     *  Test select_day() function 
     2549     * 
     2550     *  Test {@link select_day()} in procedural file {@link date_helper.php} 
    2062551     */ 
    2072552    public function testSelect_day_function() { 
    208         // Remove the following line when you implement this test. 
    209         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    2102589    } 
    2112590 
     
    2132592     *  Test select_month() method 
    2142593     * 
    215      *  NB: the override of selected month by $_REQUEST only occurs if 
    216      *  the private function check_request_for_value() was previously 
    217      *  called to parse $_REQUEST so we can't test that here. 
    218      * 
    219      *  NB: doesn't test corrects of selection of current month 
     2594     *  Test the {@link DateHelper::select_month()} method.<br /> 
     2595     *  <b>NB:</b> doesn't test correctness of selection of current month 
    2202596     */ 
    2212597    public function testSelect_month_method() { 
    2222598        $dh = new DateHelper(); 
     2599 
     2600        //  Test generation with all arguments omitted 
     2601        $this->assertContains('selected="selected">'.date('F'), 
     2602                            $dh->select_month()); 
    2232603 
    2242604        //  Test generation with November selected, default output format 
     
    2382618                            . '</select>' . "\n", 
    2392619                            $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')); 
    2402637 
    2412638        //  Test generation of month numbers as visible content 
     
    2752672                                              array('add_month_numbers'=>1))); 
    2762673 
    277         // Remove the following line when you implement this test. 
    278         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    2792694    } 
    2802695 
    2812696    /** 
    282      *  @todo Implement testSelect_month_function() 
     2697     *  Test select_month() function 
     2698     * 
     2699     *  Test the {@link select_month()} function in procedural file 
     2700     *  {@link date_helper.php} 
    2832701     */ 
    2842702    public function testSelect_month_function() { 
    285         // Remove the following line when you implement this test. 
    286         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    2872720    } 
    2882721 
     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 
    2892734    /** 
    290      *  @todo Implement testSelect_year_method() 
     2735     *  Test select_year() method 
     2736     * 
     2737     *  Test {@link DateHelper::select_year()} 
    2912738     */ 
    292     public function testSelect_year_method() { 
    293         // Remove the following line when you implement this test. 
    294         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    2952872    } 
    2962873 
    2972874    /** 
    298      *  @todo Implement testSelect_year_function() 
     2875     *  Test year_select() method 
     2876     * 
     2877     *  Test {@link DateHelper::year_select()} method 
    2992878     */ 
    300     public function testSelect_year_function() { 
    301         // Remove the following line when you implement this test. 
    302         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    3032919    } 
    3042920 
    3052921    /** 
    306      *  @todo Implement testTo_date_select_tag() 
     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 
    3072951     */ 
    3082952    public function testTo_date_select_tag() { 
    309         // Remove the following line when you implement this test. 
    310         throw new PHPUnit2_Framework_IncompleteTestError; 
     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))); 
    3113237    } 
    3123238 
    3133239    /** 
    314      *  @todo Implement testTo_datetime_select_tag() 
     3240     *  Test to_datetime_select_tag() method 
     3241     * 
     3242     *  Test {@link DateHelper::to_datetime_select_tag()} method 
    3153243     */ 
    3163244    public function testTo_datetime_select_tag() { 
    317         // Remove the following line when you implement this test. 
    318         throw new PHPUnit2_Framework_IncompleteTestError; 
     3245        $dh = new DateHelper('Person','birth'); 
     3246        $dh->controller_object = new ActionController; 
     3247        $ar = new ActiveRecord; 
     3248        $dh->controller_object->Person = $ar; 
     3249 
     3250        //  Data from the the ActiveRecord, default format 
     3251        $ar->expect_query("birth","2001-07-05 11:30:45"); 
     3252        $this->assertEquals('<select name="Person[birth(1i)]">' . "\n" 
     3253           . '<option value="1996">1996</option>' . "\n" 
     3254           . '<option value="1997">1997</option>' . "\n" 
     3255           . '<option value="1998">1998</option>' . "\n" 
     3256           . '<option value="1999">1999</option>' . "\n" 
     3257           . '<option value="2000">2000</option>' . "\n" 
     3258           . '<option value="2001"  selected="selected">2001</option>' . "\n" 
     3259           . '<option value="2002">2002</option>' . "\n" 
     3260           . '<option value="2003">2003</option>' . "\n" 
     3261           . '<option value="2004">2004</option>' . "\n" 
     3262           . '<option value="2005">2005</option>' . "\n" 
     3263           . '<option value="2006">2006</option>' . "\n" 
     3264           . '</select>' . "\n" 
     3265           . '<select name="Person[birth(2i)]">' . "\n" 
     3266           . '<option value="01">January</option>' . "\n" 
     3267           . '<option value="02">February</option>' . "\n" 
     3268           . '<option value="03">March</option>' . "\n" 
     3269           . '<option value="04">April</option>' . "\n" 
     3270           . '<option value="05">May</option>' . "\n" 
     3271           . '<option value="06">June</option>' . "\n" 
     3272           . '<option value="07" selected="selected">July</option>' . "\n" 
     3273           . '<option value="08">August</option>' . "\n" 
     3274           . '<option value="09">September</option>' . "\n" 
     3275           . '<option value="10">October</option>' . "\n" 
     3276           . '<option value="11">November</option>' . "\n" 
     3277           . '<option value="12">December</option>' . "\n" 
     3278           . '</select>' . "\n" 
     3279           . '<select name="Person[birth(3i)]">' . "\n" 
     3280           . '<option value="01">01</option>' . "\n" 
     3281           . '<option value="02">02</option>' . "\n" 
     3282           . '<option value="03">03</option>' . "\n" 
     3283           . '<option value="04">04</option>' . "\n" 
     3284           . '<option value="05"  selected="selected">05</option>' . "\n" 
     3285           . '<option value="06">06</option>' . "\n" 
     3286           . '<option value="07">07</option>' . "\n" 
     3287           . '<option value="08">08</option>' . "\n" 
     3288           . '<option value="09">09</option>' . "\n" 
     3289           . '<option value="10">10</option>' . "\n" 
     3290           . '<option value="11">11</option>' . "\n" 
     3291           . '<option value="12">12</option>' . "\n" 
     3292           . '<option value="13">13</option>' . "\n" 
     3293           . '<option value="14">14</option>' . "\n" 
     3294           . '<option value="15">15</option>' . "\n" 
     3295           . '<option value="16">16</option>' . "\n" 
     3296           . '<option value="17">17</option>' . "\n" 
     3297           . '<option value="18">18</option>' . "\n" 
     3298           . '<option value="19">19</option>' . "\n" 
     3299           . '<option value="20">20</option>' . "\n" 
     3300           . '<option value="21">21</option>' . "\n" 
     3301           . '<option value="22">22</option>' . "\n" 
     3302           . '<option value="23">23</option>' . "\n" 
     3303           . '<option value="24">24</option>' . "\n" 
     3304           . '<option value="25">25</option>' . "\n" 
     3305           . '<option value="26">26</option>' . "\n" 
     3306           . '<option value="27">27</option>' . "\n" 
     3307           . '<option value="28">28</option>' . "\n" 
     3308           . '<option value="29">29</option>' . "\n" 
     3309           . '<option value="30">30</option>' . "\n" 
     3310           . '<option value="31">31</option>' . "\n" 
     3311           . '</select>' . "\n" 
     3312           . ' &mdash; <select name="Person[birth(4i)]">' . "\n" 
     3313           . '<option value="00">00</option>' . "\n" 
     3314           . '<option value="01">01</option>' . "\n" 
     3315           . '<option value="02">02</option>' . "\n" 
     3316           . '<option value="03">03</option>' . "\n" 
     3317           . '<option value="04">04</option>' . "\n" 
     3318           . '<option value="05">05</option>' . "\n" 
     3319           . '<option value="06">06</option>' . "\n" 
     3320           . '<option value="07">07</option>' . "\n" 
     3321           . '<option value="08">08</option>' . "\n" 
     3322           . '<option value="09">09</option>' . "\n" 
     3323           . '<option value="10">10</option>' . "\n" 
     3324           . '<option value="11"  selected="selected">11</option>' . "\n" 
     3325           . '<option value="12">12</option>' . "\n" 
     3326           . '<option value="13">13</option>' . "\n" 
     3327           . '<option value="14">14</option>' . "\n" 
     3328           . '<option value="15">15</option>' . "\n" 
     3329           . '<option value="16">16</option>' . "\n" 
     3330           . '<option value="17">17</option>' . "\n" 
     3331           . '<option value="18">18</option>' . "\n" 
     3332           . '<option value="19">19</option>' . "\n" 
     3333           . '<option value="20">20</option>' . "\n" 
     3334           . '<option value="21">21</option>' . "\n" 
     3335           . '<option value="22">22</option>' . "\n" 
     3336           . '<option value="23">23</option>' . "\n" 
     3337           . '</select>' . "\n" 
     3338           . ' : <select name="Person[birth(5i)]">' . "\n" 
     3339           . '<option value="00">00</option>' . "\n" 
     3340           . '<option value="01">01</option>' . "\n" 
     3341           . '<option value="02">02</option>' . "\n" 
     3342           . '<option value="03">03</option>' . "\n" 
     3343           . '<option value="04">04</option>' . "\n" 
     3344           . '<option value="05">05</option>' . "\n" 
     3345           . '<option value="06">06</option>' . "\n" 
     3346           . '<option value="07">07</option>' . "\n" 
     3347           . '<option value="08">08</option>' . "\n" 
     3348           . '<option value="09">09</option>' . "\n" 
     3349           . '<option value="10">10</option>' . "\n" 
     3350           . '<option value="11">11</option>' . "\n" 
     3351           . '<option value="12">12</option>' . "\n" 
     3352           . '<option value="13">13</option>' . "\n" 
     3353           . '<option value="14">14</option>' . "\n" 
     3354           . '<option value="15">15</option>' . "\n" 
     3355           . '<option value="16">16</option>' . "\n" 
     3356           . '<option value="17">17</option>' . "\n" 
     3357           . '<option value="18">18</option>' . "\n" 
     3358           . '<option value="19">19</option>' . "\n" 
     3359           . '<option value="20">20</option>' . "\n" 
     3360           . '<option value="21">21</option>' . "\n" 
     3361           . '<option value="22">22</option>' . "\n" 
     3362           . '<option value="23">23</option>' . "\n" 
     3363           . '<option value="24">24</option>' . "\n" 
     3364           . '<option value="25">25</option>' . "\n" 
     3365           . '<option value="26">26</option>' . "\n" 
     3366           . '<option value="27">27</option>' . "\n" 
     3367           . '<option value="28">28</option>' . "\n" 
     3368           . '<option value="29">29</option>' . "\n" 
     3369           . '<option value="30"  selected="selected">30</option>' . "\n" 
     3370           . '<option value="31">31</option>' . "\n" 
     3371           . '<option value="32">32</option>' . "\n" 
     3372           . '<option value="33">33</option>' . "\n" 
     3373           . '<option value="34">34</option>' . "\n" 
     3374           . '<option value="35">35</option>' . "\n" 
     3375           . '<option value="36">36</option>' . "\n" 
     3376           . '<option value="37">37</option>' . "\n" 
     3377           . '<option value="38">38</option>' . "\n" 
     3378           . '<option value="39">39</option>' . "\n" 
     3379           . '<option value="40">40</option>' . "\n" 
     3380           . '<option value="41">41</option>' . "\n" 
     3381           . '<option value="42">42</option>' . "\n" 
     3382           . '<option value="43">43</option>' . "\n" 
     3383           . '<option value="44">44</option>' . "\n" 
     3384           . '<option value="45">45</option>' . "\n" 
     3385           . '<option value="46">46</option>' . "\n" 
     3386           . '<option value="47">47</option>' . "\n" 
     3387           . '<option value="48">48</option>' . "\n" 
     3388           . '<option value="49">49</option>' . "\n" 
     3389           . '<option value="50">50</option>' . "\n" 
     3390           . '<option value="51">51</option>' . "\n" 
     3391           . '<option value="52">52</option>' . "\n" 
     3392           . '<option value="53">53</option>' . "\n" 
     3393           . '<option value="54">54</option>' . "\n" 
     3394           . '<option value="55">55</option>' . "\n" 
     3395           . '<option value="56">56</option>' . "\n" 
     3396           . '<option value="57">57</option>' . "\n" 
     3397           . '<option value="58">58</option>' . "\n" 
     3398           . '<option value="59">59</option>' . "\n" 
     3399           . '</select>' . "\n", 
     3400           $dh->to_datetime_select_tag()); 
     3401 
     3402        //  Data from $_REQUEST should override ActiveRecord 
     3403        //  Use default format 
     3404        $_REQUEST['Person']['birth(1i)'] = '2000'; 
     3405        $_REQUEST['Person']['birth(2i)'] = '09'; 
     3406        $_REQUEST['Person']['birth(3i)'] = '17'; 
     3407        $_REQUEST['Person']['birth(4i)'] = '09'; 
     3408        $_REQUEST['Person']['birth(5i)'] = '42'; 
     3409        $_REQUEST['Person']['birth(6i)'] = '53'; 
     3410        $this->assertEquals('<select name="Person[birth(1i)]">' . "\n" 
     3411           . '<option value="1995">1995</option>' . "\n" 
     3412           . '<option value="1996">1996</option>' . "\n" 
     3413           . '<option value="1997">1997</option>' . "\n" 
     3414           . '<option value="1998">1998</option>' . "\n" 
     3415           . '<option value="1999">1999</option>' . "\n" 
     3416           . '<option value="2000"  selected="selected">2000</option>' . "\n" 
     3417           . '<option value="2001">2001</option>' . "\n" 
     3418           . '<option value="2002">2002</option>' . "\n" 
     3419           . '<option value="2003">2003</option>' . "\n" 
     3420           . '<option value="2004">2004</option>' . "\n" 
     3421           . '<option value="2005">2005</option>' . "\n" 
     3422           . '</select>' . "\n" 
     3423           . '<select name="Person[birth(2i)]">' . "\n" 
     3424           . '<option value="01">January</option>' . "\n" 
     3425           . '<option value="02">February</option>' . "\n" 
     3426           . '<option value="03">March</option>' . "\n" 
     3427           . '<option value="04">April</option>' . "\n" 
     3428           . '<option value="05">May</option>' . "\n" 
     3429           . '<option value="06">June</option>' . "\n" 
     3430           . '<option value="07">July</option>' . "\n" 
     3431           . '<option value="08">August</option>' . "\n" 
     3432           . '<option value="09" selected="selected">September</option>' . "\n" 
     3433           . '<option value="10">October</option>' . "\n" 
     3434           . '<option value="11">November</option>' . "\n" 
     3435           . '<option value="12">December</option>' . "\n" 
     3436           . '</select>' . "\n" 
     3437           . '<select name="Person[birth(3i)]">' . "\n" 
     3438           . '<option value="01">01</option>' . "\n" 
     3439           . '<option value="02">02</option>' . "\n" 
     3440           . '<option value="03">03</option>' . "\n" 
     3441           . '<option value="04">04</option>' . "\n" 
     3442           . '<option value="05">05</option>' . "\n" 
     3443           . '<option value="06">06</option>' . "\n" 
     3444           . '<option value="07">07</option>' . "\n" 
     3445           . '<option value="08">08</option>' . "\n" 
     3446           . '<option value="09">09</option>' . "\n" 
     3447           . '<option value="10">10</option>' . "\n" 
     3448           . '<option value="11">11</option>' . "\n" 
     3449           . '<option value="12">12</option>' . "\n" 
     3450           . '<option value="13">13</option>' . "\n" 
     3451           . '<option value="14">14</option>' . "\n" 
     3452           . '<option value="15">15</option>' . "\n" 
     3453           . '<option value="16">16</option>' . "\n" 
     3454           . '<option value="17"  selected="selected">17</option>' . "\n" 
     3455           . '<option value="18">18</option>' . "\n" 
     3456           . '<option value="19">19</option>' . "\n" 
     3457           . '<option value="20">20</option>' . "\n" 
     3458           . '<option value="21">21</option>' . "\n" 
     3459           . '<option value="22">22</option>' . "\n" 
     3460           . '<option value="23">23</option>' . "\n" 
     3461           . '<option value="24">24</option>' . "\n" 
     3462           . '<option value="25">25</option>' . "\n" 
     3463           . '<option value="26">26</option>' . "\n" 
     3464           . '<option value="27">27</option>' . "\n" 
     3465           . '<option value="28">28</option>' . "\n" 
     3466           . '<option value="29">29</option>' . "\n" 
     3467           . '<option value="30">30</option>' . "\n" 
     3468           . '<option value="31">31</option>' . "\n" 
     3469           . '</select>' . "\n" 
     3470           . ' &mdash; <select name="Person[birth(4i)]">' . "\n" 
     3471           . '<option value="00">00</option>' . "\n" 
     3472           . '<option value="01">01</option>' . "\n" 
     3473           . '<option value="02">02</option>' . "\n" 
     3474           . '<option value="03">03</option>' . "\n" 
     3475           . '<option value="04">04</option>' . "\n" 
     3476           . '<option value="05">05</option>' . "\n" 
     3477           . '<option value="06">06</option>' . "\n" 
     3478           . '<option value="07">07</option>' . "\n" 
     3479           . '<option value="08">08</option>' . "\n" 
     3480           . '<option value="09"  selected="selected">09</option>' . "\n" 
     3481           . '<option value="10">10</option>' . "\n" 
     3482           . '<option value="11">11</option>' . "\n" 
     3483           . '<option value="12">12</option>' . "\n" 
     3484           . '<option value="13">13</option>' . "\n" 
     3485           . '<option value="14">14</option>' . "\n" 
     3486           . '<option value="15">15</option>' . "\n" 
     3487           . '<option value="16">16</option>' . "\n" 
     3488           . '<option value="17">17</option>' . "\n" 
     3489           . '<option value="18">18</option>' . "\n" 
     3490           . '<option value="19">19</option>' . "\n" 
     3491           . '<option value="20">20</option>' . "\n" 
     3492           . '<option value="21">21</option>' . "\n" 
     3493           . '<option value="22">22</option>' . "\n" 
     3494           . '<option value="23">23</option>' . "\n" 
     3495           . '</select>' . "\n" 
     3496           . ' : <select name="Person[birth(5i)]">' . "\n" 
     3497           . '<option value="00">00</option>' . "\n" 
     3498           . '<option value="01">01</option>' . "\n" 
     3499           . '<option value="02">02</option>' . "\n" 
     3500           . '<option value="03">03</option>' . "\n" 
     3501           . '<option value="04">04</option>' . "\n" 
     3502           . '<option value="05">05</option>' . "\n" 
     3503           . '<option value="06">06</option>' . "\n" 
     3504           . '<option value="07">07</option>' . "\n" 
     3505           . '<option value="08">08</option>' . "\n" 
     3506           . '<option value="09">09</option>' . "\n" 
     3507           . '<option value="10">10</option>' . "\n" 
     3508           . '<option value="11">11</option>' . "\n" 
     3509           . '<option value="12">12</option>' . "\n" 
     3510           . '<option value="13">13</option>' . "\n" 
     3511           . '<option value="14">14</option>' . "\n" 
     3512           . '<option value="15">15</option>' . "\n" 
     3513           . '<option value="16">16</option>' . "\n" 
     3514           . '<option value="17">17</option>' . "\n" 
     3515           . '<option value="18">18</option>' . "\n" 
     3516           . '<option value="19">19</option>' . "\n" 
     3517           . '<option value="20">20</option>' . "\n" 
     3518           . '<option value="21">21</option>' . "\n" 
     3519           . '<option value="22">22</option>' . "\n" 
     3520           . '<option value="23">23</option>' . "\n" 
     3521           . '<option value="24">24</option>' . "\n" 
     3522           . '<option value="25">25</option>' . "\n" 
     3523           . '<option value="26">26</option>' . "\n" 
     3524           . '<option value="27">27</option>' . "\n" 
     3525           . '<option value="28">28</option>' . "\n" 
     3526           . '<option value="29">29</option>' . "\n" 
     3527           . '<option value="30">30</option>' . "\n" 
     3528           . '<option value="31">31</option>' . "\n" 
     3529           . '<option value="32">32</option>' . "\n" 
     3530           . '<option value="33">33</option>' . "\n" 
     3531           . '<option value="34">34</option>' . "\n" 
     3532           . '<option value="35">35</option>' . "\n" 
     3533           . '<option value="36">36</option>' . "\n" 
     3534           . '<option value="37">37</option>' . "\n" 
     3535           . '<option value="38">38</option>' . "\n" 
     3536           . '<option value="39">39</option>' . "\n" 
     3537           . '<option value="40">40</option>' . "\n" 
     3538           . '<option value="41">41</option>' . "\n" 
     3539           . '<option value="42"  selected="selected">42</option>' . "\n" 
     3540           . '<option value="43">43</option>' . "\n" 
     3541           . '<option value="44">44</option>' . "\n" 
     3542           . '<option value="45">45</option>' . "\n" 
     3543           . '<option value="46">46</option>' . "\n" 
     3544           . '<option value="47">47</option>' . "\n" 
     3545           . '<option value="48">48</option>' . "\n" 
     3546           . '<option value="49">49</option>' . "\n" 
     3547           . '<option value="50">50</option>' . "\n" 
     3548           . '<option value="51">51</option>' . "\n" 
     3549           . '<option value="52">52</option>' . "\n" 
     3550           . '<option value="53">53</option>' . "\n" 
     3551           . '<option value="54">54</option>' . "\n" 
     3552           . '<option value="55">55</option>' . "\n" 
     3553           . '<option value="56">56</option>' . "\n" 
     3554           . '<option value="57">57</option>' . "\n" 
     3555           . '<option value="58">58</option>' . "\n" 
     3556           . '<option value="59">59</option>' . "\n" 
     3557           . '</select>' . "\n", 
     3558           $dh->to_datetime_select_tag()); 
     3559 
     3560        //  As above but enable seconds 
     3561        $this->assertEquals('<select name="Person[birth(1i)]">' . "\n" 
     3562           . '<option value="1995">1995</option>' . "\n" 
     3563           . '<option value="1996">1996</option>' . "\n" 
     3564           . '<option value="1997">1997</option>' . "\n" 
     3565           . '<option value="1998">1998</option>' . "\n" 
     3566           . '<option value="1999">1999</option>' . "\n" 
     3567           . '<option value="2000"  selected="selected">2000</option>' . "\n" 
     3568           . '<option value="2001">2001</option>' . "\n" 
     3569           . '<option value="2002">2002</option>' . "\n" 
     3570           . '<option value="2003">2003</option>' . "\n" 
     3571           . '<option value="2004">2004</option>' . "\n" 
     3572           . '<option value="2005">2005</option>' . "\n" 
     3573           . '</select>' . "\n" 
     3574           . '<select name="Person[birth(2i)]">' . "\n" 
     3575           . '<option value="01">January</option>' . "\n" 
     3576           . '<option value="02">February</option>' . "\n" 
     3577           . '<option value="03">March</option>' . "\n" 
     3578           . '<option value="04">April</option>' . "\n" 
     3579           . '<option value="05">May</option>' . "\n" 
     3580           . '<option value="06">June</option>' . "\n" 
     3581           . '<option value="07">July</option>' . "\n" 
     3582           . '<option value="08">August</option>' . "\n" 
     3583           . '<option value="09" selected="selected">September</option>' . "\n" 
     3584           . '<option value="10">October</option>' . "\n" 
     3585           . '<option value="11">November</option>' . "\n" 
     3586           . '<option value="12">December</option>' . "\n" 
     3587           . '</select>' . "\n" 
     3588           . '<select name="Person[birth(3i)]">' . "\n" 
     3589           . '<option value="01">01</option>' . "\n" 
     3590           . '<option value="02">02</option>' . "\n" 
     3591           . '<option value="03">03</option>' . "\n" 
     3592           . '<option value="04">04</option>' . "\n" 
     3593           . '<option value="05">05</option>' . "\n" 
     3594           . '<option value="06">06</option>' . "\n" 
     3595           . '<option value="07">07</option>' . "\n" 
     3596           . '<option value="08">08</option>' . "\n" 
     3597           . '<option value="09">09</option>' . "\n" 
     3598           . '<option value="10">10</option>' . "\n" 
     3599           . '<option value="11">11</option>' . "\n" 
     3600           . '<option value="12">12</option>' . "\n" 
     3601           . '<option value="13">13</option>' . "\n" 
     3602           . '<option value="14">14</option>' . "\n" 
     3603           . '<option value="15">15</option>' . "\n" 
     3604           . '<option value="16">16</option>' . "\n" 
     3605           . '<option value="17"  selected="selected">17</option>' . "\n" 
     3606           . '<option value="18">18</option>' . "\n" 
     3607           . '<option value="19">19</option>' . "\n" 
     3608           . '<option value="20">20</option>' . "\n" 
     3609           . '<option value="21">21</option>' . "\n" 
     3610           . '<option value="22">22</option>' . "\n" 
     3611           . '<option value="23">23</option>' . "\n" 
     3612           . '<option value="24">24</option>' . "\n" 
     3613           . '<option value="25">25</option>' . "\n" 
     3614           . '<option value="26">26</option>' . "\n" 
     3615           . '<option value="27">27</option>' . "\n" 
     3616           . '<option value="28">28</option>' . "\n" 
     3617           . '<option value="29">29</option>' . "\n" 
     3618           . '<option value="30">30</option>' . "\n" 
     3619           . '<option value="31">31</option>' . "\n" 
     3620           . '</select>' . "\n" 
     3621           . ' &mdash; <select name="Person[birth(4i)]">' . "\n" 
     3622           . '<option value="00">00</option>' . "\n" 
     3623           . '<option value="01">01</option>' . "\n" 
     3624           . '<option value="02">02</option>' . "\n" 
     3625           . '<option value="03">03</option>' . "\n" 
     3626           . '<option value="04">04</option>' . "\n" 
     3627           . '<option value="05">05</option>' . "\n" 
     3628           . '<option value="06">06</option>' . "\n" 
     3629           . '<option value="07">07</option>' . "\n" 
     3630           . '<option value="08">08</option>' . "\n" 
     3631           . '<option value="09"  selected="selected">09</option>' . "\n" 
     3632           . '<option value="10">10</option>' . "\n" 
     3633           . '<option value="11">11</option>' . "\n" 
     3634           . '<option value="12">12</option>' . "\n" 
     3635           . '<option value="13">13</option>' . "\n" 
     3636           . '<option value="14">14</option>' . "\n" 
     3637           . '<option value="15">15</option>' . "\n" 
     3638           . '<option value="16">16</option>' . "\n" 
     3639           . '<option value="17">17</option>' . "\n" 
     3640           . '<option value="18">18</option>' . "\n" 
     3641           . '<option value="19">19</option>' . "\n" 
     3642           . '<option value="20">20</option>' . "\n" 
     3643           . '<option value="21">21</option>' . "\n" 
     3644           . '<option value="22">22</option>' . "\n" 
     3645           . '<option value="23">23</option>' . "\n" 
     3646           . '</select>' . "\n" 
     3647           . ' : <select name="Person[birth(5i)]">' . "\n" 
     3648           . '<option value="00">00</option>' . "\n" 
     3649           . '<option value="01">01</option>' . "\n" 
     3650           . '<option value="02">02</option>' . "\n" 
     3651           . '<option value="03">03</option>' . "\n" 
     3652           . '<option value="04">04</option>' . "\n" 
     3653           . '<option value="05">05</option>' . "\n" 
     3654           . '<option value="06">06</option>' . "\n" 
     3655           . '<option value="07">07</option>' . "\n" 
     3656           . '<option value="08">08</option>' . "\n" 
     3657           . '<option value="09">09</option>' . "\n" 
     3658           . '<option value="10">10</option>' . "\n" 
     3659           . '<option value="11">11</option>' . "\n" 
     3660           . '<option value="12">12</option>' . "\n" 
     3661           . '<option value="13">13</option>' . "\n" 
     3662           . '<option value="14">14</option>' . "\n" 
     3663           . '<option value="15">15</option>' . "\n" 
     3664           . '<option value="16">16</option>' . "\n" 
     3665           . '<option value="17">17</option>' . "\n" 
     3666           . '<option value="18">18</option>' . "\n" 
     3667           . '<option value="19">19</option>' . "\n" 
     3668           . '<option value="20">20</option>' . "\n" 
     3669           . '<option value="21">21</option>' . "\n" 
     3670           . '<option value="22">22</option>' . "\n" 
     3671           . '<option value="23">23</option>' . "\n" 
     3672           . '<option value="24">24</option>' . "\n" 
     3673           . '<option value="25">25</option>' . "\n" 
     3674           . '<option value="26">26</option>' . "\n" 
     3675           . '<option value="27">27</option>' . "\n" 
     3676           . '<option value="28">28</option>' . "\n" 
     3677           . '<option value="29">29</option>' . "\n" 
     3678           . '<option value="30">30</option>' . "\n" 
     3679           . '<option value="31">31</option>' . "\n" 
     3680           . '<option value="32">32</option>' . "\n" 
     3681           . '<option value="33">33</option>' . "\n" 
     3682           . '<option value="34">34</option>' . "\n" 
     3683           . '<option value="35">35</option>' . "\n" 
     3684           . '<option value="36">36</option>' . "\n" 
     3685           . '<option value="37">37</option>' . "\n" 
     3686           . '<option value="38">38</option>' . "\n" 
     3687           . '<option value="39">39</option>' . "\n" 
     3688           . '<option value="40">40</option>' . "\n" 
     3689           . '<option value="41">41</option>' . "\n" 
     3690           . '<option value="42"  selected="selected">42</option>' . "\n" 
     3691           . '<option value="43">43</option>' . "\n" 
     3692           . '<option value="44">44</option>' . "\n" 
     3693           . '<option value="45">45</option>' . "\n" 
     3694           . '<option value="46">46</option>' . "\n" 
     3695           . '<option value="47">47</option>' . "\n" 
     3696           . '<option value="48">48</option>' . "\n" 
     3697           . '<option value="49">49</option>' . "\n" 
     3698           . '<option value="50">50</option>' . "\n" 
     3699           . '<option value="51">51</option>' . "\n" 
     3700           . '<option value="52">52</option>' . "\n" 
     3701           . '<option value="53">53</option>' . "\n" 
     3702           . '<option value="54">54</option>' . "\n" 
     3703           . '<option value="55">55</option>' . "\n" 
     3704           . '<option value="56">56</option>' . "\n" 
     3705           . '<option value="57">57</option>' . "\n" 
     3706           . '<option value="58">58</option>' . "\n" 
     3707           . '<option value="59">59</option>' . "\n" 
     3708           . '</select>' . "\n" 
     3709           . ' : <select name="Person[birth(6i)]">' . "\n" 
     3710           . '<option value="00">00</option>' . "\n" 
     3711           . '<option value="01">01</option>' . "\n" 
     3712           . '<option value="02">02</option>' . "\n" 
     3713           . '<option value="03">03</option>' . "\n" 
     3714           . '<option value="04">04</option>' . "\n" 
     3715           . '<option value="05">05</option>' . "\n" 
     3716           . '<option value="06">06</option>' . "\n" 
     3717           . '<option value="07">07</option>' . "\n" 
     3718           . '<option value="08">08</option>' . "\n" 
     3719           . '<option value="09">09</option>' . "\n" 
     3720           . '<option value="10">10</option>' . "\n" 
     3721           . '<option value="11">11</option>' . "\n" 
     3722           . '<option value="12">12</option>' . "\n" 
     3723           . '<option value="13">13</option>' . "\n" 
     3724           . '<option value="14">14</option>' . "\n" 
     3725           . '<option value="15">15</option>' . "\n" 
     3726           . '<option value="16">16</option>' . "\n" 
     3727           . '<option value="17">17</option>' . "\n" 
     3728           . '<option value="18">18</option>' . "\n" 
     3729           . '<option value="19">19</option>' . "\n" 
     3730           . '<option value="20">20</option>' . "\n" 
     3731           . '<option value="21">21</option>' . "\n" 
     3732           . '<option value="22">22</option>' . "\n" 
     3733           . '<option value="23">23</option>' . "\n" 
     3734           . '<option value="24">24</option>' . "\n" 
     3735           . '<option value="25">25</option>' . "\n" 
     3736           . '<option value="26">26</option>' . "\n" 
     3737           . '<option value="27">27</option>' . "\n" 
     3738           . '<option value="28">28</option>' . "\n" 
     3739           . '<option value="29">29</option>' . "\n" 
     3740           . '<option value="30">30</option>' . "\n" 
     3741           . '<option value="31">31</option>' . "\n" 
     3742           . '<option value="32">32</option>' . "\n" 
     3743           . '<option value="33">33</option>' . "\n" 
     3744           . '<option value="34">34</option>' . "\n" 
     3745           . '<option value="35">35</option>' . "\n" 
     3746           . '<option value="36">36</option>' . "\n" 
     3747           . '<option value="37">37</option>' . "\n" 
     3748           . '<option value="38">38</option>' . "\n" 
     3749           . '<option value="39">39</option>' . "\n" 
     3750           . '<option value="40">40</option>' . "\n" 
     3751           . '<option value="41">41</option>' . "\n" 
     3752           . '<option value="42">42</option>' . "\n" 
     3753           . '<option value="43">43</option>' . "\n" 
     3754           . '<option value="44">44</option>' . "\n" 
     3755           . '<option value="45">45</option>' . "\n" 
     3756           . '<option value="46">46</option>' . "\n" 
     3757           . '<option value="47">47</option>' . "\n" 
     3758           . '<option value="48">48</option>' . "\n" 
     3759           . '<option value="49">49</option>' . "\n" 
     3760           . '<option value="50">50</option>' . "\n" 
     3761           . '<option value="51">51</option>' . "\n" 
     3762           . '<option value="52">52</option>' . "\n" 
     3763           . '<option value="53"  selected="selected">53</option>' . "\n" 
     3764           . '<option value="54">54</option>' . "\n" 
     3765           . '<option value="55">55</option>' . "\n" 
     3766           . '<option value="56">56</option>' . "\n" 
     3767           . '<option value="57">57</option>' . "\n" 
     3768           . '<option value="58">58</option>' . "\n" 
     3769           . '<option value="59">59</option>' . "\n" 
     3770           . '</select>' . "\n", 
     3771           $dh->to_datetime_select_tag(array('discard_second' => false))); 
    3193772    } 
    3203773 
    3213774    /** 
    322      *  @todo Implement testTo_expiration_date_select_tag_method() 
     3775     *  Test to_expiration_date_select_tag() method 
     3776     * 
     3777     *  Test the {@link DateHelper::to_expiration_date_select_tag()} method 
    3233778     */ 
    3243779    public function testTo_expiration_date_select_tag_method() { 
    325         // Remove the following line when you implement this test. 
    326         throw new PHPUnit2_Framework_IncompleteTestError; 
     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()); 
    3273793    } 
    3283794 
    3293795    /** 
    330      *  @todo Implement testTo_expiration_date_select_tag_function() 
     3796     *  Test expiration_date_select() function 
     3797     * 
     3798     *  Test the {@link expiration_date_select()} function in procedural 
     3799     *  file {@link date_helper.php} 
    3313800     */ 
    332     public function testTo_expiration_date_select_tag_function() { 
    333         // Remove the following line when you implement this test. 
    334         throw new PHPUnit2_Framework_IncompleteTestError; 
     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')); 
    3353814    } 
    3363815 
  • trunk/trax/test/FormOptionsHelperTest.php

    r192 r198  
    6767 
    6868    /** 
    69      *  Empty test to prevent failure 
    70      *  @todo Write test for the FormOptionsHelper class 
    71      */ 
    72     public function testEmpty() { 
     69     *  @todo Write test for add_options() 
     70     */ 
     71    public function testAdd_options() { 
     72        // Remove the following line when you implement this test. 
     73        throw new PHPUnit2_Framework_IncompleteTestError; 
     74    } 
     75 
     76    /** 
     77     *  @todo Write test for country_options_for_select() 
     78     */ 
     79    public function testCountry_options_for_select() { 
     80 
     81        //  Spot check a few countries 
     82        $fo = new FormOptionsHelper; 
     83        $countries = $fo->country_options_for_select(); 
     84        $this->assertContains('Bangladesh', $countries); 
     85        $this->assertContains('Canada', $countries); 
     86        $this->assertContains('Ecuador', $countries); 
     87        $this->assertContains('France', $countries); 
     88 
     89        //  Select a country 
     90        $fo = new FormOptionsHelper; 
     91        $countries = $fo->country_options_for_select(17); 
     92        $this->assertContains('value="17" selected="selected"', $countries); 
     93 
     94        // Remove the following line when you implement this test. 
     95        throw new PHPUnit2_Framework_IncompleteTestError; 
     96    } 
     97 
     98    /** 
     99     *  Test the options_for_select() method 
     100     */ 
     101    public function testOptions_for_select_method() { 
     102 
     103        //  Test choices with none selected 
     104        $fo = new FormOptionsHelper; 
     105        $this->assertEquals('<option value="0">foo</option>' . "\n" 
     106                            . '<option value="1">bar</option>', 
     107                            $fo->options_for_select(array('foo','bar'))); 
     108 
     109        //  Test choices with one selected 
     110        $fo = new FormOptionsHelper; 
     111        $this->assertEquals('<option value="0">mumble</option>' . "\n" 
     112                  . '<option value="1" selected="selected">grumble</option>', 
     113                  $fo->options_for_select(array('mumble','grumble'),1)); 
     114    } 
     115 
     116    /** 
     117     *  @todo Write test for options_from_collection_for_select() 
     118     */ 
     119    public function testOptions_from_collection_for_select() { 
     120        // Remove the following line when you implement this test. 
     121        throw new PHPUnit2_Framework_IncompleteTestError; 
     122    } 
     123 
     124    /** 
     125     *  @todo Write test for to_collection_select_tag() 
     126     */ 
     127    public function testTo_collection_select_tag() { 
     128        // Remove the following line when you implement this test. 
     129        throw new PHPUnit2_Framework_IncompleteTestError; 
     130    } 
     131 
     132    /** 
     133     *  @todo Write test for to_country_select_tag() 
     134     */ 
     135    public function testTo_country_select_tag() { 
     136        // Remove the following line when you implement this test. 
     137        throw new PHPUnit2_Framework_IncompleteTestError; 
     138    } 
     139 
     140    /** 
     141     *  @todo Write test for to_select_tag() 
     142     */ 
     143    public function testTo_select_tag() { 
     144        // Remove the following line when you implement this test. 
     145        throw new PHPUnit2_Framework_IncompleteTestError; 
     146    } 
     147 
     148    /** 
     149     *  @todo Write test for collection_select() 
     150     */ 
     151    public function testCollection_select() { 
     152        echo collection_select(null,null,null,null,null); 
     153        // Remove the following line when you implement this test. 
     154        throw new PHPUnit2_Framework_IncompleteTestError; 
     155    } 
     156 
     157    /** 
     158     *  @todo Write test for country_select() 
     159     */ 
     160    public function testCountry_select() { 
     161        // Remove the following line when you implement this test. 
     162        throw new PHPUnit2_Framework_IncompleteTestError; 
     163    } 
     164 
     165    /** 
     166     *  Test options_for_select() function 
     167     */ 
     168    public function testOptions_for_select_function() { 
     169 
     170        //  Test choices with none selected 
     171        $this->assertEquals('<option value="0">foo</option>' . "\n" 
     172                            . '<option value="1">bar</option>', 
     173                            options_for_select(array('foo','bar'))); 
     174 
     175        //  Test choices with one selected by key 
     176        $this->assertEquals('<option value="M">mumble</option>' . "\n" 
     177                  . '<option value="G" selected="selected">grumble</option>', 
     178                  options_for_select(array('M' => 'mumble', 
     179                                           'G' => 'grumble'),'G')); 
     180    } 
     181 
     182    /** 
     183     *  @todo Write test for select() 
     184     */ 
     185    public function testSelect() { 
     186        // Remove the following line when you implement this test. 
     187        throw new PHPUnit2_Framework_IncompleteTestError; 
    73188    } 
    74189} 
  • trunk/trax/test/TraxGeneratorTest.php

    r195 r198  
    232232        $tg->generate_controller('mumble'); 
    233233        $output = ob_get_clean(); 
    234         $this->assertContains('created', $output); 
     234        $this->assertContains('create', $output); 
    235235        $this->assertTrue(is_file(TRAX_ROOT 
    236236                                  . 'controllers/mumble_controller.php')); 
     
    258258        $tg->generate_controller('store', 'manager'); 
    259259        $output = ob_get_clean(); 
    260         $this->assertContains('created', $output); 
     260        $this->assertContains('create', $output); 
    261261        $this->assertTrue(is_file(TRAX_ROOT 
    262262                                  . 'controllers/store_controller.php')); 
     
    279279        $tg->generate_controller('account', array('customer','teller')); 
    280280        $output = ob_get_clean(); 
    281         $this->assertContains('created', $output); 
     281        $this->assertContains('create', $output); 
    282282        $this->assertTrue(is_file(TRAX_ROOT 
    283283                                  . 'controllers/account_controller.php')); 
     
    305305        $tg->generate_controller('forum/admin'); 
    306306        $output = ob_get_clean(); 
    307         $this->assertContains('created', $output); 
     307        $this->assertContains('create', $output); 
    308308        $this->assertTrue(is_file(TRAX_ROOT 
    309309                                . 'controllers/forum/admin_controller.php')); 
     
    327327        $tg->generate_model('CreditCard'); 
    328328        $output = ob_get_clean(); 
    329         $this->assertContains('created', $output); 
     329        $this->assertContains('create', $output); 
    330330        $this->assertTrue(is_file(TRAX_ROOT . 'models/credit_card.php')); 
    331331        $model = file_get_contents(TRAX_ROOT . 'models/credit_card.php'); 
     
    338338        $tg->generate_model('soap_opera'); 
    339339        $output = ob_get_clean(); 
    340         $this->assertContains('created', $output); 
     340        $this->assertContains('create', $output); 
    341341        $this->assertTrue(is_file(TRAX_ROOT . 'models/soap_opera.php')); 
    342342        $model = file_get_contents(TRAX_ROOT . 'models/soap_opera.php'); 
     
    355355        $tg->generate_scaffold('PersonName', 'membership'); 
    356356        $output = ob_get_clean(); 
    357         $this->assertContains('created', $output); 
     357        $this->assertContains('create', $output); 
    358358        $this->assertNotContains('Error:', $output); 
    359359        $this->assertNotContains('Notice:', $output); 
     
    445445        $tg->generate_scaffold('PersonName',null); 
    446446        $output = ob_get_clean(); 
    447         $this->assertContains('created', $output); 
     447        $this->assertContains('create', $output); 
    448448        $this->assertNotContains('Error:', $output); 
    449449        $this->assertNotContains('Notice:', $output); 
     
    538538                               array('join', 'renew')); 
    539539        $output = ob_get_clean(); 
    540         $this->assertContains('created', $output); 
     540        $this->assertContains('create', $output); 
    541541        $this->assertNotContains('Error:', $output); 
    542542        $this->assertNotContains('Notice:', $output); 
     
    642642        $tg->generate_scaffold('PersonName', 'admin/membership'); 
    643643        $output = ob_get_clean(); 
    644         $this->assertContains('created', $output); 
     644        $this->assertContains('create', $output); 
    645645        $this->assertNotContains('Error:', $output); 
    646646        $this->assertNotContains('Notice:', $output); 
     
    763763        $tg->run(); 
    764764        $output = ob_get_clean(); 
    765         $this->assertContains('created', $output); 
     765        $this->assertContains('create', $output); 
    766766        $this->assertTrue(is_file(TRAX_ROOT . 'models/credit_card.php')); 
    767767 
     
    773773        $tg->run(); 
    774774        $output = ob_get_clean(); 
    775         $this->assertContains('created', $output); 
     775        $this->assertContains('create', $output); 
    776776        $this->assertTrue(is_file(TRAX_ROOT 
    777777                                  . 'controllers/mumble_controller.php')); 
     
    789789        $tg->run(); 
    790790        $output = ob_get_clean(); 
    791         $this->assertContains('created', $output); 
     791        $this->assertContains('create', $output); 
    792792        $this->assertNotContains('Error:', $output); 
    793793        $this->assertNotContains('Notice:', $output); 
  • trunk/trax/test/mockDB/DB.php

    r192 r198  
    654654     */ 
    655655    protected static $database = 
     656        //  Person names table 
    656657        array('person_names' => 
     658              //  Description 
    657659              array('info' => 
    658660                    array(array('table' => 'person_names', 
     
    689691                    'data' => 
    690692                    array() 
    691                     ) 
     693                    ), 
     694 
     695              //  Data types table 
     696              'data_types' => 
     697 
     698              //  Description 
     699              array('info' => 
     700                    array(array("table" => "data_types", 
     701                                "name"  => "id", 
     702                                "type"  => "int", 
     703                                "len"   => '11', 
     704                                "flags" => "not_null primary_key auto_increment"), 
     705                          array("table" => "data_types", 
     706                                "name"  => "bit_type", 
     707                                "type"  => "int", 
     708                                "len"   => '1', 
     709                                "flags" => ""), 
     710                          array("table" => "data_types", 
     711                                "name"  => "tinyint_type", 
     712                                "type"  => "int", 
     713                                "len"   =>  '4', 
     714                                "flags" =>  ""), 
     715                          array("table" =>  "data_types", 
     716                                "name"  =>  "bool_type", 
     717                                "type"  =>  "int", 
     718                                "len"   =>  '1', 
     719                                "flags" =>  ""), 
     720                          array("table" =>  "data_types", 
     721                                "name"  =>  "boolean_type", 
     722                                "type"  =>  "int", 
     723                                "len"   =>  '1', 
     724                                "flags" =>  ""), 
     725                          array("table" =>  "data_types", 
     726                                "name"  =>  "smallint_type", 
     727                                "type"  =>  "int", 
     728                                "len"   =>  '6', 
     729                                "flags" =>  ""), 
     730                          array("table" =>  "data_types", 
     731                                "name"  =>  "mediumint_type", 
     732                                "type"  =>  "int", 
     733                                "len"   =>  '9', 
     734                                "flags" =>  ""), 
     735                          array("table"   =>  "data_types", 
     736                                "name"    =>  "int_type", 
     737                                "type"    =>  "int", 
     738                                "len"     =>  '11', 
     739                                "flags"   =>  ""), 
     740                          array("table" =>  "data_types", 
     741                                "name"  =>  "integer_type", 
     742                                "type"  =>  "int", 
     743                                "len"   =>  '11', 
     744                                "flags" =>  ""), 
     745                          array("table" =>  "data_types", 
     746                                "name"  =>  "bigint_type", 
     747                                "type"  =>  "int", 
     748                                "len"   =>  '20', 
     749                                "flags" =>  ""), 
     750                          array("table" =>  "data_types", 
     751                                "name"  =>  "float_type", 
     752                                "type"  =>  "real", 
     753                                "len"   =>  '12', 
     754                                "flags" =>  ""), 
     755                          array("table" =>  "data_types", 
     756                                "name"  =>  "double_type", 
     757                                "type"  =>  "real", 
     758                                "len"   =>  '22', 
     759                                "flags" =>  ""), 
     760                          array("table" =>  "data_types", 
     761                                "name"  =>  "double_precision_type", 
     762                                "type"  =>  "real", 
     763                                "len"   =>  '22', 
     764                                "flags" =>  ""), 
     765                          array("table" =>  "data_types", 
     766                                "name"  =>  "decimal_type", 
     767                                "type"  =>  "real", 
     768                                "len"   =>  '11', 
     769                                "flags" =>  ""), 
     770                          array("table" =>  "data_types", 
     771                                "name"  =>  "dec_type", 
     772                                "type"  =>  "real", 
     773                                "len"   =>  '11', 
     774                                "flags" =>  ""), 
     775                          array("table" => "data_types", 
     776                                "name"  => "numeric_type", 
     777                                "type"  => "real", 
     778                                "len"   => '11', 
     779                                "flags" => ""), 
     780                          array("table" => "data_types", 
     781                                "name"  => "fixed_type", 
     782                                "type"  => "real", 
     783                                "len"   => '11', 
     784                                "flags" => ""), 
     785                          array("table" => "data_types", 
     786                                "name"  => "date_type", 
     787                                "type"  => "date", 
     788                                "len"   => '10', 
     789                                "flags" => "binary"), 
     790                          array("table" => "data_types", 
     791                                "name"  => "datetime_type", 
     792                                "type"  => "datetime", 
     793                                "len"   => '19', 
     794                                "flags" => "binary"), 
     795                          array("table" => "data_types", 
     796                                "name"  => "timestamp_type", 
     797                                "type"  => "timestamp", 
     798                                "len"   => '19', 
     799                                "flags" => "unsigned zerofill binary"), 
     800                          array("table" => "data_types", 
     801                                "name"  => "time_type", 
     802                                "type"  => "time", 
     803                                "len"   => '8', 
     804                                "flags" => "binary"), 
     805                          array("table" => "data_types", 
     806                                "name"  => "year_type", 
     807                                "type"  => "year", 
     808                                "len"   => '4', 
     809                                "flags" => "unsigned zerofill"), 
     810                          array("table" => "data_types", 
     811                                "name"  => "char_type", 
     812                                "type"  => "string", 
     813                                "len"   => '20', 
     814                                "flags" => ""), 
     815                          array("table" => "data_types", 
     816                                "name"  => "varchar_type", 
     817                                "type"  => "string", 
     818                                "len"   => '20', 
     819                                "flags" => ""), 
     820                          array("table" => "data_types", 
     821                                "name"  => "nchar_type", 
     822                                "type"  => "string", 
     823                                "len"   => '20', 
     824                                "flags" => ""), 
     825                          array("table" => "data_types", 
     826                                "name"  => "binary_type", 
     827                                "type"  => "string", 
     828                                "len"   => '20', 
     829                                "flags" => "binary"), 
     830                          array("table" => "data_types", 
     831                                "name"  => "varbinary_type", 
     832                                "type"  => "string", 
     833                                "len"   => '20', 
     834                                "flags" => "binary"), 
     835                          array("table" => "data_types", 
     836                                "name"  => "tinyblob_type", 
     837                                "type"  => "blob", 
     838                                "len"   => '255', 
     839                                "flags" => "blob binary"), 
     840                          array("table" => "data_types", 
     841                                "name"  => "tinytext_type", 
     842                                "type"  => "blob", 
     843                                "len"   => '255', 
     844                                "flags" => "blob"), 
     845                          array("table" => "data_types", 
     846                                "name"  => "blob_type", 
     847                                "type"  => "blob", 
     848                                "len"   => '65535', 
     849                                "flags" => "blob binary"), 
     850                          array("table" => "data_types", 
     851                                "name"  => "text_type", 
     852                                "type"  => "blob", 
     853                                "len"   => '65535', 
     854                                "flags" => "blob"), 
     855                          array("table" => "data_types", 
     856                                "name"  => "mediumblob_type", 
     857                                "type"  => "blob", 
     858                                "len"   => '16777215', 
     859                                "flags" => "blob binary"), 
     860                          array("table" => "data_types", 
     861                                "name"  => "mediumtext_type", 
     862                                "type"  => "blob", 
     863                                "len"   => '16777215', 
     864                                "flags" => "blob"), 
     865                          array("table" => "data_types", 
     866                                "name"  => "longblob_type", 
     867                                "type"  => "blob", 
     868                                "len"   => '-1', 
     869                                "flags" => "blob binary"), 
     870                          array("table" => "data_types", 
     871                                "name"  => "longtext_type", 
     872                                "type"  => "blob", 
     873                                "len"   => '-1', 
     874                                "flags" => "blob"), 
     875                          array("table" => "data_types", 
     876                                "name"  => "enum_type", 
     877                                "type"  => "string", 
     878                                "len"   => '3', 
     879                                "flags" => "enum"), 
     880                          array("table" => "data_types", 
     881                                "name"  => "set_type", 
     882                                "type"  => "string", 
     883                                "len"   => '7', 
     884                                "flags" => "set"), 
     885                          ), 
     886                    'data' => 
     887                    array() 
     888                    ), 
    692889              ); 
    693890