Changeset 1938

Show
Ignore:
Timestamp:
09/11/06 22:20:26
Author:
bricas
Message:

added Query and Image objects. newline fixes. updated tests

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/Changes

    r1892 r1938  
    11Revision history for Perl extension WWW::OpenSearch 
     2 
     30.07    Mon Sep 11 2006 
     4        - inflate query and image fields to objects for OSD 1.1 
     5        - pod updates 
    26 
    370.06_02 Thu Jul 20 2006 
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/lib/WWW/OpenSearch.pm

    r1889 r1938  
    1313__PACKAGE__->mk_accessors( qw( description_url agent description ) ); 
    1414 
    15 our $VERSION = '0.06_02'; 
     15our $VERSION = '0.07'; 
    1616 
    1717=head1 NAME 
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/lib/WWW/OpenSearch/Description.pm

    r1890 r1938  
    99use XML::LibXML; 
    1010use WWW::OpenSearch::Url; 
     11use WWW::OpenSearch::Query; 
     12use WWW::OpenSearch::Image; 
    1113 
    1214my @columns = qw( 
     
    202204        } 
    203205        elsif( $version eq '1.1' and $column eq 'Query' ) { 
    204             my $query = ( $node->get_nodelist )[ 0 ]; 
    205             next if $query->getAttributeNode( 'role' )->value eq 'example'; 
    206             $self->SampleSearch( $query->getAttributeNode( 'searchTerms' )->value ); 
     206            my $queries = $self->query || []; 
     207 
     208            for my $node ( $node->get_nodelist ) { 
     209                my $query = WWW::OpenSearch::Query->new( { 
     210                    map { $_ => $node->getAttributeNode( $_ )->value } qw( role searchTerms ) 
     211                } ); 
     212 
     213                push @$queries, $query; 
     214            } 
     215 
     216            $self->query( $queries ); 
     217        } 
     218        elsif( $version eq '1.1' and $column eq 'Image' ) { 
     219            my $images = $self->image || []; 
     220 
     221            for my $node ( $node->get_nodelist ) { 
     222                my $image = WWW::OpenSearch::Image->new( { 
     223                    ( map { $_ => $node->getAttributeNode( $_ )->value } qw( height width type ) ), 
     224                    url => $node->string_value 
     225                } ); 
     226 
     227                push @$images, $image; 
     228            } 
     229 
     230            $self->image( $images ); 
    207231        } 
    208232        elsif( $version eq '1.0' and $column eq 'Format' ) { 
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/lib/WWW/OpenSearch/Url.pm

    r1889 r1938  
    1010=head1 NAME 
    1111 
    12 WWW::OpenSearch::Url 
     12WWW::OpenSearch::Url - Object to represent a target URL 
    1313 
    1414=head1 SYNOPSIS 
     
    2727 
    2828=head1 ACCESSORS 
     29 
     30=over 4 
     31 
     32=item * type 
     33 
     34=item * template 
     35 
     36=item * method 
     37 
     38=item * params 
     39 
     40=item * macros 
     41 
     42=back 
    2943 
    3044=head1 AUTHOR 
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/t/00_compile.t

    r1820 r1938  
    11use strict; 
    2 use Test::More tests => 4
     2use Test::More tests => 6
    33 
    44BEGIN { 
     
    77    use_ok 'WWW::OpenSearch::Response'; 
    88    use_ok 'WWW::OpenSearch::Url'; 
     9    use_ok 'WWW::OpenSearch::Query'; 
     10    use_ok 'WWW::OpenSearch::Image'; 
    911} 
  • WWW-OpenSearch/branches/WWW-OpenSearch-rewrite/t/10-description.t

    r1891 r1938  
    22use warnings; 
    33 
    4 use Test::More tests => 38; 
     4use Test::More tests => 48; 
    55 
    66use_ok( 'WWW::OpenSearch::Description' ); 
     
    2828 
    2929    # count the urls 
    30     is( $osd->urls, 1 ); 
     30    is( $osd->urls, 1, 'number of url objects' ); 
    3131} 
    3232 
     
    8484    is( $osd->syndicationright, 'open' ); 
    8585 
    86     TODO: { 
    87         local $TODO = 'Test Query and Image'; 
     86    my $queries = $osd->query; 
     87    is( scalar @$queries, 1, 'number of query objects' ); 
     88    is( $queries->[ 0 ]->role, 'example' ); 
     89    is( $queries->[ 0 ]->searchTerms, 'cat' ); 
    8890 
    89         is( $osd->query, undef ); 
    90         is( $osd->image, undef ); 
    91     }; 
     91    my $images = $osd->image; 
     92    is( scalar @$images, 2, 'number of image objects' ); 
     93    is( $images->[ 0 ]->height, 64 ); 
     94    is( $images->[ 0 ]->width, 64 ); 
     95    is( $images->[ 0 ]->type, 'image/png' ); 
     96    is( $images->[ 0 ]->url, 'http://example.com/websearch.png' ); 
     97    is( $images->[ 1 ]->height, 16 ); 
     98    is( $images->[ 1 ]->width, 16 ); 
     99    is( $images->[ 1 ]->type, 'image/vnd.microsoft.icon' ); 
     100    is( $images->[ 1 ]->url, 'http://example.com/websearch.ico' ); 
    92101 
    93102    # count the urls 
    94     is( $osd->urls, 3 ); 
     103    is( $osd->urls, 3, 'number of url objects' ); 
    95104} 
    96105