Skip to content

Commit

Permalink
Merge pull request #4 from paultcochrane/pr/fix-test-failures-since-m…
Browse files Browse the repository at this point in the history
…ojo-616

Set 'selected' attr via Mojo controller
  • Loading branch information
reneeb committed Apr 10, 2018
2 parents cc6de07 + 315b674 commit cf5a355
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 23 deletions.
2 changes: 1 addition & 1 deletion dist.ini
Expand Up @@ -18,5 +18,5 @@ repository.web = http://github.com/reneeb/Mojolicious-Plugin-FormFieldsFromJSON-
repository.type = git

[Prereqs]
Mojolicious = 5.67
Mojolicious = 5.73
Mojolicious::Plugin::FormFieldsFromJSON = 0.19
26 changes: 10 additions & 16 deletions lib/Mojolicious/Plugin/FormFieldsFromJSON/Date.pm
Expand Up @@ -70,15 +70,13 @@ sub Mojolicious::Plugin::FormFieldsFromJSON::_date {
sub _day_dropdown {
my ($c, %params) = @_;

$c->param( $params{name}, '' );

my @days = map{
my %opts = ( $_ == $params{day} ) ?
('selected' => 'selected') :
();
[ $_ => sprintf("%02d", $_) , %opts ]
$c->param( $params{name} => sprintf("%02d", $_) ) if $_ == $params{day};
[ $_ => sprintf("%02d", $_) ]
}(1 .. 31);

$c->param( $params{name}, '' );

my $select = $c->select_field(
$params{name},
\@days,
Expand All @@ -90,15 +88,13 @@ sub _day_dropdown {
sub _month_dropdown {
my ($c, %params) = @_;

$c->param( $params{name}, '' );

my @months = map{
my %opts = ( $_ == $params{month} ) ?
('selected' => 'selected') :
();
[ $_ => sprintf("%02d", $_), %opts ]
$c->param( $params{name} => sprintf("%02d", $_) ) if $_ == $params{month};
[ $_ => sprintf("%02d", $_) ]
}(1 .. 12);

$c->param( $params{name}, '' );

my $select = $c->select_field(
$params{name},
\@months,
Expand All @@ -120,10 +116,8 @@ sub _year_dropdown {
my $has_year;
my @years = map{
$has_year++ if $_ == $params{year};
my %opts = ( $_ == $params{year} ) ?
('selected' => 'selected') :
();
[ $_ => $_, %opts ]
$c->param( $params{name} => $params{year} ) if $_ == $params{year};
[ $_ => $_ ]
}($start .. $stop);

if ( !$has_year ) {
Expand Down
4 changes: 2 additions & 2 deletions t/01_date.t
Expand Up @@ -28,10 +28,10 @@ get '/' => sub {

my $t = Test::Mojo->new;
$t->get_ok('/')->status_is(200)->content_is(
'<select id="name-year" name="name-year"><option value="2013">2013</option><option selected="selected" value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option selected="selected" value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option selected="selected" value="29">29</option><option value="30">30</option><option value="31">31</option></select>');
'<select id="name-year" name="name-year"><option value="2013">2013</option><option selected value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option selected value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option selected value="29">29</option><option value="30">30</option><option value="31">31</option></select>');

$t->get_ok('/?name-day=13&name-month=10&name-year=2015')->status_is(200)->content_is(
'<select id="name-year" name="name-year"><option value="2013">2013</option><option value="2014">2014</option><option selected="selected" value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option selected="selected" value="10">10</option><option value="11">11</option><option value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option selected="selected" value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>');
'<select id="name-year" name="name-year"><option value="2013">2013</option><option value="2014">2014</option><option selected value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option selected value="10">10</option><option value="11">11</option><option value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option selected value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>');

done_testing();

2 changes: 1 addition & 1 deletion t/02_date_local_param.t
Expand Up @@ -28,7 +28,7 @@ get '/' => sub {

my $t = Test::Mojo->new;
$t->get_ok('/')->status_is(200)->content_is(
'<select id="name-year" name="name-year"><option value="2013">2013</option><option selected="selected" value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option selected="selected" value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option selected="selected" value="29">29</option><option value="30">30</option><option value="31">31</option></select>');
'<select id="name-year" name="name-year"><option value="2013">2013</option><option selected value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option></select><select id="name-month" name="name-month"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option selected value="12">12</option></select><select id="name-day" name="name-day"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option selected value="29">29</option><option value="30">30</option><option value="31">31</option></select>');

done_testing();

6 changes: 3 additions & 3 deletions t/03_date_today.t
Expand Up @@ -40,9 +40,9 @@ my $mon = $today->mon;
my $day = sprintf "%02d", $today->mday;
my $mday = $today->mday;

like $content, qr/selected="selected" value="$year">$year</;
like $content, qr/selected="selected" value="$month">$mon</;
like $content, qr/selected="selected" value="$day">$mday</;
like $content, qr/selected value="$year">$year</;
like $content, qr/selected value="$month">$mon</;
like $content, qr/selected value="$day">$mday</;

done_testing();

0 comments on commit cf5a355

Please sign in to comment.