File: search.t

package info (click to toggle)
libhtml-formhandler-perl 0.40057-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,320 kB
  • ctags: 685
  • sloc: perl: 8,849; makefile: 2
file content (56 lines) | stat: -rw-r--r-- 1,878 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
use strict;
use warnings;
use Test::More;
use HTML::FormHandler::Test;

{
    package MyApp::Form::Search::Theme;
    use Moose::Role;

    sub build_form_tags {{
        before => '<h3>Search form</h3><div class="row"><div class="span3"><p>Reflecting default WebKit styles, just add <code>.form-search</code> for extra rounded search fields.</p></div><div class="span9">',
        after => '</div></div>',
        no_form_message_div => 1,
    }}
    # classes for form element
    sub build_form_element_class { ['well', 'form-search'] }
    # field updates
    sub build_update_subfields {{
        searchterm => { widget_wrapper => 'None', element_attr => { class => ['input-medium', 'search-query'] }},
        submitbtn  => { widget => 'ButtonTag', widget_wrapper => 'None', element_attr => { class => ['btn'] } },
    }}
}
{
    package MyApp::Form::Search;
    use HTML::FormHandler::Moose;
    extends 'HTML::FormHandler';
    with 'MyApp::Form::Search::Theme';

    has '+name' => ( default => 'search_form' );
    has '+http_method' => ( default => 'get' );
    has_field 'searchterm' => ( type => 'Text' );
    has_field 'submitbtn' => ( type => 'Submit', value => 'Search' );

}

my $expected =
'<h3>Search form</h3>
  <div class="row">
    <div class="span3">
      <p>Reflecting default WebKit styles, just add <code>.form-search</code> for extra rounded search fields.</p>
    </div>
    <div class="span9">
      <form id="search_form" class="well form-search" method="get">
        <input name="searchterm" id="searchterm" type="text" class="input-medium search-query" value="" />
        <button name="submitbtn" id="submitbtn" type="submit" class="btn">Search</button>
      </form>
    </div>
  </div>';

my $form = MyApp::Form::Search->new;
$form->process;
my $rendered = $form->render;

is_html($rendered, $expected, 'renders correctly' );

done_testing;