# -*-perl-*- use strict; use Test::More 'no_plan'; use lib "$ENV{LJHOME}/cgi-bin"; require 'ljlib.pl'; my %correct = (); $correct{0} = []; $correct{$_} = [1] foreach 1 .. 4; $correct{$_} = [1,4] foreach 5 .. 7; $correct{$_} = [1,4,7] foreach 8 ..10; $correct{11} = [1,4,8]; $correct{12} = [1,5,8]; $correct{13} = [1,5,9]; $correct{14} = [1,5,10]; $correct{15} = [1,6,10]; $correct{16} = [1,6,11]; $correct{17} = [1,6,12]; $correct{18} = [1,7,12]; $correct{19} = [1,7,13]; $correct{$_} = [1,7,14] foreach 20..25; foreach my $total_posts (0..25) { my @got = (); foreach my $curr_post (0..25) { my $rv = LJ::run_hook("viewer_sees_ebox", curr_entry_ct => $curr_post, total_entry_ct => $total_posts); push @got, $curr_post if $rv; } my @want = @{$correct{$total_posts}||[]}; my %need = map { $_ => 1 } @want; my @extra = (); foreach (@got) { push @extra, $_ unless delete $need{$_}; } my $msg = "tot=$total_posts, want=[" . join(",", @want) . "], got=[" . join(",", @got) . "], extra=[" . join(",", @extra) . "]"; ok(! %need && ! @extra, $msg); }