fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2010-04-24 05:35 am

[dw-free] move bin/test/* files into t/*

[commit: http://hg.dwscoalition.org/dw-free/rev/099e36e57f4f]

http://bugs.dwscoalition.org/show_bug.cgi?id=2227

More cleanup: standardize testing framework (content filters)

Patch by [personal profile] kareila.

Files modified:
  • bin/test/test-filters
  • t/content-filters.t
--------------------------------------------------------------------------------
diff -r fb4153b9aa7c -r 099e36e57f4f bin/test/test-filters
--- a/bin/test/test-filters	Fri Apr 23 11:50:13 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-#!/usr/bin/perl
-# yes, there are so many better testing modules than just doing this in a crappy
-# half-ass way.
-
-use strict;
-use lib "$ENV{LJHOME}/cgi-bin";
-require 'ljlib.pl';
-
-use Data::Dumper;
-
-# much time passes ...
-my $u1 = LJ::load_user( 'tester0394' ) or die 'no tester0394';
-my $u2 = LJ::load_user( 'tester0395' ) or die 'no tester0395';
-my $uc = LJ::load_user( 'testcomm' ) or die 'no testcomm';
-$uc->is_community or die 'testcomm not a community :(';
-
-my @tests;
-print "Beginning tests...\n";
-print "    u1 = " . $u1->user . '(' . $u1->id . ")\n";
-print "    u2 = " . $u2->user . '(' . $u2->id . ")\n";
-print "    uc = " . $uc->user . '(' . $uc->id . ")\n\n";
-
-my $dbh = LJ::get_db_writer();
-
-# reset, delete, etc
-sub rst {
-    foreach my $u ( $u1, $u2, $uc ) {
-        foreach my $tbl ( qw/ content_filters content_filter_data / ) {
-            $u->do( "DELETE FROM $tbl WHERE userid = ?", undef, $u->id );
-        }
-
-        foreach my $mc ( qw/ content_filters / ) {
-            LJ::memcache_kill( $u, $mc );
-        }
-    }
-}
-
-################################################################################
-push @tests, [ 'no filters', sub
-{
-    rst();
-    my @f = $u1->content_filters;
-    return $#f == -1;  # empty list
-} ];
-
-
-################################################################################
-push @tests, [ 'make empty filter', sub
-{
-    my $fid = $u1->create_content_filter( name => 'foob', public => 1, sortorder => 13 );
-    return $fid > 0;
-} ];
-
-
-################################################################################
-push @tests, [ 'get empty filter', sub
-{
-    my $filter = $u1->content_filters( name => 'foob' );
-    return $filter->name eq 'foob';
-} ];
-
-
-################################################################################
-push @tests, [ 'make another filter', sub
-{
-    my $fid = $u1->create_content_filter( name => 'isfd', public => 0, sortorder => 31 );
-    my $f = $u1->content_filters( id => $fid );
-    return $fid > 0 && $f->name eq 'isfd';
-} ];
-
-
-################################################################################
-push @tests, [ 'get second filter', sub
-{
-    my $filter = $u1->content_filters( name => 'isfd' );
-    return $filter->name eq 'isfd';
-} ];
-
-
-################################################################################
-push @tests, [ 'get bogus filter', sub
-{
-    my $filter = $u1->content_filters( name => 'sodf' );
-    return ! defined $filter;
-} ];
-
-
-################################################################################
-push @tests, [ 'get both filters', sub
-{
-    my @filters = $u1->content_filters;
-    return $#filters == 1;
-} ];
-
-
-################################################################################
-push @tests, [ 'get data, is empty', sub
-{
-    my $f = $u1->content_filters( name => 'foob' );
-    my $data = $f->data;
-    return defined $data && ref $data eq 'HASH' && scalar keys %$data == 0;
-} ];
-
-
-################################################################################
-push @tests, [ 'add a row', sub
-{
-    my $f = $u1->content_filters( name => 'foob' );
-    my $rv = $f->add_row( userid => $u2->id );
-    return $rv == 1;
-} ];
-
-
-################################################################################
-push @tests, [ 'get data, has u2', sub
-{
-    my $f = $u1->content_filters( name => 'foob' );
-    my $data = $f->data;
-    return $data && exists $data->{$u2->id};
-} ];
-
-
-################################################################################
-push @tests, [ 'delete filter', sub
-{
-    my $f = $u1->delete_content_filter( name => 'foob' );
-    return $f > 0;
-} ];
-
-
-################################################################################
-$| = 1;
-my $id = 1;
-foreach my $test ( @tests ) {
-    print "Test #$id: $test->[0]: ";
-    my $rv = 0;
-    eval {
-        $rv = $test->[1]->();
-    };
-    if ( $@ || $rv == 0 ) {
-        print "failure!\n\n\$@ = $@\n\$! = $!\nrv = $rv\n\n";
-        die;
-    } else {
-        print "success\n";
-    }
-    $id++;
-}
diff -r fb4153b9aa7c -r 099e36e57f4f t/content-filters.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/t/content-filters.t	Fri Apr 23 22:40:12 2010 -0700
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More;
+use lib "$ENV{LJHOME}/cgi-bin";
+require 'ljlib.pl';
+use LJ::Test qw (temp_user);
+
+plan tests => 12;
+
+my $u1 = temp_user();
+my $u2 = temp_user();
+
+my ( $filter, $fid, $data, @f );
+
+# reset, delete, etc
+sub rst {
+    foreach my $u ( $u1, $u2 ) {
+        foreach my $tbl ( qw/ content_filters content_filter_data / ) {
+            $u->do( "DELETE FROM $tbl WHERE userid = ?", undef, $u->id );
+        }
+
+        foreach my $mc ( qw/ content_filters / ) {
+            LJ::memcache_kill( $u, $mc );
+        }
+    }
+}
+
+################################################################################
+rst();
+@f = $u1->content_filters;
+ok( $#f == -1, 'no filters' );  # empty list
+
+$fid = $u1->create_content_filter( name => 'foob', public => 1, sortorder => 13 );
+ok( $fid > 0, 'make empty filter' );
+
+$filter = $u1->content_filters( name => 'foob' );
+is( $filter->name, 'foob', 'lookup filter 1 by name' );
+
+################################################################################
+$fid = $u1->create_content_filter( name => 'isfd', public => 0, sortorder => 31 );
+ok( $fid > 0, 'make another filter' );
+
+$filter = $u1->content_filters( id => $fid );
+is( $filter->name, 'isfd', 'lookup filter 2 by id' );
+
+$filter = $u1->content_filters( name => 'isfd' );
+is( $filter->name, 'isfd', 'lookup filter 2 by name' );
+
+################################################################################
+$filter = $u1->content_filters( name => 'sodf' );
+ok( ! defined $filter, 'get bogus filter' );
+
+@f = $u1->content_filters;
+ok( $#f == 1, 'get both filters' );
+
+################################################################################
+$filter = $u1->content_filters( name => 'foob' );
+$data = $filter->data;
+ok( defined $data && ref $data eq 'HASH' && scalar keys %$data == 0,
+    'get data, is empty' );
+
+################################################################################
+$filter = $u1->content_filters( name => 'foob' );
+ok( $filter->add_row( userid => $u2->id ) == 1, 'add a row' );
+
+$filter = $u1->content_filters( name => 'foob' );
+$data = $filter->data;
+ok( $data && exists $data->{$u2->id}, 'get data, has u2' );
+
+################################################################################
+$fid = $u1->delete_content_filter( name => 'foob' );
+ok( $fid > 0, 'delete filter' );
+
+################################################################################
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org