[html-formfu] CatalystX::Controller::ExtJS::REST tests

Moritz Onken onken at houseofdesign.de
Tue Apr 14 21:05:31 GMT 2009


$res = bless( {
   '_previous' => bless( {
     '_protocol' => 'HTTP/1.1',
     '_content' => '{"success":1,"data": 
{"password":"foo","name":"bar","id":null}}',
     '_rc' => '201',
     '_headers' => bless( {
       'x-catalyst' => '5.71001',
       'content-base' => bless( do{\(my $o = '/user')},  
'URI::_generic' ),
       'location' => 'http://localhost/user/1',
       'date' => 'Tue, 14 Apr 2009 21:04:42 GMT',
       'status' => '201',
       'vary' => 'Content-Type',
       'content-length' => '62',
       'content-type' => 'application/json'
     }, 'HTTP::Headers' ),
     '_msg' => 'Created',
     '_request' => bless( {
       '_content' => 'name=bar&password=foo',
       '_uri' => bless( do{\(my $o = 'http://localhost:80//user')},  
'URI::http' ),
       '_headers' => bless( {
         'content-type' => 'application/x-www-form-urlencoded',
         'accept' => 'application/json',
         'accept-encoding' => 'gzip',
         'content-length' => 21,
         'referer' => 'http://localhost:80//users'
       }, 'HTTP::Headers' ),
       '_method' => 'POST'
     }, 'HTTP::Request' )
   }, 'HTTP::Response' ),
   '_msg' => 'Unsupported Media Type',
   '_content' => 'Cannot find a Content-Type supported by your client.
',
   '_protocol' => 'HTTP/1.1',
   '_raw_content' => 'Cannot find a Content-Type supported by your  
client.
',
   '_headers' => bless( {
     'x-catalyst' => '5.71001',
     'content-type' => 'text/plain',
     'content-base' => bless( do{\(my $o = 'http://localhost/user/ 
1')}, 'URI::http' ),
     'date' => 'Tue, 14 Apr 2009 21:04:42 GMT',
     'status' => '415',
     'content-length' => '54'
   }, 'HTTP::Headers' ),
   '_rc' => 415,
   '_request' => bless( {
     '_content' => '',
     '_uri' => $VAR1->{'_headers'}{'content-base'},
     '_headers' => bless( {}, 'HTTP::Headers' ),
     '_method' => 'GET'
   }, 'HTTP::Request' )
}, 'HTTP::Response' );

at line 24 on my machine.


Am 14.04.2009 um 22:39 schrieb Mario Minati:

> Hi Moritz,
>
> now my understanding of testing Catalyst is a little better. :-)
>
> The user.t doesn't work for me, the problem with redirected request  
> doesn't
> come up here.
>
> The output is:
> --snip--
> ok 1 - request list of users
> ok 2 - response is JSON response
> ok 3 - no results
> [info] *** Request 2 (2.000/s) [5763] [Tue Apr 14 22:28:07 2009] ***
> [debug] Body Parameters are:
> .------------------------------------- 
> +--------------------------------------.
> | Parameter                           |  
> Value                                |
> +------------------------------------- 
> +--------------------------------------+
> | name                                |  
> bar                                  |
> | password                            |  
> foo                                  |
> '------------------------------------- 
> +--------------------------------------'
> [debug] "POST" request for "user" from "127.0.0.1"
> [debug] Path is "/user/object"
> [debug] I would have deserialized, but there was nothing in the body!
> [debug] Serializing with Catalyst::Action::Serialize::JSON
> [info] Request took 0.114814s (8.710/s)
> .---------------------------------------------------------------- 
> +-----------.
> | Action                                                         |  
> Time      |
> +---------------------------------------------------------------- 
> +-----------+
> | /user/begin                                                    |  
> 0.004265s |
> | /user/object                                                   |  
> 0.008799s |
> | /user/end                                                      |  
> 0.001013s |
> '---------------------------------------------------------------- 
> +-----------'
>
> Can't call method "content" on an undefined value at t/rest/user.t  
> line 30.
> # Looks like you planned 18 tests but ran 3.
> # Looks like your test exited with 9 just after 3.
> --snap--
>
> Dumping $res from line 23 of user.t gives:
> $VAR1 = bless( {
>                 '_protocol' => 'HTTP/1.1',
>                 '_content' => '{"success":1,"data":
> {"password":"foo","name":"bar","id":null}}',
>                 '_raw_content' => '{"success":1,"data":
> {"password":"foo","name":"bar","id":null}}',
>                 '_rc' => 201,
>                 '_headers' => bless( {
>                                        'x-catalyst' => '5.71000',
>                                        'content-base' => bless( do{\ 
> (my $o
> = 'http://localhost/user')}, 'URI::http' ),
>                                        'location'
> => 'http://localhost/user/1',
>                                        'date' => 'Tue, 14 Apr 2009  
> 20:30:06
> GMT',
>                                        'status' => '201',
>                                        'vary' => 'Content-Type',
>                                        'content-length' => '62',
>                                        'content-type' =>  
> 'application/json'
>                                      }, 'HTTP::Headers' ),
>                 '_msg' => 'Created',
>                 '_request' => bless( {
>                                        '_content' =>  
> 'name=bar&password=foo',
>                                        '_uri' => $VAR1->{'_headers'}
> {'content-base'},
>                                        '_headers' => bless( {
>                                                               'user- 
> agent'
> => 'WWW-Mechanize/1.54',
>                                                                
> 'content-type'
> => 'application/x-www-form-urlencoded',
>                                                               'accept'
> => 'application/json',
>                                                                
> 'accept-encoding'
> => 'gzip',
>                                                                
> 'content-length'
> => 21,
>                                                               'host'
> => 'localhost',
>                                                                
> 'referer'
> => 'http://localhost/users'
>                                                             },  
> 'HTTP::Headers' ),
>                                        '_method' => 'POST',
>                                        '_uri_canonical' =>
> $VAR1->{'_headers'}{'content-base'}
>                                      }, 'HTTP::Request' )
>               }, 'HTTP::Response' );
>
> I didn't paste the dump of $mech, but I don't see the redirect.
>
>
> I#m useing the SVN versions of HTML-FormFu, HTML-FormFu-ExtJS and
> HTML-FormFu-Model-DBIC.
>
>
> Greets,
>
> Mario Minati
>
> Am Montag 13 April 2009 21:21:13 schrieben Sie:
>> Am Samstag 11 April 2009 21:48:10 schrieb Moritz Onken:
>>>> Hi Moritz,
>>>>
>>>> the suite looks good so far, I just read the code and gives quite
>>>> important
>>>> comments ('redirect' :roll:).
>>>>
>>>> The suite is not meant to run automatically on make test, right?
>>>
>>> Maybe we have to tweak Makefile.PL but they should run  
>>> automatically.
>>> I guess we need "tests_recursive;" in Makefile.PL
>>
>> Ok
>>
>>>> Do you have a special suggestion on howto include all the SVN  
>>>> FormFu
>>>> modules
>>>> into lib? Currently I have quite some -I options.
>>>
>>> I usually export the PERL5LIB variable which is read by perl.
>>> Is there more than the svn version of FormFu::ExtJS that we depend  
>>> on?
>>
>> Actually I have an old FormFu installed via CPAN and am useing SVN  
>> of all
>> FormFu related modules.
>>
>> Greets,
>>
>> Mario Minati
>>
>>> Am 11.04.2009 um 21:17 schrieb Mario Minati:
>>>> Hi Moritz,
>>>>
>>>> the suite looks good so far, I just read the code and gives quite
>>>> important
>>>> comments ('redirect' :roll:).
>>>>
>>>> The suite is not meant to run automatically on make test, right?
>>>>
>>>> Do you have a special suggestion on howto include all the SVN  
>>>> FormFu
>>>> modules
>>>> into lib? Currently I have quite some -I options.
>>>>
>>>>
>>>> Happy Easter,
>>>>
>>>> Mario Minati
>>>>
>>>> Am Freitag 10 April 2009 14:21:02 schrieb Moritz Onken:
>>>>> Hi,
>>>>>
>>>>>
>>>>> I commited the test suite and created a test which is located in  
>>>>> t/
>>>>> rest/user.yml.
>>>>>
>>>>> I think this is a good start for new tests and works pretty good  
>>>>> so
>>>>> far.
>>>>> I added a few comments to the test so you can understand why  
>>>>> certain
>>>>> things happen or don't.
>>>>>
>>>>> I usually run tests like this:
>>>>>
>>>>> CatalystX-Controller-ExtJS mo$ perl -Ilib t/rest/user.yml
>>>>>
>>>>> This way you get more output than using make test or prove.
>>>>>
>>>>> You don't need to deploy the schema or do something like that.  
>>>>> This
>>>>> is
>>>>> handled in MyApp::Model::DBIC.
>>>>>
>>>>> Testing a REST-app sucks because all those HTTP::* and  
>>>>> LWP::UserAgent
>>>>> modules
>>>>> don't support it very well. Example: Try to post form data using  
>>>>> PUT.
>>>>>
>>>>> Have fun,
>>>>>
>>>>> moritz
>>>>>
>>>>> Am 10.04.2009 um 10:44 schrieb Mario Minati:
>>>>>> I wanted to step into the test creation for
>>>>>> CatalystX::Controller::ExtJS::REST
>>>>>> but am wondering how to start.
>>>>>>
>>>>>> Do we need to create a complete Cat test app, including sqlite  
>>>>>> db to
>>>>>> test it
>>>>>> or is there maybe an easier way?
>>>>>>
>>>>>> Which module would be a good start to take modules as template.
>>>>>>
>>>>>>
>>>>>> I wish a nice Good Friday,
>>>>>>
>>>>>> Mario Minati
>>>>>>
>>>>>> _______________________________________________
>>>>>> HTML-FormFu mailing list
>>>>>> HTML-FormFu at lists.scsys.co.uk
>>>>>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>>>>>
>>>>> _______________________________________________
>>>>> HTML-FormFu mailing list
>>>>> HTML-FormFu at lists.scsys.co.uk
>>>>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>>>>
>>>> _______________________________________________
>>>> HTML-FormFu mailing list
>>>> HTML-FormFu at lists.scsys.co.uk
>>>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>>>
>>> _______________________________________________
>>> HTML-FormFu mailing list
>>> HTML-FormFu at lists.scsys.co.uk
>>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>
>
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu




More information about the HTML-FormFu mailing list