CGI-Widget-DBI-Browse

 view release on metacpan or  search on metacpan

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN


        [ 'continent=North%20America[^<>]+id="categoryNavLink-North America".*', 'North America' ],
        [ 'continent=South%20America[^<>]+id="categoryNavLink-South America".*', 'South America' ],

        [ 'td', 'tr' ],
    );
    $self->assert_equals('', $self->{wb}->category_title());

    $self->assert_display_does_not_contain([ 'input type="hidden' ]);
    $self->assert_display_does_not_contain([ 'At first page', 'At last page' ]);
    $self->assert_display_does_not_contain([ 'Sort by', 'sortby_columns_popup' ]);
    $self->assert_display_does_not_contain([ 'Sort field' ]);

    $self->assert_equals('continent', $self->{wb}->is_browsing());
    $self->assert(! $self->{wb}->parent_category_column());
    $self->assert_deep_equals([], [$self->{wb}->ancestor_category_columns()]);
}

sub test_display__top_level__works_with_stray_sortby_param
{
    my $self = shift;

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="South America' ],
        [ 'tr', 'td' ],
        [ 'continent=South%20America&amp;nation=Argentina[^<>]+id="categoryNavLink-Argentina".*', 'Argentina' ],
        [ 'continent=South%20America&amp;nation=Brazil[^<>]+id="categoryNavLink-Brazil".*', 'Brazil' ],
        [ 'td', 'tr' ],
    );
    $self->assert_equals('South America', $wb->category_title());

    $self->assert_display_does_not_contain([ 'At first page', 'At last page' ]);
    $self->assert_display_does_not_contain([ 'Sort by', 'sortby_columns_popup' ]);
    $self->assert_display_does_not_contain([ 'Sort field' ]);
}

sub test_display__second_level__uses_href_extra_vars_for_category_nav_links
{
    my $self = shift;
    $self->{wb}->{q}->param('href_testvar', 'foo');
    $self->{wb}->{ws}->{-href_extra_vars} = { href_testvar => undef };

    $self->{wb}->{q}->param('continent', 'South America');

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Asia' ],
        [ 'input type="hidden" name="nation" value="Japan' ],
        [ 'tr', 'td' ],
        [ 'continent=Asia&amp;nation=Japan&amp;state_or_province=Kanto[^<>]+id="categoryNavLink-Kanto".*', 'Kanto, Japan' ],
        [ 'td', 'tr' ],
    );
    $self->assert_equals('Asia > Japan', $wb->category_title());

    $self->assert_display_does_not_contain([ 'At first page', 'At last page' ]);
    $self->assert_display_does_not_contain([ 'Sort by', 'sortby_columns_popup' ]);
    $self->assert_display_does_not_contain([ 'Sort field' ]);
}

