#!perl #!perl use strict; use warnings; use Test::More 'no_plan'; BEGIN { use_ok("Rubric::Config", 't/config/rubric.yml'); } BEGIN { use_ok("Rubric::EntryTag"); } BEGIN { use_ok("Rubric::User"); } use lib 't/lib'; use Rubric::Test::DBSetup; load_test_data_ok('basic'); # entrytag->related_tags { # global entrytag query my $related_tags = Rubric::EntryTag->related_tags([ '@private' ]); is_deeply( $related_tags, [ ], 'nothing is globally related to @private without a login', ); } # entrytag->related_tags_counted { # global entrytag query my $related_tags = Rubric::EntryTag->related_tags_counted([ '@private' ]); is_deeply( $related_tags, [ ], 'nothing is globally related_counted to @private', ); } # user->related_tags { # user query, with no context of logged in user my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags([ '@private' ]); is_deeply( $related_tags, [ ], 'nothing is related to @private without a login', ); } { # user query, with other user asking my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags([ '@private' ], { user => 'jjj' }); is_deeply( $related_tags, [ ], q(nothing is related to @private if you're the wrong user), ); } { # user query, with user himsefl asking my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags([ '@private' ], {user => 'mxlptlyk'}); is_deeply( $related_tags, [ qw(plans) ], q(if you ask about your own @private entries, you may know), ); } # user->related_tags_counted { # user query, with no context of logged in user my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags_counted([ '@private' ]); is_deeply( $related_tags, [ ], 'nothing is related to @private without a login', ); } { # user query, with other user asking my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags_counted( [ '@private' ], { user => 'jjj' } ); is_deeply( $related_tags, [ ], q(nothing is related to @private if you're the wrong user), ); } { # user query, with user himsefl asking my $user = Rubric::User->retrieve('mxlptlyk'); my $related_tags = $user->related_tags_counted( [ '@private' ], {user => 'mxlptlyk'} ); is_deeply( $related_tags, [ [ plans => 1 ] ], q(if you ask about your own @private entries, you may know), ); } # entry->recent_tags_counted { my $related_tags = Rubric::Entry->recent_tags_counted; ok( !(grep { $_->[0] eq 'plans' } @$related_tags), q(tags contained only in private entries are not leaked) ); }