[Jifty-commit] r704 - in jifty/trunk: t t/TestApp/t

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sun Mar 19 18:28:12 EST 2006


Author: alexmv
Date: Sun Mar 19 18:28:11 2006
New Revision: 704

Added:
   jifty/trunk/t/00-load.t
   jifty/trunk/t/03-form-protocol.t
   jifty/trunk/t/04-sessions.t
   jifty/trunk/t/05-dispatcher.t
   jifty/trunk/t/06-forms.t
   jifty/trunk/t/07-limit-actions.t
   jifty/trunk/t/TestApp/t/03-static.t
Removed:
   jifty/trunk/t/02-form-protocol.t
   jifty/trunk/t/03-sessions.t
   jifty/trunk/t/04-dispatcher.t
   jifty/trunk/t/04-forms.t
   jifty/trunk/t/06-limit-actions.t
   jifty/trunk/t/TestApp/t/00-load.t
   jifty/trunk/t/TestApp/t/01-trivial.t
   jifty/trunk/t/TestApp/t/16-images.t
Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/t/TestApp/t/00-model-User.t

Log:
 r11673 at zoq-fot-pik:  chmrr | 2006-03-19 17:22:20 -0500
  * Renumber and move around a few tests


Added: jifty/trunk/t/00-load.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/00-load.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,6 @@
+#!/usr/bin/perl -w
+use strict;
+use Test::More tests => 2;
+
+use_ok('Jifty::Everything');
+use_ok('Jifty::Test');

Added: jifty/trunk/t/03-form-protocol.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/03-form-protocol.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,523 @@
+use t::Jifty;
+
+run_is_deeply;
+
+__DATA__
+=== one action
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== two actions
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A-second: DoSomething
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+J:ACTIONS: mymoniker;second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A-second: DoSomething
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+  J:ACTIONS: mymoniker;second
+fragments: {}
+=== two different actions
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A-second: DoThat
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+J:ACTIONS: mymoniker;second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A-second: DoThat
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+  J:ACTIONS: mymoniker;second
+fragments: {}
+=== ignore arguments without actions
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+J:ACTIONS: mymoniker;second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+  J:ACTIONS: mymoniker;second
+fragments: {}
+=== one active, one inactive action
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A-second: DoThat
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+J:ACTIONS: second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 0
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A-second: DoThat
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+  J:ACTIONS: second
+fragments: {}
+=== two actions, no J:ACTIONS
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A-second: DoThat
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A-second: DoThat
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+fragments: {}
+=== ignore totally random stuff
+--- form
+J:A: bloopybloopy
+J:A-mymoniker: DoSomething
+J:A:E-id-mymoniker: 5423
+J:A:F-id-mymoniker: 23
+asdfk-asdfkjasdlf:J:A:F-asdkfjllsadf: bla
+J:A:F-something-mymoniker: else
+foo: bar
+J:A-second: DoThat
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A: bloopybloopy
+  J:A-mymoniker: DoSomething
+  J:A:E-id-mymoniker: 5423
+  J:A:F-id-mymoniker: 23
+  asdfk-asdfkjasdlf:J:A:F-asdkfjllsadf: bla
+  J:A:F-something-mymoniker: else
+  foo: bar
+  J:A-second: DoThat
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+fragments: {}
+=== order doesn't matter
+--- form
+J:A:F-id-mymoniker: 23
+J:A:F-something-second: bla
+J:A:F-id-second: 42
+J:A-second: DoThat
+J:A:F-something-mymoniker: else
+J:A-mymoniker: DoSomething
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+arguments:
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-second: bla
+  J:A:F-id-second: 42
+  J:A-second: DoThat
+  J:A:F-something-mymoniker: else
+  J:A-mymoniker: DoSomething
+fragments: {}
+=== fallbacks being ignored
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F:F-id-mymoniker: 96
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F:F-id-mymoniker: 96
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== fallbacks being ignored (other order)
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F-id-mymoniker: 96
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F-id-mymoniker: 96
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== fallbacks being used
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F-id-mymoniker: 96
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 96
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F-id-mymoniker: 96
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== two different actions, one with fallback, one without
+--- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A:F:F-something-second: bla
+J:A-second: DoThat
+J:A:F-id-second: 42
+J:A:F-something-second: feepy
+J:ACTIONS: mymoniker;second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoThat
+    active: 1
+    arguments:
+        id: 42
+        something: feepy
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A:F:F-something-second: bla
+  J:A-second: DoThat
+  J:A:F-id-second: 42
+  J:A:F-something-second: feepy
+  J:ACTIONS: mymoniker;second
+fragments: {}
+=== double fallbacks being ignored (with single fallback)
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F:F-id-mymoniker: 789
+J:A:F:F-id-mymoniker: 456
+J:A:F-id-mymoniker: 123
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 123
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F:F-id-mymoniker: 789
+  J:A:F:F-id-mymoniker: 456
+  J:A:F-id-mymoniker: 123
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== double fallbacks being ignored (without single fallback)
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F:F-id-mymoniker: 789
+J:A:F-id-mymoniker: 123
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 123
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F:F-id-mymoniker: 789
+  J:A:F-id-mymoniker: 123
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== double fallbacks being ignored (single fallback used)
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F:F-id-mymoniker: 789
+J:A:F:F-id-mymoniker: 456
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 456
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F:F-id-mymoniker: 789
+  J:A:F:F-id-mymoniker: 456
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== double fallbacks being used
+--- form
+J:A-mymoniker: DoSomething
+J:A:F:F:F-id-mymoniker: 789
+J:A:F-something-mymoniker: else
+J:ACTIONS: mymoniker
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 789
+        something: else
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F:F:F-id-mymoniker: 789
+  J:A:F-something-mymoniker: else
+  J:ACTIONS: mymoniker
+fragments: {}
+=== just validating
+---- form
+J:A-mymoniker: DoSomething
+J:A:F-id-mymoniker: 23
+J:A:F-something-mymoniker: else
+J:A-second: DoSomething
+J:VALIDATE: 1
+J:A:F-id-second: 42
+J:A:F-something-second: bla
+J:ACTIONS: mymoniker;second
+--- request
+path: ~
+state_variables: {}
+actions:
+  mymoniker:
+    moniker: mymoniker
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 23
+        something: else
+  second:
+    moniker: second
+    class: DoSomething
+    active: 1
+    arguments:
+        id: 42
+        something: bla
+just_validating: 1
+arguments:
+  J:A-mymoniker: DoSomething
+  J:A:F-id-mymoniker: 23
+  J:A:F-something-mymoniker: else
+  J:A-second: DoSomething
+  J:VALIDATE: 1
+  J:A:F-id-second: 42
+  J:A:F-something-second: bla
+  J:ACTIONS: mymoniker;second
+fragments: {}

