[Jifty-commit] r4691 - in jifty/trunk/t/TestApp-JiftyJS:
lib/TestApp/JiftyJS t
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Dec 14 07:42:55 EST 2007
Author: gugod
Date: Fri Dec 14 07:42:55 2007
New Revision: 4691
Added:
jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/Action/Play.pm
jifty/trunk/t/TestApp-JiftyJS/t/00-action-Play.t
jifty/trunk/t/TestApp-JiftyJS/t/5-action.t
Modified:
jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/View.pm
Log:
Add a "Play" action with various argument schema, and a test to test
javascript behaviour based on the schema.
The first test is to test if ajax canonicalized setting works.
Added: jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/Action/Play.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/Action/Play.pm Fri Dec 14 07:42:55 2007
@@ -0,0 +1,58 @@
+use strict;
+use warnings;
+
+=head1 NAME
+
+TestApp::JiftyJS::Action::Play
+
+=cut
+
+package TestApp::JiftyJS::Action::Play;
+use base qw/TestApp::JiftyJS::Action Jifty::Action/;
+
+use Jifty::Param::Schema;
+use Jifty::Action schema {
+ param vanilla => type is 'text';
+
+ param mood =>
+ type is 'text',
+ ajax validates,
+ valid are qw(happy angry normal);
+
+ param tags =>
+ type is 'text',
+ ajax canonicalizes;
+};
+
+=head2 take_action
+
+=cut
+
+sub take_action {
+ my $self = shift;
+ $self->report_success if not $self->result->failure;
+ return 1;
+}
+
+=head2 report_success
+
+=cut
+
+sub report_success {
+ my $self = shift;
+ # Your success message here
+ $self->result->message('Success');
+}
+
+sub canonicalize_tags {
+ my ($self, $value) = @_;
+ my $v = lc($value);
+ $v =~ s/\s+/ /g;
+ $v =~ s/^\s*//g;
+ $v =~ s/\s*$//g;
+
+ return $v;
+}
+
+1;
+
Modified: jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/View.pm
==============================================================================
--- jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/View.pm (original)
+++ jifty/trunk/t/TestApp-JiftyJS/lib/TestApp/JiftyJS/View.pm Fri Dec 14 07:42:55 2007
@@ -133,4 +133,16 @@
hyperlink( label => "Go to Returner", url => "/tangent/returner", id => 'to-returner' );
};
+
+### action field test templates
+
+template '/act/play' => page {
+ my $a = new_action(class => 'Play');
+ form {
+ render_action($a);
+ form_submit( label => "Submit" );
+ };
+};
+
+
1;
Added: jifty/trunk/t/TestApp-JiftyJS/t/00-action-Play.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-JiftyJS/t/00-action-Play.t Fri Dec 14 07:42:55 2007
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+use warnings;
+use strict;
+
+=head1 DESCRIPTION
+
+A (very) basic test harness for the Play action.
+
+=cut
+
+use Jifty::Test tests => 1;
+
+# Make sure we can load the action
+use_ok('TestApp::JiftyJS::Action::Play');
+
Added: jifty/trunk/t/TestApp-JiftyJS/t/5-action.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-JiftyJS/t/5-action.t Fri Dec 14 07:42:55 2007
@@ -0,0 +1,34 @@
+# Test Action
+
+use strict;
+use warnings;
+use lib 't/lib';
+use Jifty::SubTest;
+use Jifty::Test tests => 6;
+use Jifty::Test::WWW::Selenium;
+use utf8;
+
+my $server = Jifty::Test->make_server;
+my $sel = Jifty::Test::WWW::Selenium->rc_ok($server);
+my $URL = $server->started_ok;
+
+{
+ # Test "Play" action's parameter.
+
+ $sel->open_ok("/act/play");
+
+ my $tags = '//input[contains(@class, "argument-tags")]';
+ my $mood = '//input[contains(@class, "argument-mood")]';
+
+ # Tag is ajax canonicalized to lowercase.
+
+ $sel->set_speed(1000);
+ $sel->click_ok($tags);
+ $sel->type_ok($tags, "FOO");
+ $sel->fire_event($tags, "blur");
+
+ my $tag_value = $sel->get_value($tags);
+ is $tag_value, 'foo', "Tags are canonicalized to lower-case";
+}
+
+$sel->stop;
More information about the Jifty-commit
mailing list