/** * Test time_select() method * * Test the {@link DateHelper::time_select()} method */ public function testTime_select_method() { $dh = new DateHelper('Person', 'lunch'); $dh->controller_object = new ActionController(); $ar = new ActiveRecord(); $dh->controller_object->Person = $ar; // With no value in $_REQUEST, data should be // retrieved from the the ActiveRecord $ar->expect_query("lunch", "11:30:45"); $this->assertEquals('<select name="Person[lunch(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>' . "\n" . ' : <select name="Person[lunch(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" . '</select>' . "\n", $dh->time_select()); // Value in $_REQUEST should override the model $_REQUEST['Person']['lunch(4i)'] = '08'; $_REQUEST['Person']['lunch(5i)'] = '12'; $this->assertEquals('<select name="Person[lunch(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" selected="selected">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" . '</select>' . "\n" . ' : <select name="Person[lunch(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" selected="selected">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" . '<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" . '</select>' . "\n", $dh->time_select()); // Test output format option 'discard_second' => false $_REQUEST['Person']['lunch(4i)'] = '12'; $_REQUEST['Person']['lunch(5i)'] = '14'; $_REQUEST['Person']['lunch(6i)'] = '27'; $this->assertEquals('<select name="Person[lunch(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">11</option>' . "\n" . '<option value="12" selected="selected">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>' . "\n" . ' : <select name="Person[lunch(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" selected="selected">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" . '<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" . '</select>' . "\n" . ' : <select name="Person[lunch(6i)]">' . "\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" selected="selected">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" . '<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" . '</select>' . "\n", $dh->time_select(array('discard_second' => false))); }
/** * Make a new DateHelper object and call its select_time() method * @param string Name of an ActiveRecord subclass * @param string Name of an attribute of $object * @param mixed[] Format options * @uses DateHelper::select_time() * @see ActiveRecordHelper::to_scaffold_tag() */ function time_select($object, $attribute, $options = array()) { $date_helper = new DateHelper($object, $attribute); return $date_helper->time_select($options); }