Added: jifty/trunk/t/04-sessions.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/04-sessions.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,21 @@
+#!/usr/bin/perl 
+
+use warnings;
+use strict;
+
+use Test::More qw/no_plan/;
+use_ok('Jifty');
+Jifty->new( no_handle =>1 );
+
+use_ok('Jifty::Web::Session');
+
+my $s = Jifty::Web::Session->new();
+
+isa_ok($s,'Jifty::Web::Session');
+
+$s->load();
+is($s->get('foo'), undef);
+$s->set( foo => 'bar');
+is($s->get('foo'), 'bar');
+
+1;

Added: jifty/trunk/t/05-dispatcher.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/05-dispatcher.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+use Test::More skip_all => 'Not written yet';
+use_ok('Jifty::Dispatcher');
+use_ok('Jifty');
+ok(Jifty->new(no_handle => 1));
+my $d = Jifty::Dispatcher->new();
+
+can_ok($d,'on');
+
+
+ok(Jifty::Dispatcher::on( condition => sub { 1 }, action => sub {2}, priority => 25));
+my @entries = Jifty->dispatcher->entries();
+is (scalar @entries, 1);
+is (&{$entries[0]->{condition}},1);
+is (&{$entries[0]->{action}},2);
+
+ok(Jifty::Dispatcher::on( condition => sub { 1 }, action => sub {2}, priority => 25));
+ at entries = Jifty->dispatcher->entries();
+is (scalar @entries, 2);
+
+eval 'package Jifty::Dispatcher;  on url "foo", run { qq{xxx} }; ';
+
+ok(!$@, $@);
+ at entries = Jifty->dispatcher->entries();
+
+is (scalar @entries, 3);
+
+
+