sub test_display__third_level__uses_href_extra_vars_for_category_nav_links
{
    my $self = shift;
    $self->{wb}->{q}->param('href_testvar', 'foo');
    $self->{wb}->{ws}->{-href_extra_vars} = { href_testvar => undef };

    $self->{wb}->{q}->param('continent', 'Asia');

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

        [ 'tr', 'td' ],
        [ 'continent=Africa[^<>]+id="categoryNavLink-Africa".*', 'Africa' ],
        [ 'continent=Asia[^<>]+id="categoryNavLink-Asia".*', 'Asia' ],
        [ 'continent=Australia[^<>]+id="categoryNavLink-Australia".*', 'Australia' ],
        [ 'td', 'tr' ],
        [ 'At first page', 'search_startat=1', 'Next &gt' ],
    );
    $self->assert_display_does_not_contain([ 'continent=Europe[^<>]+id="categoryNavLink-Europe".*', 'Europe' ]);
    $self->assert_display_does_not_contain([ 'continent=North%20America[^<>]+id="categoryNavLink-North America".*', 'North America' ]);
    $self->assert_display_does_not_contain([ 'continent=South%20America[^<>]+id="categoryNavLink-South America".*', 'South America' ]);
    $self->assert_display_does_not_contain([ 'Sort by', 'sortby_columns_popup' ]);
    $self->assert_display_does_not_contain([ 'Sort field' ]);

    $self->init_test_object();
    $wb = $self->{wb};

    $wb->{-max_category_results_per_page} = 3;
    $wb->{q}->param('search_startat', 1);

    $self->assert_display_contains(
        [ 'search_startat=0', 'lt; Previous', '3', 'results displayed', '4 - 6', 'of', '6', 'At last page', ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('continent', 'North America');
    $wb->{q}->param('nation', 'United States');
    $wb->{-skip_to_results} = 1;

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="North America' ],
        [ 'input type="hidden" name="nation" value="United States' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'continent=North%20America', 'city_no' ],
        [ 'sortby=name', 'nation=United%20States', 'name' ],
        [ 'sortby=population', 'continent=North%20America', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'New York', 'Financial capital of the world', 20_420_000 ],
        [ 'Ithaca', 'Ithaca is Gorges', 100_018 ],
        [ 'Portland', 'Microbrew capital of the world', 1_583_138 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('continent', 'Asia');
    $wb->{q}->param('_browse_skip_to_results_', 1);

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        # test for hidden _browse_skip_to_results_: required for persistent results where subclasses submit form
        [ 'input type="hidden" name="_browse_skip_to_results_" value="1' ],
        [ 'input type="hidden" name="continent" value="Asia' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'continent=Asia', 'city_no' ],
        [ 'sortby=name', 'continent=Asia', 'name' ],
        [ 'sortby=population', 'continent=Asia', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'Tokyo', 'Largest city in the world', 34_450_000 ],
        [ 'Mumbai', 'Largest city in India, capital of western state of Maharashtra', 19_380_000 ],
        [ 'Bangkok', 'City with the longest full name in the world', 8_190_000 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{-auto_skip_to_results} = 1; # enable auto_skip_to_results feature

    $wb->{q}->param('continent', 'Antarctica');

    $self->assert_equals('nation', $wb->is_browsing());
    $self->assert_equals('continent', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent/], [$self->{wb}->ancestor_category_columns()]);

    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Antarctica' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],

        [ 'sortby=city_no',           'continent=Antarctica', 'city_no'           ],
        [ 'sortby=name',              'continent=Antarctica', 'name'              ],
        [ 'sortby=description',       'continent=Antarctica', 'description'       ],
        [ 'sortby=population',        'continent=Antarctica', 'population'        ],
        [ 'sortby=state_or_province', 'continent=Antarctica', 'state_or_province' ],
        [ 'sortby=nation',            'continent=Antarctica', 'nation'            ],

        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{-auto_skip_to_results} = 1; # enable auto_skip_to_results feature

    $wb->{q}->param('continent', 'Pacific Ocean');

    $self->assert_equals('nation', $wb->is_browsing());
    $self->assert_equals('continent', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent/], [$self->{wb}->ancestor_category_columns()]);

    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Pacific Ocean' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],

        [ 'sortby=city_no',           'continent=Pacific%20Ocean', 'city_no'           ],
        [ 'sortby=name',              'continent=Pacific%20Ocean', 'name'              ],
        [ 'sortby=description',       'continent=Pacific%20Ocean', 'description'       ],
        [ 'sortby=population',        'continent=Pacific%20Ocean', 'population'        ],
        [ 'sortby=state_or_province', 'continent=Pacific%20Ocean', 'state_or_province' ],
        [ 'sortby=nation',            'continent=Pacific%20Ocean', 'nation'            ],

        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{-auto_skip_to_results} = 1; # enable auto_skip_to_results feature

    $wb->{q}->param('continent', 'Atlantic Ocean');

    $self->assert_equals('nation', $wb->is_browsing());
    $self->assert_equals('continent', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent/], [$self->{wb}->ancestor_category_columns()]);

    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Atlantic Ocean' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],

        [ 'sortby=city_no',           'continent=Atlantic%20Ocean', 'city_no'           ],
        [ 'sortby=name',              'continent=Atlantic%20Ocean', 'name'              ],
        [ 'sortby=description',       'continent=Atlantic%20Ocean', 'description'       ],
        [ 'sortby=population',        'continent=Atlantic%20Ocean', 'population'        ],
        [ 'sortby=state_or_province', 'continent=Atlantic%20Ocean', 'state_or_province' ],
        [ 'sortby=nation',            'continent=Atlantic%20Ocean', 'nation'            ],

        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('nation', 'United States');
    $wb->{q}->param('state_or_province', 'Oregon');

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="North America' ],
        [ 'input type="hidden" name="nation" value="United States' ],
        [ 'input type="hidden" name="state_or_province" value="Oregon' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'state_or_province=Oregon', 'city_no' ],
        [ 'sortby=name', 'nation=United%20States', 'name' ],
        [ 'sortby=population', 'continent=North%20America', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'Portland', 'Microbrew capital of the world', 1_583_138 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],
    );
    $self->assert_equals('North America > United States > Oregon (results)', $wb->category_title());

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('nation', 'United States');
    $wb->{q}->param('state_or_province', 'New York');

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="North America' ],
        [ 'input type="hidden" name="nation" value="United States' ],
        [ 'input type="hidden" name="state_or_province" value="New York' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'state_or_province=New%20York', 'city_no' ],
        [ 'sortby=name', 'nation=United%20States', 'name' ],
        [ 'sortby=population', 'continent=North%20America', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'New York', 'Financial capital of the world', 20_420_000 ],
        [ 'Ithaca', 'Ithaca is Gorges', 100_018 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],
    );

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('nation', 'India');
    $wb->{q}->param('state_or_province', 'Maharashtra');

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Asia' ],
        [ 'input type="hidden" name="nation" value="India' ],
        [ 'input type="hidden" name="state_or_province" value="Maharashtra' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'continent=Asia', 'city_no' ],
        [ 'sortby=name', 'nation=India', 'name' ],
        [ 'sortby=population', 'state_or_province=Maharashtra', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'Mumbai', 'Largest city in India, capital of western state of Maharashtra', 19_380_000 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],
    );
    $self->assert_equals('Asia > India > Maharashtra (results)', $wb->category_title());

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    $wb->{q}->param('nation', 'Japan');
    $wb->{q}->param('state_or_province', 'Kanto');

    $self->assert(! $wb->is_browsing());
    $self->assert_equals('state_or_province', $wb->parent_category_column());
    $self->assert_deep_equals([qw/continent nation state_or_province/], [$self->{wb}->ancestor_category_columns()]);
    $self->assert_display_contains(
        [ 'input type="hidden" name="continent" value="Asia' ],
        [ 'input type="hidden" name="nation" value="Japan' ],
        [ 'input type="hidden" name="state_or_province" value="Kanto' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'sortby=city_no', 'state_or_province=Kanto', 'city_no' ],
        [ 'sortby=name', 'state_or_province=Kanto', 'name' ],
        [ 'sortby=population', 'state_or_province=Kanto', 'population' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'Tokyo', 'Largest city in the world', 34_450_000 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],
    );
    $self->assert_equals('Asia > Japan > Kanto (results)', $wb->category_title());

