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 06:11 am

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

[commit: http://hg.dwscoalition.org/dw-free/rev/77e3ca55ae33]

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

More cleanup: standardize testing framework (watch, trust, friend)

Patch by [personal profile] kareila.

Files modified:
  • bin/test/test-wtf
  • t/wtf.t
--------------------------------------------------------------------------------
diff -r a884cd53e958 -r 77e3ca55ae33 bin/test/test-wtf
--- a/bin/test/test-wtf	Fri Apr 23 22:44:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,521 +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 {
-    $dbh->do( 'DELETE FROM wt_edges WHERE from_userid = ? OR to_userid = ?', undef, $_, $_ )
-        foreach ( $u1->id, $u2->id, $uc->id );
-    $dbh->do( 'DELETE FROM trust_groups WHERE userid = ?', undef, $_ )
-        foreach ( $u1->id, $u2->id, $uc->id );
-    $dbh->do( 'DELETE FROM reluser WHERE userid = ? OR targetid = ?', undef, $_, $_ )
-        foreach ( $u1->id, $u2->id, $uc->id );
-
-    foreach my $u ( $u1, $u2, $uc ) {
-        foreach my $mc ( qw/ trust_group wt_list / ) {
-            LJ::memcache_kill( $u, $mc );
-        }
-    }
-}
-
-# return which bits are on (helper sub)
-sub bits {
-    my $mask = shift;
-    return grep { $mask & ( 1<<$_ ) } 0..63;
-}
-
-################################################################################
-push @tests, [ 'add to watching list', sub
-{
-    rst();
-    $u1->add_edge( $u2, watch => { fgcolor => 123, bgcolor => 321, nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND fgcolor = ? AND bgcolor = ? AND groupmask = ?',
-            undef, $u1->id, $u2->id, 123, 321, 1<<61
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to trust list', sub
-{
-    rst();
-    $u1->add_edge( $u2, trust => { mask => 30004, nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
-            undef, $u1->id, $u2->id, 30004 | 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list empty', sub
-{
-    my @ids = $u1->watched_userids;
-    return scalar( @ids ) == 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list one member', sub
-{
-    my @ids = $u1->trusted_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust_list one member', sub
-{
-    my $ids = $u1->trust_list;
-    return scalar( keys %$ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'mutually trust list empty', sub
-{
-    my @ids = $u1->mutually_trusted_userids;
-    return scalar( @ids ) == 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to trust list reverse', sub
-{
-    $u2->add_edge( $u1, trust => { mask => 30008, nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
-            undef, $u2->id, $u1->id, 30008 | 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'mutually trust lists one member', sub
-{
-    my @ids = $u1->mutually_trusted_userids;
-    my @ids2 = $u2->mutually_trusted_userids;
-    return ( scalar( @ids ) == 1 && scalar( @ids2 ) == 1 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'remove from trust list', sub
-{
-    $u1->remove_edge( $u2, trust => { nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
-            undef, $u1->id, $u2->id, 30004 | 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row == 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list empty', sub
-{
-    my @ids = $u1->trusted_userids;
-    return scalar( @ids ) == 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust_list empty', sub
-{
-    my $ids = $u1->trust_list;
-    return scalar( keys %$ids ) == 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to both lists', sub
-{
-    $u1->add_edge( $u2, watch => { nonotify => 1 }, trust => { nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
-            undef, $u1->id, $u2->id, ( 1 << 61 ) | 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list one member', sub
-{
-    my @ids = $u1->watched_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list one member', sub
-{
-    my @ids = $u1->trusted_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list reverse one member', sub
-{
-    my @ids = $u2->watched_by_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list reverse one member', sub
-{
-    my @ids = $u2->trusted_by_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'get full watch list', sub
-{
-    $u1->add_edge( $u1, trust => { nonotify => 1 } );
-
-    my $hr = $u1->watch_list;
-    return scalar( keys %$hr ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to both lists (one by one)', sub
-{
-    rst();
-    $u1->add_edge( $u2, watch => { nonotify => 1 } );
-    $u1->add_edge( $u2, trust => { nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
-            undef, $u1->id, $u2->id, ( 1 << 61 ) | 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list one member', sub
-{
-    my @ids = $u1->watched_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list one member', sub
-{
-    my @ids = $u1->trusted_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list reverse one member', sub
-{
-    my @ids = $u2->watched_by_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list reverse one member', sub
-{
-    my @ids = $u2->trusted_by_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'get full watch list', sub
-{
-    my $hr = $u1->watch_list;
-    return scalar( keys %$hr ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to trust and watch lists', sub
-{
-    rst();
-    $u1->add_edge( $u2, trust => { mask => 30004, nonotify => 1 }, watch => { nonotify => 1} );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
-            undef, $u1->id, $u2->id
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'remove from watch list', sub
-{
-    $u1->remove_edge( $u2, watch => { nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
-            undef, $u1->id, $u2->id
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'watching list empty', sub
-{
-    my @ids = $u1->watched_userids;
-    return scalar( @ids ) == 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'trust list one member', sub
-{
-    my @ids = $u1->trusted_userids;
-    return scalar( @ids ) == 1 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to watch list with colors', sub
-{
-    rst();
-    $u1->add_edge( $u2, watch => { fgcolor => 255, bgcolor => 255, nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
-            undef, $u1->id, $u2->id
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'validate colors', sub
-{
-    my $hr = $u1->watch_list;
-    die unless scalar( keys %$hr ) == 1 ? 1 : 0;
-    return ( $hr->{$u2->id}->{fgcolor} eq '#0000ff' && $hr->{$u2->id}->{bgcolor} eq '#0000ff' ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to watch list again', sub
-{
-    $u1->add_edge( $u2, watch => { nonotify => 1 } );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
-            undef, $u1->id, $u2->id
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'validate colors again', sub
-{
-    my $hr = $u1->watch_list;
-    die unless scalar( keys %$hr ) == 1 ? 1 : 0;
-    return ( $hr->{$u2->id}->{fgcolor} eq '#0000ff' && $hr->{$u2->id}->{bgcolor} eq '#0000ff' ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'create trust group', sub
-{
-    rst();
-    my $id = $u1->create_trust_group( groupname => 'foo group', sortorder => 10, is_public => 1 );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM trust_groups WHERE userid = ? AND groupname = ? AND sortorder = ? AND is_public = ?',
-            undef, $u1->id, 'foo group', 10, 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'get trust group', sub
-{
-    my $grp = $u1->trust_groups;
-    return scalar( keys %$grp ) > 0 ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'edit trust group', sub
-{
-    $u1->edit_trust_group( id => 1, groupname => 'bar group' );
-    my $row = $dbh->selectrow_array(
-            'SELECT COUNT(*) FROM trust_groups WHERE userid = ? AND groupname = ? AND sortorder = ? AND is_public = ?',
-            undef, $u1->id, 'bar group', 10, 1
-        );
-    die $dbh->errstr if $dbh->err;
-    return ( $row > 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'get trust group again', sub
-{
-    my $grp = $u1->trust_groups;
-    return ( $grp->{1}->{groupname} eq 'bar group' ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'validate trustmask == 1', sub
-{
-    rst();
-
-    # have to create a group with a known id for these tests
-    $u1->edit_trust_group( id => 1, groupname => 'bar group', _force_create => 1 );
-
-    $u1->add_edge( $u2, trust => { nonotify => 1 } );
-    return ( $u1->trustmask( $u2 ) == 1 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'validate nobody in group 1', sub
-{
-    my $ids = $u1->trust_group_members( id => 1 );
-    return ( scalar ( keys %$ids ) == 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add to group, validate trustmask == 3', sub
-{
-    $u1->edit_trustmask( $u2, add => 1 );
-    return ( $u1->trustmask( $u2 ) == 3 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'validate in group 1', sub
-{
-    my $ids = $u1->trust_group_members( id => 1 );
-    return ( scalar ( keys %$ids ) == 1 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add two more groups', sub
-{
-    $u1->edit_trustmask( $u2, add => [ 1, 3 ] );
-    return ( $u1->trustmask( $u2 ) == 11 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'remove group', sub
-{
-    $u1->edit_trustmask( $u2, remove => [ 1 ] );
-    return ( $u1->trustmask( $u2 ) == 9 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'set groups', sub
-{
-    $u1->edit_trustmask( $u2, set => [ 4, 3 ] );
-    return ( $u1->trustmask( $u2 ) == 25 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'test contains', sub
-{
-    $u1->trust_group_contains( $u2, 3 ) == 1 or return 0;
-    $u1->trust_group_contains( $u2, 4 ) == 1 or return 0;
-    $u1->trust_group_contains( $u2, 5 ) == 0 or return 0;
-    return 1;
-} ];
-
-
-################################################################################
-push @tests, [ 'delete trust group 3', sub
-{
-    # have to create a group with a known id for these tests
-    $u1->edit_trust_group( id => 3, groupname => 'bar group 3', _force_create => 1 );
-
-    $u1->trust_group_contains( $u2, 3 ) == 1 or return 0;
-    $u1->trust_group_contains( $u2, 4 ) == 1 or return 0;
-    $u1->trust_group_contains( $u2, 5 ) == 0 or return 0;
-
-    # now delete the group
-    $u1->delete_trust_group( name => 'bar group 3' ) or return 0;
-
-    $u1->trust_group_contains( $u2, 3 ) == 0 or return 0;
-    $u1->trust_group_contains( $u2, 4 ) == 1 or return 0;
-    $u1->trust_group_contains( $u2, 5 ) == 0 or return 0;
-
-    # validate group doesn't fetch
-    $u1->trust_groups( name => 'bar group 3' ) and return 0;
-
-    return 1;
-} ];
-
-################################################################################
-push @tests, [ 'clear groups', sub
-{
-    $u1->edit_trustmask( $u2, set => [] );
-    return ( $u1->trustmask( $u2 ) == 1 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'reset, add mask', sub
-{
-    rst();
-    $u1->add_edge( $u2, trust => { mask => 12, nonotify => 1 } );
-    return ( $u1->trustmask( $u2 ) == 13 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'add edge again, test mask', sub
-{
-    $u1->add_edge( $u2, trust => { nonotify => 1 } );
-    return ( $u1->trustmask( $u2 ) == 13 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'allowed to watch and trust', sub
-{
-    return ( $u1->can_watch && $u2->can_trust ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'allowed to watch and trust the other', sub
-{
-    return ( $u1->can_watch( $u2 ) && $u2->can_trust( $u2 ) ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'join community', sub
-{
-    rst();
-    $u1->add_edge( $uc, member => {} );
-    return ( scalar( $uc->member_userids ) == 1 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'community watch list has zero', sub
-{
-    return ( scalar( keys %{ $uc->watch_list } ) == 0 ) ? 1 : 0;
-} ];
-
-################################################################################
-push @tests, [ 'community watch list has one', sub
-{
-    return ( scalar( keys %{ $uc->watch_list( community_okay => 1 ) } ) == 1 ) ? 1 : 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 a884cd53e958 -r 77e3ca55ae33 t/wtf.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/t/wtf.t	Fri Apr 23 23:16:37 2010 -0700
@@ -0,0 +1,308 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More;
+use lib "$ENV{LJHOME}/cgi-bin";
+require 'ljlib.pl';
+require 'communitylib.pl';
+use LJ::Test qw (temp_user temp_comm);
+
+plan tests => 67;
+
+my $u1 = temp_user();
+my $u2 = temp_user();
+my $uc = temp_comm();
+ok( $uc->is_community, 'uc is community' );
+
+my ( $row, $hr, @ids );
+my $dbh = LJ::get_db_writer();
+
+# reset, delete, etc
+sub rst {
+    $dbh->do( 'DELETE FROM wt_edges WHERE from_userid = ? OR to_userid = ?', undef, $_, $_ )
+        foreach ( $u1->id, $u2->id, $uc->id );
+    $dbh->do( 'DELETE FROM trust_groups WHERE userid = ?', undef, $_ )
+        foreach ( $u1->id, $u2->id, $uc->id );
+    $dbh->do( 'DELETE FROM reluser WHERE userid = ? OR targetid = ?', undef, $_, $_ )
+        foreach ( $u1->id, $u2->id, $uc->id );
+
+    foreach my $u ( $u1, $u2, $uc ) {
+        foreach my $mc ( qw/ trust_group wt_list / ) {
+            LJ::memcache_kill( $u, $mc );
+        }
+    }
+}
+
+# print error and exit if database fails
+sub dberr {
+    if ( $dbh->err ) {
+        diag( $dbh->errstr );
+        exit 1;
+    }
+}
+
+################################################################################
+rst();
+$u1->add_edge( $u2, watch => { fgcolor => 123, bgcolor => 321, nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND fgcolor = ? AND bgcolor = ? AND groupmask = ?',
+     undef, $u1->id, $u2->id, 123, 321, 1<<61 );
+dberr();
+ok( $row > 0, 'add to watch list' );
+
+################################################################################
+rst();
+$u1->add_edge( $u2, trust => { mask => 30004, nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
+     undef, $u1->id, $u2->id, 30004 | 1 );
+dberr();
+ok( $row > 0, 'add to trust list' );
+
+################################################################################
+@ids = $u1->watched_userids;
+ok( scalar( @ids ) == 0, 'watched_userids empty' );
+
+@ids = $u1->trusted_userids;
+ok( scalar( @ids ) == 1, 'trusted_userids one member' );
+
+$hr = $u1->trust_list;
+ok( scalar( keys %$hr ) == 1, 'trust_list one member' );
+
+@ids = $u1->mutually_trusted_userids;
+ok( scalar( @ids ) == 0, 'mutually_trusted_userids empty' );
+
+################################################################################
+$u2->add_edge( $u1, trust => { mask => 30008, nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
+     undef, $u2->id, $u1->id, 30008 | 1 );
+dberr();
+ok( $row > 0, 'add to trust list reverse' );
+
+@ids = $u1->mutually_trusted_userids;
+ok( scalar( @ids ) == 1, 'u1 mutually_trusted_userids one member' );
+
+@ids = $u2->mutually_trusted_userids;
+ok( scalar( @ids ) == 1, 'u2 mutually_trusted_userids one member' );
+
+################################################################################
+$u1->remove_edge( $u2, trust => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
+     undef, $u1->id, $u2->id, 30004 | 1 );
+dberr();
+ok( $row == 0, 'remove from trust list' );
+
+@ids = $u1->trusted_userids;
+ok( scalar( @ids ) == 0, 'trusted_userids empty' );
+
+$hr = $u1->trust_list;
+ok( scalar( keys %$hr ) == 0, 'trust_list empty' );
+
+################################################################################
+$u1->add_edge( $u2, watch => { nonotify => 1 }, trust => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
+     undef, $u1->id, $u2->id, ( 1 << 61 ) | 1 );
+dberr();
+ok( $row > 0, 'add to both lists (simultaneous)' );
+
+################################################################################
+@ids = $u1->watched_userids;
+ok( scalar( @ids ) == 1, 'u1 watched_userids one member' );
+
+@ids = $u1->trusted_userids;
+ok( scalar( @ids ) == 1, 'u1 trusted_userids one member' );
+
+@ids = $u2->watched_by_userids;
+ok( scalar( @ids ) == 1, 'u2 watched_by_userids one member' );
+
+@ids = $u2->trusted_by_userids;
+ok( scalar( @ids ) == 1, 'u2 trusted_by_userids one member' );
+
+################################################################################
+$u1->add_edge( $u1, trust => { nonotify => 1 } );
+
+$hr = $u1->watch_list;
+ok( scalar( keys %$hr ) == 1, 'watch_list one member' );
+
+################################################################################
+rst();
+$u1->add_edge( $u2, watch => { nonotify => 1 } );
+$u1->add_edge( $u2, trust => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ? AND groupmask = ?',
+     undef, $u1->id, $u2->id, ( 1 << 61 ) | 1 );
+dberr();
+ok( $row > 0, 'add to both lists (one by one)' );
+
+################################################################################
+@ids = $u1->watched_userids;
+ok( scalar( @ids ) == 1, 'u1 watched_userids one member' );
+
+@ids = $u1->trusted_userids;
+ok( scalar( @ids ) == 1, 'u1 trusted_userids one member' );
+
+@ids = $u2->watched_by_userids;
+ok( scalar( @ids ) == 1, 'u2 watched_by_userids one member' );
+
+@ids = $u2->trusted_by_userids;
+ok( scalar( @ids ) == 1, 'u2 trusted_by_userids one member' );
+
+$hr = $u1->watch_list;
+ok( scalar( keys %$hr ) == 1, 'watch_list one member' );
+
+################################################################################
+rst();
+$u1->add_edge( $u2, trust => { mask => 30004, nonotify => 1 }, watch => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
+     undef, $u1->id, $u2->id );
+dberr();
+ok( $row > 0, 'add to both lists with trustmask' );
+
+################################################################################
+$u1->remove_edge( $u2, watch => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
+     undef, $u1->id, $u2->id );
+dberr();
+ok( $row > 0, 'remove from watch list; still on trust list' );
+
+################################################################################
+@ids = $u1->watched_userids;
+ok( scalar( @ids ) == 0, 'watched_userids empty' );
+
+@ids = $u1->trusted_userids;
+ok( scalar( @ids ) == 1, 'trusted_userids one member' );
+
+################################################################################
+rst();
+$u1->add_edge( $u2, watch => { fgcolor => 255, bgcolor => 255, nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
+     undef, $u1->id, $u2->id );
+dberr();
+ok( $row > 0, 'add to watch list with colors' );
+
+$hr = $u1->watch_list;
+ok( scalar( keys %$hr ) == 1, 'watch_list one member' );
+is( $hr->{$u2->id}->{fgcolor}, '#0000ff', 'fgcolor ok' );
+is( $hr->{$u2->id}->{bgcolor}, '#0000ff', 'bgcolor ok' );
+
+################################################################################
+$u1->add_edge( $u2, watch => { nonotify => 1 } );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM wt_edges WHERE from_userid = ? AND to_userid = ?',
+     undef, $u1->id, $u2->id );
+dberr();
+ok( $row > 0, 'readd to watch list' );
+
+$hr = $u1->watch_list;
+ok( scalar( keys %$hr ) == 1, 'watch_list one member' );
+is( $hr->{$u2->id}->{fgcolor}, '#0000ff', 'fgcolor still ok' );
+is( $hr->{$u2->id}->{bgcolor}, '#0000ff', 'bgcolor still ok' );
+
+################################################################################
+rst();
+$u1->create_trust_group( groupname => 'foo group', sortorder => 10, is_public => 1 );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM trust_groups WHERE userid = ? AND groupname = ? AND sortorder = ? AND is_public = ?',
+     undef, $u1->id, 'foo group', 10, 1 );
+dberr();
+ok( $row > 0, 'create trust group' );
+
+$hr = $u1->trust_groups;
+ok( scalar( keys %$hr ) > 0, 'get trust group' );
+
+################################################################################
+$u1->edit_trust_group( id => 1, groupname => 'bar group' );
+$row = $dbh->selectrow_array(
+     'SELECT COUNT(*) FROM trust_groups WHERE userid = ? AND groupname = ? AND sortorder = ? AND is_public = ?',
+     undef, $u1->id, 'bar group', 10, 1 );
+dberr();
+ok( $row > 0, 'edit trust group' );
+
+$hr = $u1->trust_groups;
+is( $hr->{1}->{groupname}, 'bar group', 'check new group name' );
+
+################################################################################
+rst();
+
+# have to create a group with a known id for these tests
+$u1->edit_trust_group( id => 1, groupname => 'bar group', _force_create => 1 );
+
+$u1->add_edge( $u2, trust => { nonotify => 1 } );
+ok( $u1->trustmask( $u2 ) == 1, 'validate trustmask == 1' );
+
+$hr = $u1->trust_group_members( id => 1 );
+ok( scalar ( keys %$hr ) == 0, 'validate nobody in group 1' );
+
+################################################################################
+$u1->edit_trustmask( $u2, add => 1 );
+ok( $u1->trustmask( $u2 ) == 3, 'add to group, validate trustmask == 3' );
+
+$hr = $u1->trust_group_members( id => 1 );
+ok( scalar ( keys %$hr ) == 1, 'validate one member in group 1' );
+
+################################################################################
+$u1->edit_trustmask( $u2, add => [ 1, 3 ] );
+ok( $u1->trustmask( $u2 ) == 11, 'add more groups' );
+
+$u1->edit_trustmask( $u2, remove => [ 1 ] );
+ok( $u1->trustmask( $u2 ) == 9, 'remove one group' );
+
+$u1->edit_trustmask( $u2, set => [ 4, 3 ] );
+ok( $u1->trustmask( $u2 ) == 25, 'set groups' );
+
+ok( $u1->trust_group_contains( $u2, 3 ) == 1, 'group 3 contains u2' );
+ok( $u1->trust_group_contains( $u2, 4 ) == 1, 'group 4 contains u2' );
+ok( $u1->trust_group_contains( $u2, 5 ) == 0, 'group 5 does not contain u2' );
+
+################################################################################
+
+# have to create a group with a known id for these tests
+$u1->edit_trust_group( id => 3, groupname => 'bar group 3', _force_create => 1 );
+
+ok( $u1->trust_group_contains( $u2, 3 ) == 1, 'group 3 contains u2' );
+ok( $u1->trust_group_contains( $u2, 4 ) == 1, 'group 4 contains u2' );
+ok( $u1->trust_group_contains( $u2, 5 ) == 0, 'group 5 does not contain u2' );
+
+# now delete the group
+ok( $u1->delete_trust_group( name => 'bar group 3' ), 'delete trust group 3' );
+
+ok( $u1->trust_group_contains( $u2, 3 ) == 0, 'group 3 does not contain u2' );
+ok( $u1->trust_group_contains( $u2, 4 ) == 1, 'group 4 contains u2' );
+ok( $u1->trust_group_contains( $u2, 5 ) == 0, 'group 5 does not contain u2' );
+
+ok( ! $u1->trust_groups( name => 'bar group 3' ), 'validate group is gone' );
+
+$u1->edit_trustmask( $u2, set => [] );
+ok( $u1->trustmask( $u2 ) == 1, 'clear groups' );
+
+################################################################################
+rst();
+$u1->add_edge( $u2, trust => { mask => 12, nonotify => 1 } );
+ok( $u1->trustmask( $u2 ) == 13, 'add with trust mask' );
+
+$u1->add_edge( $u2, trust => { nonotify => 1 } );
+ok( $u1->trustmask( $u2 ) == 13, 'add edge again, test mask' );
+
+################################################################################
+ok( $u1->can_watch && $u2->can_trust, 'allowed to watch and trust' );
+ok( $u1->can_watch( $u2 ) && $u2->can_trust( $u1 ),
+    'allowed to watch and trust the other' );
+
+################################################################################
+rst();
+$u1->add_edge( $uc, member => {} );
+ok( scalar( $uc->member_userids ) == 1, 'join community' );
+
+$hr = $uc->watch_list;
+ok( scalar( keys %$hr ) == 0, 'community watch list has zero' );
+
+$hr = $uc->watch_list( community_okay => 1 );
+ok( scalar( keys %$hr ) == 1, 'community watch list has one' );
+
+################################################################################
--------------------------------------------------------------------------------

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