Source for file DateHelperTest.php
Documentation is available at DateHelperTest.php
* File for the DateHelperTest class
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) Walter O. Haas 2006
* @version $Id: DateHelperTest.php 198 2006-04-20 16:20:30Z haas $
* @author Walt Haas <haas@xmission.com>
echo "testing DateHelper\n";
require_once 'testenv.php';
// Call DateHelperTest::main() if this source file is executed directly.
if (!defined("PHPUnit2_MAIN_METHOD")) {
define("PHPUnit2_MAIN_METHOD", "DateHelperTest::main");
require_once "PHPUnit2/Framework/TestCase.php";
require_once "PHPUnit2/Framework/TestSuite.php";
// You may remove the following line when all tests have been implemented.
require_once "PHPUnit2/Framework/IncompleteTestError.php";
// Create an ActiveRecord and an ActionController to test with
'./mockActiveRecord:./mockActionController:'. ini_get('include_path'));
require_once "active_record.php";
require_once "action_controller.php";
require_once "trax_exceptions.php";
require_once "action_view/helpers.php";
require_once "action_view/helpers/date_helper.php";
* Extend the DateHelper class so we can access protected stuff
* Test class for DateHelper.
* Generated by PHPUnit2_Util_Skeleton on 2006-03-01 at 13:17:32.
* Runs the test methods of this class.
public static function main() {
require_once "PHPUnit2/TextUI/TestRunner.php";
$suite = new PHPUnit2_Framework_TestSuite("DateHelperTest");
$result = PHPUnit2_TextUI_TestRunner::run($suite);
* Sets up the fixture, for example, open a network connection.
* This method is called before a test is executed.
protected function setUp() {
* Tears down the fixture, for example, close a network connection.
* This method is called after a test is executed.
* Test the {@link DateHelper::__construct() constructor}
$this->assertEquals('Foo', $dh->object_name);
$this->assertEquals('bar', $dh->attribute_name);
* Test the expiration_date_select() method
* Test the {@link DateHelper::expiration_date_select()} method
$dh = new DateHelper('License', 'expiration_date');
$_REQUEST['License']['expiration_date(1i)'] = date('Y');
$_REQUEST['License']['expiration_date(2i)'] = '08';
// Test expiration date of August this year
$this->assertContains('<option value="'. date('Y').
$dh->expiration_date_select());
$this->assertContains('<option value="'. (date('Y')+ 7). '"',
$dh->expiration_date_select());
$this->assertContains('<option value="08" selected="selected">'
$dh->expiration_date_select());
* Test datetime_select() method
* Test the {@link DateHelper::datetime_select()} method
$dh->controller_object->Person = $ar;
// With no value in $_REQUEST, data should be
// retrieved from the the ActiveRecord
$ar->expect_query("birth","2001-07-05 11:30:45");
$this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
. '<option value="1996">1996</option>' . "\n"
. '<option value="1997">1997</option>' . "\n"
. '<option value="1998">1998</option>' . "\n"
. '<option value="1999">1999</option>' . "\n"
. '<option value="2000">2000</option>' . "\n"
. '<option value="2001" selected="selected">2001</option>' . "\n"
. '<option value="2002">2002</option>' . "\n"
. '<option value="2003">2003</option>' . "\n"
. '<option value="2004">2004</option>' . "\n"
. '<option value="2005">2005</option>' . "\n"
. '<option value="2006">2006</option>' . "\n"
. '<select name="Person[birth(2i)]">' . "\n"
. '<option value="01">January</option>' . "\n"
. '<option value="02">February</option>' . "\n"
. '<option value="03">March</option>' . "\n"
. '<option value="04">April</option>' . "\n"
. '<option value="05">May</option>' . "\n"
. '<option value="06">June</option>' . "\n"
. '<option value="07" selected="selected">July</option>' . "\n"
. '<option value="08">August</option>' . "\n"
. '<option value="09">September</option>' . "\n"
. '<option value="10">October</option>' . "\n"
. '<option value="11">November</option>' . "\n"
. '<option value="12">December</option>' . "\n"
. '<select name="Person[birth(3i)]">' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05" selected="selected">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. '<option value="24">24</option>' . "\n"
. '<option value="25">25</option>' . "\n"
. '<option value="26">26</option>' . "\n"
. '<option value="27">27</option>' . "\n"
. '<option value="28">28</option>' . "\n"
. '<option value="29">29</option>' . "\n"
. '<option value="30">30</option>' . "\n"
. '<option value="31">31</option>' . "\n"
. ' — <select name="Person[birth(4i)]">' . "\n"
. '<option value="00">00</option>' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11" selected="selected">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. ' : <select name="Person[birth(5i)]">' . "\n"
. '<option value="00">00</option>' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. '<option value="24">24</option>' . "\n"
. '<option value="25">25</option>' . "\n"
. '<option value="26">26</option>' . "\n"
. '<option value="27">27</option>' . "\n"
. '<option value="28">28</option>' . "\n"
. '<option value="29">29</option>' . "\n"
. '<option value="30" selected="selected">30</option>' . "\n"
. '<option value="31">31</option>' . "\n"
. '<option value="32">32</option>' . "\n"
. '<option value="33">33</option>' . "\n"
. '<option value="34">34</option>' . "\n"
. '<option value="35">35</option>' . "\n"
. '<option value="36">36</option>' . "\n"
. '<option value="37">37</option>' . "\n"
. '<option value="38">38</option>' . "\n"
. '<option value="39">39</option>' . "\n"
. '<option value="40">40</option>' . "\n"
. '<option value="41">41</option>' . "\n"
. '<option value="42">42</option>' . "\n"
. '<option value="43">43</option>' . "\n"
. '<option value="44">44</option>' . "\n"
. '<option value="45">45</option>' . "\n"
. '<option value="46">46</option>' . "\n"
. '<option value="47">47</option>' . "\n"
. '<option value="48">48</option>' . "\n"
. '<option value="49">49</option>' . "\n"
. '<option value="50">50</option>' . "\n"
. '<option value="51">51</option>' . "\n"
. '<option value="52">52</option>' . "\n"
. '<option value="53">53</option>' . "\n"
. '<option value="54">54</option>' . "\n"
. '<option value="55">55</option>' . "\n"
. '<option value="56">56</option>' . "\n"
. '<option value="57">57</option>' . "\n"
. '<option value="58">58</option>' . "\n"
. '<option value="59">59</option>' . "\n"
* Test datetime_select() function
* Test the {@link datetime_select()} function in procedural file
* {@link date_helper.php}
// Values from $_REQUEST, default format
$_REQUEST['Person']['birth(1i)'] = '2001';
$_REQUEST['Person']['birth(2i)'] = '07';
$_REQUEST['Person']['birth(3i)'] = '05';
$_REQUEST['Person']['birth(4i)'] = '11';
$_REQUEST['Person']['birth(5i)'] = '30';
$this->assertEquals('<select name="Person[birth(1i)]">' . "\n"
. '<option value="1996">1996</option>' . "\n"
. '<option value="1997">1997</option>' . "\n"
. '<option value="1998">1998</option>' . "\n"
. '<option value="1999">1999</option>' . "\n"
. '<option value="2000">2000</option>' . "\n"
. '<option value="2001" selected="selected">2001</option>' . "\n"
. '<option value="2002">2002</option>' . "\n"
. '<option value="2003">2003</option>' . "\n"
. '<option value="2004">2004</option>' . "\n"
. '<option value="2005">2005</option>' . "\n"
. '<option value="2006">2006</option>' . "\n"
. '<select name="Person[birth(2i)]">' . "\n"
. '<option value="01">January</option>' . "\n"
. '<option value="02">February</option>' . "\n"
. '<option value="03">March</option>' . "\n"
. '<option value="04">April</option>' . "\n"
. '<option value="05">May</option>' . "\n"
. '<option value="06">June</option>' . "\n"
. '<option value="07" selected="selected">July</option>' . "\n"
. '<option value="08">August</option>' . "\n"
. '<option value="09">September</option>' . "\n"
. '<option value="10">October</option>' . "\n"
. '<option value="11">November</option>' . "\n"
. '<option value="12">December</option>' . "\n"
. '<select name="Person[birth(3i)]">' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05" selected="selected">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. '<option value="24">24</option>' . "\n"
. '<option value="25">25</option>' . "\n"
. '<option value="26">26</option>' . "\n"
. '<option value="27">27</option>' . "\n"
. '<option value="28">28</option>' . "\n"
. '<option value="29">29</option>' . "\n"
. '<option value="30">30</option>' . "\n"
. '<option value="31">31</option>' . "\n"
. ' — <select name="Person[birth(4i)]">' . "\n"
. '<option value="00">00</option>' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11" selected="selected">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. ' : <select name="Person[birth(5i)]">' . "\n"
. '<option value="00">00</option>' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
. '<option value="17">17</option>' . "\n"
. '<option value="18">18</option>' . "\n"
. '<option value="19">19</option>' . "\n"
. '<option value="20">20</option>' . "\n"
. '<option value="21">21</option>' . "\n"
. '<option value="22">22</option>' . "\n"
. '<option value="23">23</option>' . "\n"
. '<option value="24">24</option>' . "\n"
. '<option value="25">25</option>' . "\n"
. '<option value="26">26</option>' . "\n"
. '<option value="27">27</option>' . "\n"
. '<option value="28">28</option>' . "\n"
. '<option value="29">29</option>' . "\n"
. '<option value="30" selected="selected">30</option>' . "\n"
. '<option value="31">31</option>' . "\n"
. '<option value="32">32</option>' . "\n"
. '<option value="33">33</option>' . "\n"
. '<option value="34">34</option>' . "\n"
. '<option value="35">35</option>' . "\n"
. '<option value="36">36</option>' . "\n"
. '<option value="37">37</option>' . "\n"
. '<option value="38">38</option>' . "\n"
. '<option value="39">39</option>' . "\n"
. '<option value="40">40</option>' . "\n"
. '<option value="41">41</option>' . "\n"
. '<option value="42">42</option>' . "\n"
. '<option value="43">43</option>' . "\n"
. '<option value="44">44</option>' . "\n"
. '<option value="45">45</option>' . "\n"
. '<option value="46">46</option>' . "\n"
. '<option value="47">47</option>' . "\n"
. '<option value="48">48</option>' . "\n"
. '<option value="49">49</option>' . "\n"
. '<option value="50">50</option>' . "\n"
. '<option value="51">51</option>' . "\n"
. '<option value="52">52</option>' . "\n"
. '<option value="53">53</option>' . "\n"
. '<option value="54">54</option>' . "\n"
. '<option value="55">55</option>' . "\n"
. '<option value="56">56</option>' . "\n"
. '<option value="57">57</option>' . "\n"
. '<option value="58">58</option>' . "\n"
. '<option value="59">59</option>' . "\n"
* Test date_select_method()
* Test the {@link DateHelper::date_select()} method
$_REQUEST['Person']['birthdate(1i)'] = '1955';
$_REQUEST['Person']['birthdate(2i)'] = '08';
$_REQUEST['Person']['birthdate(3i)'] = '13';
// Test with default format
$this->assertEquals('<select name="Person[birthdate(1i)]">' . "\n"
. '<option value="1950">1950</option>' . "\n"
. '<option value="1951">1951</option>' . "\n"
. '<option value="1952">1952</option>' . "\n"
. '<option value="1953">1953</option>' . "\n"
. '<option value="1954">1954</option>' . "\n"
. '<option value="1955" selected="selected">1955</option>' . "\n"
. '<option value="1956">1956</option>' . "\n"
. '<option value="1957">1957</option>' . "\n"
. '<option value="1958">1958</option>' . "\n"
. '<option value="1959">1959</option>' . "\n"
. '<option value="1960">1960</option>' . "\n"
. ' <select name="Person[birthdate(2i)]">' . "\n"
. '<option value="01">January</option>' . "\n"
. '<option value="02">February</option>' . "\n"
. '<option value="03">March</option>' . "\n"
. '<option value="04">April</option>' . "\n"
. '<option value="05">May</option>' . "\n"
. '<option value="06">June</option>' . "\n"
. '<option value="07">July</option>' . "\n"
. '<option value="08" selected="selected">August</option>' . "\n"
. '<option value="09">September</option>' . "\n"
. '<option value="10">October</option>' . "\n"
. '<option value="11">November</option>' . "\n"
. '<option value="12">December</option>' . "\n"
. ' <select name="Person[birthdate(3i)]">' . "\n"
. '<option value="01">01</option>' . "\n"
. '<option value="02">02</option>' . "\n"
. '<option value="03">03</option>' . "\n"
. '<option value="04">04</option>' . "\n"
. '<option value="05">05</option>' . "\n"
. '<option value="06">06</option>' . "\n"
. '<option value="07">07</option>' . "\n"
. '<option value="08">08</option>' . "\n"
. '<option value="09">09</option>' . "\n"
. '<option value="10">10</option>' . "\n"
. '<option value="11">11</option>' . "\n"
. '<option value="12">12</option>' . "\n"
. '<option value="13" selected="selected">13</option>' . "\n"
. '<option value="14">14</option>' . "\n"
. '<option value="15">15</option>' . "\n"
. '<option value="16">16</option>' . "\n"
|