mourningdove/t/subscription-flags.t
2026-05-24 01:03:05 +00:00

88 lines
2.5 KiB
Perl

# t/subscription-flags.t
#
# Test LJ::Subscription set_flag and clear_flag.
#
# 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 => 10;
BEGIN { $LJ::_T_CONFIG = 1; require "$ENV{LJHOME}/cgi-bin/ljlib.pl"; }
use LJ::Subscription;
use LJ::Event;
use LJ::Test qw(memcache_stress temp_user);
run_tests();
sub run_tests {
my $u = temp_user();
# create a subscription
my $subscr = LJ::Subscription->create(
$u,
event => 'JournalNewEntry',
journalid => 0,
method => 'Inbox',
);
ok( $subscr, "Got subscription" );
# test flag setter/accessors
{
my $flags = $subscr->flags;
is( $flags, 0, "No flags set" );
# set inactive flag
$subscr->_deactivate;
ok( !$subscr->active, "Deactivated" );
# make sure inactive flag is set
$flags = $subscr->flags;
is( $flags, LJ::Subscription::INACTIVE, "Inactive flag set" );
# clear inactive flag
$subscr->activate;
# make sure inactive flag is unset
$flags = $subscr->flags;
is( $flags, 0, "Inactive flag unset" );
# set a bunch of flags and clear one
$subscr->set_flag(1);
$subscr->set_flag(2);
$subscr->set_flag(4);
$subscr->set_flag(8);
$subscr->clear_flag(4);
is( $subscr->flags, 11, "Cleared one flag ok" );
# clear flags and set disabled and inactive
$subscr->clear_flag(1);
$subscr->clear_flag(2);
$subscr->clear_flag(8);
$subscr->set_flag(LJ::Subscription::DISABLED);
$subscr->set_flag(LJ::Subscription::INACTIVE);
ok( !$subscr->active, "Inactive" );
ok( !$subscr->enabled, "Disabled" );
# clear disable and make sure still inactive
$subscr->enable;
ok( !$subscr->active, "Inactive" );
ok( $subscr->enabled, "Enabled" );
}
}