Added: jifty/trunk/t/06-forms.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/06-forms.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,24 @@
+use warnings;
+use strict;
+
+use Jifty::Test tests => 11;
+
+use_ok ('Jifty::Web::Form::Field');
+
+can_ok('Jifty::Web::Form::Field', 'new');
+can_ok('Jifty::Web::Form::Field', 'name');
+
+my $field = Jifty::Web::Form::Field->new();
+
+
+# Form::Fields don't work without a framework
+is($field->name, undef);
+ok($field->name('Jesse'));
+is($field->name, 'Jesse');
+
+is($field->class, '');
+is($field->class('basic'),'basic');
+is($field->class(),'basic');
+is($field->name, 'Jesse');
+
+is ($field->type, 'text', "type defaults to text");

Added: jifty/trunk/t/07-limit-actions.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/07-limit-actions.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+=head1 DESCRIPTION
+
+Tests that Jifty->web->(allow|deny)_actions work; this is to
+limit what users can do with temporary credentials (LetMes, etc)
+
+=cut
+
+use Jifty::Test tests => 12;
+
+use_ok('Jifty::Web');
+can_ok('Jifty::Web', 'setup_session');
+can_ok('Jifty::Web', 'session');
+
+my $web = Jifty::Web->new();
+$web->setup_session;
+
+ok($web->is_allowed("Foo"), "Tasks default to positive limit");
+
+$web->allow_actions ( qr'.*' );
+ok($web->is_allowed("Foo"), "Positive limit doesn't cause negative limit");
+
+$web->deny_actions ( qr'.*' );
+ok(!$web->is_allowed("Foo"), "Later negative limit overrides");
+ 
+$web->allow_actions ( qr'.*' );
+ok($web->is_allowed("Foo"), "Even later positive limit overrides again");
+
+$web->deny_actions  ( qr'Foo' );
+ok(!$web->is_allowed("Foo"), "Regex negative limit");
+ok(!$web->is_allowed("FooBar"), "Matches anywhere");
+ok(!$web->is_allowed("ILikeFood"), "Matches anywhere");
+ok($web->is_allowed("Bar"), "Doesn't impact other positive");
+
+$web->allow_actions  ( 'ILikeFood' );
+ok($web->is_allowed("ILikeFood"), "Positive string exact match");
+
+1;

Modified: jifty/trunk/t/TestApp/t/00-model-User.t
==============================================================================
--- jifty/trunk/t/TestApp/t/00-model-User.t	(original)
+++ jifty/trunk/t/TestApp/t/00-model-User.t	Sun Mar 19 18:28:11 2006
@@ -10,7 +10,7 @@
 
 BEGIN {chdir "t/TestApp"}
 use lib '../../lib';
-use Jifty::Test tests => 11;
+use Jifty::Test tests => 12;
 
 # Make sure we can load the model
 use_ok('TestApp::Model::User');
@@ -25,6 +25,7 @@
 ok($id, "User create returned success");
 ok($o->id, "New User has valid id set");
 is($o->id, $id, "Create returned the right id");
+is($o->name, $$, "Created object has the right name");
 
 # And another
 $o->create( name => $$, email => $$ );

Added: jifty/trunk/t/TestApp/t/03-static.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp/t/03-static.t	Sun Mar 19 18:28:11 2006
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+BEGIN {chdir "t/TestApp"}
+use lib '../../lib';
+use Jifty::Test tests => 5;
+use Jifty::Test::WWW::Mechanize;
+
+my $server  = Jifty::Test->make_server;
+
+isa_ok($server, 'Jifty::Server');
+
+my $URL     = $server->started_ok;
+my $mech    = Jifty::Test::WWW::Mechanize->new();
+
+for my $image (qw(pony.jpg)) {
+    $mech->get_ok("$URL/images/$image");
+    my $res = $mech->response;
+    
+    is($res->header('Content-Type'), 'image/jpeg', 'Content-Type is image/jpeg');
+    like($res->status_line, qr/^200 Jifty OK$/, 'Status line is from Mason');
+}
+


More information about the Jifty-commit mailing list