mourningdove/t/user-infoshow-migrate.t

90 lines
3.2 KiB
Perl
Raw Permalink Normal View History

2026-05-24 01:03:05 +00:00
# t/user-infoshow-migrate.t
#
# Test display of user location/birthday/etc with migration.
#
# 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 => 156;
BEGIN { $LJ::_T_CONFIG = 1; require "$ENV{LJHOME}/cgi-bin/ljlib.pl"; }
use LJ::Test qw(temp_user memcache_stress);
$LJ::DISABLED{infoshow_migrate} = 0;
sub new_temp_user {
local $Test::Builder::Level = $Test::Builder::Level + 1;
my $u = temp_user();
subtest "created new temp user" => sub {
plan tests => 4;
ok( LJ::isu($u), 'temp user created' );
# force it to Y, since we're testing migration here
$u->update_self( { allow_infoshow => 'Y' } );
$u->clear_prop("opt_showlocation");
$u->clear_prop("opt_showbday");
is( $u->{'allow_infoshow'}, 'Y', 'allow_infoshow set to Y' );
ok( !defined $u->{'opt_showbday'}, 'opt_showbday not set' );
ok( !defined $u->{'opt_showlocation'}, 'opt_showlocation not set' );
};
return $u;
}
sub run_tests {
foreach my $getter (
sub { $_[0]->prop('opt_showbday') },
sub { $_[0]->prop('opt_showlocation') },
sub { $_[0]->opt_showbday },
sub { $_[0]->opt_showlocation }
)
{
foreach my $mode (qw(default off)) {
my $u = new_temp_user();
if ( $mode eq 'off' ) {
my $uid = $u->{userid};
$u->update_self( { allow_infoshow => 'N' } );
is( $u->{allow_infoshow}, 'N', 'allow_infoshow set to N' );
my $temp_var = $getter->($u);
is( $temp_var, 'N', "prop value after migration: 'N'" );
is( $u->{'allow_infoshow'}, ' ', 'lazy migrate: allow_infoshow set to SPACE' );
is( $u->{'opt_showbday'}, 'N', 'lazy_migrate: opt_showbday set to N' );
is( $u->{'opt_showlocation'}, 'N', 'lazy_migrate: opt_showlocation set to N' );
}
else {
my $temp_var = $getter->($u);
ok( defined $temp_var, "prop value after migration: defined" );
is( $u->{'allow_infoshow'}, ' ', 'lazy migrate: allow_infoshow set to SPACE' );
is( $u->{'opt_showbday'}, undef, 'lazy_migrate: opt_showbday unset' );
is( $u->opt_showbday, 'D', "lazy_migrate: opt_showbday returned as D" );
is( $u->{'opt_showlocation'}, undef, 'lazy_migrate: opt_showlocation unset' );
is( $u->opt_showlocation, 'Y', "lazy_migrate: opt_showlocation set as Y" );
}
}
}
}
memcache_stress {
run_tests;
}