[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