231 lines
7.7 KiB
Perl
231 lines
7.7 KiB
Perl
|
|
# t/birthday.t
|
||
|
|
#
|
||
|
|
# Test birthday display options.
|
||
|
|
#
|
||
|
|
# This code was forked from the LiveJournal project owned and operated
|
||
|
|
# by Live Journal, Inc. The code has been modified and expanded by
|
||
|
|
# Dreamwidth Studios, LLC. These files were originally licensed under
|
||
|
|
# the terms of the license supplied by Live Journal, Inc, which can
|
||
|
|
# currently be found at:
|
||
|
|
#
|
||
|
|
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
|
||
|
|
#
|
||
|
|
# In accordance with the original license, this code and all its
|
||
|
|
# modifications are provided under the GNU General Public License.
|
||
|
|
# A copy of that license can be found in the LICENSE file included as
|
||
|
|
# part of this distribution.
|
||
|
|
|
||
|
|
use strict;
|
||
|
|
use warnings;
|
||
|
|
|
||
|
|
use Test::More tests => 186;
|
||
|
|
|
||
|
|
BEGIN { $LJ::_T_CONFIG = 1; require "$ENV{LJHOME}/cgi-bin/ljlib.pl"; }
|
||
|
|
use LJ::Test qw(temp_user memcache_stress);
|
||
|
|
|
||
|
|
sub run_tests {
|
||
|
|
{
|
||
|
|
my $rv = eval { LJ::User::can_show_bday(undef) };
|
||
|
|
like( $@, qr/invalid user/, "can_show_bday: Undef is not a user" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_bday };
|
||
|
|
ok( !$@, "can_show_bday: Called on valid user object" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_bday };
|
||
|
|
if ( $rv == 0 ) {
|
||
|
|
ok( !$rv, "can_show_bday: opt_showbday is not set" );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $val (qw(D F)) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->can_show_bday };
|
||
|
|
ok( $rv, "can_show_bday: opt_showbday is set to $val" );
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $val (qw(N Y)) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->can_show_bday };
|
||
|
|
if ( $rv == 0 ) {
|
||
|
|
ok( !$rv, "can_show_bday: opt_showbday is set to $val" );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $rv = eval { LJ::User::can_show_bday_year(undef) };
|
||
|
|
like( $@, qr/invalid user/, "can_show_bday_year: Undef is not a user" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_bday_year };
|
||
|
|
ok( !$@, "can_show_bday_year: Called on valid user object" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_bday_year };
|
||
|
|
if ( $rv == 0 ) {
|
||
|
|
ok( !$rv, "can_show_bday_year: opt_showbday is not set" );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $val (qw(F Y)) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->can_show_bday_year };
|
||
|
|
ok( $rv, "can_show_bday_year: opt_showbday is set to $val" );
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $val (qw(N D)) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->can_show_bday_year };
|
||
|
|
ok( !$rv, "can_show_bday_year: opt_showbday is set to $val" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $rv = eval { LJ::User::can_show_full_bday(undef) };
|
||
|
|
like( $@, qr/invalid user/, "can_show_full_bday: Undef is not a user" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_full_bday };
|
||
|
|
ok( !$@, "can_show_full_bday: Called on valid user object" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->can_show_full_bday };
|
||
|
|
if ( $rv == 0 ) {
|
||
|
|
ok( !$rv, "can_show_full_bday: opt_showbday is not set" );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', 'F' );
|
||
|
|
my $rv = eval { $u->can_show_full_bday };
|
||
|
|
ok( $rv, "can_show_full_bday: opt_showbday is set to F" );
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $val (qw(D N Y)) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->can_show_full_bday };
|
||
|
|
ok( !$rv, "can_show_full_bday: opt_showbday is set to $val" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $rv = eval { LJ::User::bday_string(undef) };
|
||
|
|
like( $@, qr/invalid user/, "bday_string: Undef is not a user" );
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
my $u = temp_user();
|
||
|
|
my $rv = eval { $u->bday_string };
|
||
|
|
ok( !$@, "bday_string: Called on valid user object" );
|
||
|
|
}
|
||
|
|
|
||
|
|
my @props = ( '', 'D', 'F', 'N', 'Y' );
|
||
|
|
foreach my $year ( '0000', '1979' ) {
|
||
|
|
foreach my $month ( '00', '01' ) {
|
||
|
|
foreach my $day ( '00', '31' ) {
|
||
|
|
foreach my $val (@props) {
|
||
|
|
my $u = temp_user();
|
||
|
|
$u->{'bdate'} = $year . '-' . $month . '-' . $day;
|
||
|
|
$u->set_prop( 'opt_showbday', $val );
|
||
|
|
my $rv = eval { $u->bday_string };
|
||
|
|
if ( $val eq 'Y' ) {
|
||
|
|
my $isok = 0;
|
||
|
|
if ( $year eq '1979' && $rv eq $year ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( $year eq '0000' && $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
ok( $isok, "bday_string 'Y' ($val [$u->{'bdate'}]): $rv" );
|
||
|
|
}
|
||
|
|
elsif ( $val eq 'D' ) {
|
||
|
|
my $isok = 0;
|
||
|
|
if ( $month eq '01' && $day eq '31' && $rv eq '01-31' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( ( $month eq '00' || $day eq '00' ) && $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
ok( $isok, "bday_string 'D' ($val [$u->{'bdate'}]): $rv" );
|
||
|
|
}
|
||
|
|
elsif ( $val eq 'F' ) {
|
||
|
|
my $isok = 0;
|
||
|
|
if ( $month eq '01'
|
||
|
|
&& $day eq '31'
|
||
|
|
&& $year eq '1979'
|
||
|
|
&& $rv eq '1979-01-31' )
|
||
|
|
{
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( $month eq '00' || $day eq '00' ) {
|
||
|
|
if ( $year eq '0000' && $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( $year eq '1979' && $rv eq '1979' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
elsif ( $month eq '01' && $day eq '31' ) {
|
||
|
|
if ( $year eq '0000' && $rv eq '01-31' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
ok( $isok, "bday_string 'F' ($val [$u->{'bdate'}]): $rv" );
|
||
|
|
}
|
||
|
|
elsif ( $val eq 'N' ) {
|
||
|
|
my $isok = 0;
|
||
|
|
if ( $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
ok( $isok, "bday_string 'N' and empty ($val [$u->{'bdate'}]): $rv" );
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
my $isok = 0;
|
||
|
|
if ( $year eq '0000' ) {
|
||
|
|
if ( $month eq '01' && $day eq '31' && $rv eq '01-31' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
elsif ( $year eq '1979' ) {
|
||
|
|
if ( $month eq '01' && $day eq '31' && $rv eq '01-31' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
elsif ( ( $month eq '00' || $day eq '00' ) && $rv eq '' ) {
|
||
|
|
$isok = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
ok( $isok, "bday_string '' and empty ($val [$u->{'bdate'}]): $rv" );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
memcache_stress {
|
||
|
|
run_tests();
|
||
|
|
};
|
||
|
|
|
||
|
|
1;
|
||
|
|
|