lib/CGI/Widget/DBI/TEST/Browse.pm  view on Meta::CPAN

    my $wb = $self->{wb};

    $wb->{q}->param('continent', 'North America');
    $wb->{q}->param('nation', 'United States');
    $wb->{q}->param('state_or_province', 'New York');
    $self->assert_display_contains(
        [ 'href="?"[^<>]+class="breadcrumbNavLink', 'Top', 'gt' ],
        [ 'continent=North%20America', 'class="breadcrumbNavLink', 'North America', 'gt' ],
        [ 'continent=North%20America', 'nation=United%20States', 'class="breadcrumbNavLink', 'United States', 'gt' ],
        [ 'continent=North%20America', 'nation=United%20States', 'state_or_province=New%20York', 'class="breadcrumbNavLink', 'New York' ],
        [ 'Sort by', 'sortby_columns_popup', 'Sort field' ],
        [ 'At first page', 'At last page' ],
        [ 'tr', 'td' ],
        [ 'New York', 'Financial capital of the world', 20_420_000 ],
        [ 'Ithaca', 'Ithaca is Gorges', 100_018 ],
        [ 'td', 'tr' ],
        [ 'At first page', 'At last page' ],
    );
    $self->assert_deep_equals(['Top', 'North America', 'United States', 'New York'], $wb->{'breadcrumbs'});
    $self->assert_matches(
        $self->word_sequence_regex_for_rows([ 'href="\?"[^<>]+class="breadcrumbNavLink', 'Top' ]),



( run in 0.980 second using v1.01-cache-2.11-cpan-364913b4093 )