66 lines
2 KiB
Perl
66 lines
2 KiB
Perl
# t/draftset.t
|
|
#
|
|
# Test TODO something about draft text for entries
|
|
#
|
|
# 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 => 15;
|
|
|
|
BEGIN { $LJ::_T_CONFIG = 1; require "$ENV{LJHOME}/cgi-bin/ljlib.pl"; }
|
|
|
|
my $u = LJ::load_user("system");
|
|
ok($u);
|
|
|
|
ok( $u->set_draft_text("some new draft text"), "set it" );
|
|
is( $u->draft_text, "some new draft text", "it matches" );
|
|
|
|
{
|
|
my $meth;
|
|
local $LJ::_T_METHOD_USED = sub {
|
|
$meth = $_[0];
|
|
};
|
|
|
|
$meth = undef;
|
|
ok( $u->set_draft_text("some new draft text with more"), "set it" );
|
|
is( $meth, "append", "did an append" );
|
|
|
|
ok( $u->set_draft_text("new text"), "set it" );
|
|
is( $meth, "set", "did a set" );
|
|
|
|
ok( $u->set_draft_text("new text"), "set it" );
|
|
is( $meth, "noop", "did a noop" );
|
|
|
|
# test race conditions with append
|
|
ok( $u->set_draft_text("test append"), "set it" );
|
|
is( $meth, "set", "did a set" );
|
|
|
|
{
|
|
local $LJ::_T_DRAFT_RACE = sub {
|
|
my $prop = LJ::get_prop( "user", "entry_draft" ) or die; # FIXME: use exceptions
|
|
$u->do( "UPDATE userpropblob SET value = 'gibberish' WHERE userid=? AND upropid=?",
|
|
undef, $u->{userid}, $prop->{id} );
|
|
};
|
|
|
|
ok( $u->set_draft_text("test append bar"), "appending during a race" );
|
|
is( $meth, "set", "did a set" );
|
|
|
|
is( $u->draft_text, "test append bar", "it matches" );
|
|
unlike( $u->draft_text, qr/gibberish/, "no gibberish from race" );
|
|
}
|
|
|
|
}
|
|
|