Merge commit '469c2b72b4' into WebGUI8. All tests passing.
This commit is contained in:
commit
565cf955d7
147 changed files with 1526 additions and 1283 deletions
|
|
@ -56,6 +56,12 @@ my $snippet = $folder->addChild({
|
|||
|
||||
$versionTag->commit;
|
||||
|
||||
WebGUI::Test->addToCleanup(sub {
|
||||
foreach my $metaDataFieldId (keys %{ $snippet->getMetaDataFields }) {
|
||||
$snippet->deleteMetaDataField($metaDataFieldId);
|
||||
}
|
||||
});
|
||||
|
||||
##Note that there is no MetaData field master class. New fields can be added
|
||||
##from _ANY_ asset, and be available to all assets.
|
||||
|
||||
|
|
@ -226,8 +232,4 @@ sub buildNameIndex {
|
|||
return $nameStruct;
|
||||
}
|
||||
|
||||
END {
|
||||
foreach my $metaDataFieldId (keys %{ $snippet->getMetaDataFields }) {
|
||||
$snippet->deleteMetaDataField($metaDataFieldId);
|
||||
}
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
119
t/Asset/Post/archiving.t
Normal file
119
t/Asset/Post/archiving.t
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
## Test that archiving a post works, and checking side effects like updating
|
||||
## lastPost information in the Thread, and CS.
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../../lib";
|
||||
use WebGUI::Test;
|
||||
use WebGUI::Session;
|
||||
use Test::More tests => 13; # increment this value for each test you create
|
||||
use WebGUI::Asset::Wobject::Collaboration;
|
||||
use WebGUI::Asset::Post;
|
||||
use WebGUI::Asset::Post::Thread;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
# Do our work in the import node
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
|
||||
# Grab a named version tag
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Collab setup"});
|
||||
|
||||
# Need to create a Collaboration system in which the post lives.
|
||||
my @addArgs = ( undef, undef, { skipAutoCommitWorkflows => 1, skipNotification => 1 } );
|
||||
|
||||
my $collab = $node->addChild({className => 'WebGUI::Asset::Wobject::Collaboration'}, @addArgs);
|
||||
|
||||
# finally, add posts and threads to the collaboration system
|
||||
|
||||
my $first_thread = $collab->addChild(
|
||||
{ className => 'WebGUI::Asset::Post::Thread', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $second_thread = $collab->addChild(
|
||||
{ className => 'WebGUI::Asset::Post::Thread', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
##Thread 1, Post 1 => t1p1
|
||||
my $t1p1 = $first_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $t1p2 = $first_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday + 1,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $past = time()-15;
|
||||
|
||||
my $t2p1 = $second_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
$past,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $t2p2 = $second_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
undef,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
$versionTag->commit();
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
foreach my $asset ($collab, $t1p1, $t1p2, $t2p1, $t2p2, $first_thread, $second_thread, ) {
|
||||
$asset = $asset->cloneFromDb;
|
||||
}
|
||||
|
||||
is $collab->getChildCount, 2, 'collab has correct number of children';
|
||||
|
||||
is $collab->get('lastPostId'), $t2p2->getId, 'lastPostId set in collab';
|
||||
is $collab->get('lastPostDate'), $t2p2->get('creationDate'), 'lastPostDate, too';
|
||||
|
||||
$t2p2->setStatusArchived;
|
||||
is $t2p2->get('status'), 'archived', 'setStatusArchived set the post to be archived';
|
||||
|
||||
$second_thread = $second_thread->cloneFromDb;
|
||||
is $second_thread->get('lastPostId'), $t2p1->getId, '.. updated lastPostId in the thread';
|
||||
is $second_thread->get('lastPostDate'), $t2p1->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$collab = $collab->cloneFromDb;
|
||||
is $collab->get('lastPostId'), $t2p1->getId, '.. updated lastPostId in the CS';
|
||||
is $collab->get('lastPostDate'), $t2p1->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$t2p2->setStatusUnarchived;
|
||||
is $t2p2->get('status'), 'approved', 'setStatusUnarchived sets the post back to approved';
|
||||
|
||||
$second_thread = $second_thread->cloneFromDb;
|
||||
is $second_thread->get('lastPostId'), $t2p2->getId, '.. updated lastPostId in the thread';
|
||||
is $second_thread->get('lastPostDate'), $t2p2->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$collab = $collab->cloneFromDb;
|
||||
is $collab->get('lastPostId'), $t2p2->getId, '.. updated lastPostId in the CS';
|
||||
is $collab->get('lastPostDate'), $t2p2->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
#vim:ft=perl
|
||||
119
t/Asset/Post/trashing.t
Normal file
119
t/Asset/Post/trashing.t
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
## Test that trashing a post works, and checking side effects like updating
|
||||
## lastPost information in the Thread, and CS.
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../../lib";
|
||||
use WebGUI::Test;
|
||||
use WebGUI::Session;
|
||||
use Test::More tests => 13; # increment this value for each test you create
|
||||
use WebGUI::Asset::Wobject::Collaboration;
|
||||
use WebGUI::Asset::Post;
|
||||
use WebGUI::Asset::Post::Thread;
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
# Do our work in the import node
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
|
||||
# Grab a named version tag
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Collab setup"});
|
||||
|
||||
# Need to create a Collaboration system in which the post lives.
|
||||
my @addArgs = ( undef, undef, { skipAutoCommitWorkflows => 1, skipNotification => 1 } );
|
||||
|
||||
my $collab = $node->addChild({className => 'WebGUI::Asset::Wobject::Collaboration'}, @addArgs);
|
||||
|
||||
# finally, add posts and threads to the collaboration system
|
||||
|
||||
my $first_thread = $collab->addChild(
|
||||
{ className => 'WebGUI::Asset::Post::Thread', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $second_thread = $collab->addChild(
|
||||
{ className => 'WebGUI::Asset::Post::Thread', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
##Thread 1, Post 1 => t1p1
|
||||
my $t1p1 = $first_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $t1p2 = $first_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
WebGUI::Test->webguiBirthday + 1,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $past = time()-15;
|
||||
|
||||
my $t2p1 = $second_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
$past,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
my $t2p2 = $second_thread->addChild(
|
||||
{ className => 'WebGUI::Asset::Post', },
|
||||
undef,
|
||||
undef,
|
||||
{ skipAutoCommitWorkflows => 1, skipNotification => 1 }
|
||||
);
|
||||
|
||||
$versionTag->commit();
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
foreach my $asset ($collab, $t1p1, $t1p2, $t2p1, $t2p2, $first_thread, $second_thread, ) {
|
||||
$asset = $asset->cloneFromDb;
|
||||
}
|
||||
|
||||
is $collab->getChildCount, 2, 'collab has correct number of children';
|
||||
|
||||
is $collab->get('lastPostId'), $t2p2->getId, 'lastPostId set in collab';
|
||||
is $collab->get('lastPostDate'), $t2p2->get('creationDate'), 'lastPostDate, too';
|
||||
|
||||
$t2p2->trash;
|
||||
is $t2p2->get('state'), 'trash', 'cut set the post to be in the clipboard';
|
||||
|
||||
$second_thread = $second_thread->cloneFromDb;
|
||||
is $second_thread->get('lastPostId'), $t2p1->getId, '.. updated lastPostId in the thread';
|
||||
is $second_thread->get('lastPostDate'), $t2p1->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$collab = $collab->cloneFromDb;
|
||||
is $collab->get('lastPostId'), $t2p1->getId, '.. updated lastPostId in the CS';
|
||||
is $collab->get('lastPostDate'), $t2p1->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$t2p2->restore;
|
||||
is $t2p2->get('state'), 'published', 'publish sets the post normal';
|
||||
|
||||
$second_thread = $second_thread->cloneFromDb;
|
||||
is $second_thread->get('lastPostId'), $t2p2->getId, '.. updated lastPostId in the thread';
|
||||
is $second_thread->get('lastPostDate'), $t2p2->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
$collab = $collab->cloneFromDb;
|
||||
is $collab->get('lastPostId'), $t2p2->getId, '.. updated lastPostId in the CS';
|
||||
is $collab->get('lastPostDate'), $t2p2->get('creationDate'), '... lastPostDate, too';
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
@ -25,6 +25,7 @@ my $session = WebGUI::Test->session;
|
|||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Gallery Test"});
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
|
@ -65,3 +66,5 @@ $gallery->purge;
|
|||
|
||||
eval { WebGUI::Asset->newById($session, $properties->{assetId}); };
|
||||
ok( Exception::Class->caught(), 'Gallery no longer able to be instanciated after purge');
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ my $session = WebGUI::Test->session;
|
|||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Album Test"});
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
my $gallery
|
||||
= $node->addChild({
|
||||
className => "WebGUI::Asset::Wobject::Gallery",
|
||||
|
|
@ -69,3 +70,5 @@ $album->purge;
|
|||
|
||||
eval { WebGUI::Asset->newById($session, $properties->{assetId}); };
|
||||
ok( Exception::Class->caught(), 'Album no longer able to be instanciated');
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ use WebGUI::Asset::Wobject::GalleryAlbum;
|
|||
my $session = WebGUI::Test->session;
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
my %user;
|
||||
$user{'1'} = WebGUI::User->new( $session, "new" );
|
||||
|
|
@ -254,3 +255,5 @@ sub callAjaxService {
|
|||
# Call ajax service function and decode reply
|
||||
return decode_json( $album->www_ajax() );
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ $session->user({ userId => 3 });
|
|||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Album Test"});
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
my $gallery
|
||||
= $node->addChild({
|
||||
className => "WebGUI::Asset::Wobject::Gallery",
|
||||
|
|
@ -102,3 +103,4 @@ $maker->run;
|
|||
eval { WebGUI::Asset->newById( $session, $assetId ); };
|
||||
ok (Exception::Class->caught(), "GalleryAlbum cannot be instanciated after www_deleteConfirm");
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ use Test::More;
|
|||
my $session = WebGUI::Test->session;
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
$versionTag->set({name=>"Album Test"});
|
||||
|
||||
|
|
@ -99,8 +100,4 @@ is( $album->getNextFileId(''), undef, 'Return undef if empty string specified');
|
|||
is( $album->getNextFileId('123456'), undef, 'Return undef if non-existing id specified');
|
||||
is( $album->getNextFileId($album->getId), undef, 'Return undef if non-child id specified');
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
$versionTag->rollback();
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ for my $i ( 0 .. 5 ) {
|
|||
}
|
||||
|
||||
$versionTag->commit;
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
|
@ -78,8 +79,4 @@ TODO: {
|
|||
# Test www_slideshow
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
$versionTag->rollback();
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ my $maker = WebGUI::Test::Maker::HTML->new;
|
|||
my $session = WebGUI::Test->session;
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
$versionTag->set({name=>"Album Test"});
|
||||
my $gallery
|
||||
= $node->addChild({
|
||||
|
|
@ -77,8 +78,4 @@ TODO: {
|
|||
#----------------------------------------------------------------------------
|
||||
# Test www_thumbnails
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
$versionTag->rollback();
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ my $maker = WebGUI::Test::Maker::HTML->new;
|
|||
my $session = WebGUI::Test->session;
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
$versionTag->set({name=>"Album Test"});
|
||||
my $gallery
|
||||
= $node->addChild({
|
||||
|
|
@ -150,8 +151,5 @@ SKIP: {
|
|||
});
|
||||
$maker->run;
|
||||
}
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
$versionTag->rollback();
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ $archive = $home->addChild({
|
|||
$versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
$archive = $archive->cloneFromDb;
|
||||
|
||||
$archive = $archive->cloneFromDb;
|
||||
|
||||
|
|
@ -144,6 +145,17 @@ undef $sameFolder;
|
|||
$todayFolder->purge;
|
||||
is($archive->getChildCount, 0, 'leaving with an empty archive');
|
||||
|
||||
{
|
||||
my $archive2 = $home->addChild({
|
||||
className => 'WebGUI::Asset::Wobject::StoryArchive',
|
||||
title => 'Uncommitted',
|
||||
url => 'uncommitted_archive',
|
||||
});
|
||||
my $guard = WebGUI::Test->cleanupGuard($archive2);
|
||||
my $new_folder = $archive2->getFolder;
|
||||
is $archive2->get('tagId'), $new_folder->get('tagId'), 'folder added to uncommitted archive uses the same version tag';
|
||||
}
|
||||
|
||||
################################################################
|
||||
#
|
||||
# addChild
|
||||
|
|
|
|||
|
|
@ -261,3 +261,5 @@ cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag) == 199} target}
|
|||
cmp_deeply( $e->run( $session, qq{jump {taggedX('$url', ext_tag) == 199} target}, {userId => $user->userId} ),
|
||||
{ jump => 'target', tags => {} }, 'first external tag lookups still works' );
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -25,19 +25,19 @@ plan tests => 3;
|
|||
# put your tests here
|
||||
|
||||
use_ok('WebGUI::Asset::Wobject::Survey');
|
||||
my ($survey);
|
||||
|
||||
# Returns the contents of the Survey_tempReport table
|
||||
sub getAll { $session->db->buildArrayRefOfHashRefs('select * from Survey_tempReport where assetId = ?', [$survey->getId]) }
|
||||
|
||||
my $user = WebGUI::User->new( $session, 'new' );
|
||||
WebGUI::Test->addToCleanup($user);
|
||||
my $import_node = WebGUI::Asset->getImportNode($session);
|
||||
|
||||
# Create a Survey
|
||||
$survey = $import_node->addChild( { className => 'WebGUI::Asset::Wobject::Survey', } );
|
||||
my $survey = $import_node->addChild( { className => 'WebGUI::Asset::Wobject::Survey', } );
|
||||
WebGUI::Test->addToCleanup($survey);
|
||||
isa_ok($survey, 'WebGUI::Asset::Wobject::Survey');
|
||||
|
||||
# Returns the contents of the Survey_tempReport table
|
||||
sub getAll { $session->db->buildArrayRefOfHashRefs('select * from Survey_tempReport where assetId = ?', [$survey->getId]) }
|
||||
|
||||
my $sJSON = $survey->getSurveyJSON;
|
||||
|
||||
# Load bare-bones survey, containing a single section (S0)
|
||||
|
|
@ -124,12 +124,4 @@ superhashof({
|
|||
value => 20, # e.g. score
|
||||
})]);
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
$survey->purge() if $survey;
|
||||
|
||||
my $versionTag = WebGUI::VersionTag->getWorking( $session, 1 );
|
||||
$versionTag->rollback() if $versionTag;
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -726,7 +726,4 @@ Hashes differ on element: a
|
|||
expect : '2'
|
||||
END_CMP
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Cleanup
|
||||
END {
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
103
t/Auth/Twitter.t
Normal file
103
t/Auth/Twitter.t
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# vim:syntax=perl
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#------------------------------------------------------------------
|
||||
|
||||
# Test the Auth::Twitter module
|
||||
#
|
||||
#
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use Test::More;
|
||||
use WebGUI::Test; # Must use this before any other WebGUI modules
|
||||
use WebGUI::Session;
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Init
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
||||
plan tests => 15; # Increment this number for each test you create
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Object creation
|
||||
|
||||
use_ok( 'WebGUI::Auth::Twitter' );
|
||||
|
||||
my $auth = WebGUI::Auth::Twitter->new( $session, "Twitter" );
|
||||
isa_ok( $auth, 'WebGUI::Auth::Twitter' );
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# API methods
|
||||
|
||||
my $user = $auth->createTwitterUser( "1234", "AndyDufresne" );
|
||||
WebGUI::Test->addToCleanup( $user );
|
||||
isa_ok( $user, 'WebGUI::User' );
|
||||
is(
|
||||
$session->db->quickScalar(
|
||||
"SELECT fieldData FROM authentication WHERE userId=? AND authMethod=? AND fieldName=?",
|
||||
[ $user->userId, "Twitter", "twitterUserId" ],
|
||||
),
|
||||
"1234",
|
||||
"Twitter User ID saved in authentication table",
|
||||
);
|
||||
|
||||
my $tmpl = $auth->getTemplateChooseUsername;
|
||||
isa_ok( $tmpl, 'WebGUI::Asset::Template' );
|
||||
is( $tmpl->getId, $session->setting->get('twitterTemplateIdChooseUsername'), "Template taken from settings" );
|
||||
|
||||
$session->setting->set( 'twitterConsumerKey' => '3hvJpBr73pa4FycNrqw' );
|
||||
$session->setting->set( 'twitterConsumerSecret' => 'E4M5DJ66RAXiHgNCnJES96yTqglttsUes6OBcw9A' );
|
||||
my $nt = $auth->getTwitter;
|
||||
isa_ok( $nt, 'Net::Twitter' );
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# www_ methods
|
||||
|
||||
# www_login
|
||||
is( $auth->www_login, "redirect", "www_login always returns redirect" );
|
||||
ok( $session->scratch->get('AuthTwitterToken'), 'auth token gets set to scratch' );
|
||||
ok( $session->scratch->get('AuthTwitterTokenSecret'), 'auth token secret gets set to scratch' );
|
||||
like( $session->http->getRedirectLocation, qr/twitter[.]com/, "redirect to twitter.com" );
|
||||
|
||||
# www_callback
|
||||
# I have no idea how to test this...
|
||||
|
||||
# www_setUsername
|
||||
|
||||
ok( !$auth->www_setUsername, "setUsername doesn't work unless a scratch is set" );
|
||||
|
||||
$session->scratch->set( 'AuthTwitterUserId' => '2345' );
|
||||
$session->request->setup_body( {
|
||||
newUsername => "RedHerring",
|
||||
} );
|
||||
$auth->www_setUsername;
|
||||
|
||||
# User gets created with given twitter user id
|
||||
my $userId = $session->db->quickScalar(
|
||||
"SELECT userId FROM authentication WHERE authMethod=? AND fieldName=? AND fieldData=?",
|
||||
[ "Twitter", "twitterUserId", "2345" ],
|
||||
);
|
||||
ok( $userId, 'user exists in authentication table' );
|
||||
$user = WebGUI::User->new( $session, $userId );
|
||||
is( $user->username, "RedHerring", "correct username is set" );
|
||||
WebGUI::Test->addToCleanup( $user );
|
||||
|
||||
like(
|
||||
$auth->www_setUsername, qr/username "RedHerring" is taken/,
|
||||
"setUsername with existing username returns error",
|
||||
);
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
@ -96,6 +96,7 @@ plan tests => (168 + (scalar(@scratchTests) * 2) + scalar(@ipTests)); # incremen
|
|||
|
||||
my $session = WebGUI::Test->session;
|
||||
$session->cache->remove('myTestKey');
|
||||
WebGUI::Test->addToCleanup(sub { $session->cache->remove('myTestKey'); });
|
||||
|
||||
foreach my $gid ('new', '') {
|
||||
my $g = WebGUI::Group->new($session, $gid);
|
||||
|
|
@ -466,6 +467,7 @@ cmp_ok($expirationDate-time(), '>', 50, 'checking expire offset override on addU
|
|||
################################################################
|
||||
|
||||
$session->db->dbh->do('DROP TABLE IF EXISTS myUserTable');
|
||||
WebGUI::Test->addToCleanup(SQL => 'DROP TABLE IF EXISTS myUserTable');
|
||||
$session->db->dbh->do(q!CREATE TABLE myUserTable (userId CHAR(22) binary NOT NULL default '', PRIMARY KEY(userId)) TYPE=InnoDB!);
|
||||
|
||||
my $sth = $session->db->prepare('INSERT INTO myUserTable VALUES(?)');
|
||||
|
|
@ -826,7 +828,4 @@ ok( WebGUI::Group->vitalGroup(3), '... 3');
|
|||
ok( WebGUI::Group->vitalGroup('pbgroup000000000000015'), '... pbgroup000000000000015');
|
||||
ok(! WebGUI::Group->vitalGroup('27'), '... 27 is not vital');
|
||||
|
||||
END {
|
||||
$session->db->dbh->do('DROP TABLE IF EXISTS myUserTable');
|
||||
$session->cache->remove('myTestKey');
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
68
t/Macro/TwitterLogin.t
Normal file
68
t/Macro/TwitterLogin.t
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# vim:syntax=perl
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#------------------------------------------------------------------
|
||||
|
||||
# Test the TwitterLogin macro
|
||||
#
|
||||
#
|
||||
|
||||
use FindBin;
|
||||
use strict;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use Test::More;
|
||||
use WebGUI::Test; # Must use this before any other WebGUI modules
|
||||
use WebGUI::Session;
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Init
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
||||
plan tests => 10; # Increment this number for each test you create
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# TwitterLogin macro
|
||||
|
||||
use_ok( 'WebGUI::Macro::TwitterLogin' );
|
||||
|
||||
# Twitter auth must be enabled
|
||||
my $authMethods = $session->config->get('authMethods');
|
||||
$session->config->set('authMethods', ["WebGUI","LDAP"]);
|
||||
is( WebGUI::Macro::TwitterLogin::process($session), "", "Twitter must be enabled in config" );
|
||||
$session->config->set('authMethods', [ @{$authMethods}, "Twitter" ]);
|
||||
|
||||
$session->user({userId => 3});
|
||||
is( WebGUI::Macro::TwitterLogin::process($session), "", "User must be Visitor" );
|
||||
$session->user({userId => 1});
|
||||
|
||||
my $twitterEnabled = $session->setting->get('twitterEnabled');
|
||||
$session->setting->set('twitterEnabled', 0 );
|
||||
is( WebGUI::Macro::TwitterLogin::process( $session ), "", "Twitter Auth must be enabled in settings" );
|
||||
$session->setting->set('twitterEnabled', 1 );
|
||||
|
||||
# Default twitter login image
|
||||
my $output = WebGUI::Macro::TwitterLogin::process( $session );
|
||||
like( $output, qr/<a href/, "macro contains link" );
|
||||
like( $output, qr/op=auth/, "link to auth" );
|
||||
like( $output, qr/authType=Twitter/, "contains authType specifically" );
|
||||
like( $output, qr/twitter_login[.]png/, "contains default twitter login image" );
|
||||
|
||||
# Custom twitter login image
|
||||
my $output = WebGUI::Macro::TwitterLogin::process( $session, "custom_image.png" );
|
||||
unlike( $output, qr/twitter_login[.]png/, "doesn't contain default twitter login image" );
|
||||
like( $output, qr/custom_image[.]png/, "contains custom login image" );
|
||||
|
||||
$session->setting->set('twitterEnabled', $twitterEnabled );
|
||||
$session->config->set( 'authMethods', $authMethods );
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
@ -25,20 +25,74 @@ use WebGUI::Operation::Auth;
|
|||
# Init
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Test package for method dispatch
|
||||
BEGIN { $INC{'WebGUI/Auth/TestAuth.pm'} = __FILE__; }
|
||||
|
||||
package WebGUI::Auth::TestAuth;
|
||||
|
||||
use base 'WebGUI::Auth';
|
||||
|
||||
sub new {
|
||||
my $self = shift->SUPER::new(@_);
|
||||
$self->setCallable( ['callable'] );
|
||||
return bless $self, 'WebGUI::Auth::TestAuth'; # Auth requires rebless
|
||||
}
|
||||
|
||||
sub callable {
|
||||
return "callable";
|
||||
}
|
||||
|
||||
sub not_callable {
|
||||
return "not callable";
|
||||
}
|
||||
|
||||
sub www_verify {
|
||||
return "verify";
|
||||
}
|
||||
|
||||
package main;
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
||||
plan tests => 4; # Increment this number for each test you create
|
||||
plan tests => 10; # Increment this number for each test you create
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Test the getInstance method
|
||||
# By default, it returns a WebGUI::Auth::WebGUI object
|
||||
my $auth = WebGUI::Operation::Auth::getInstance( $session );
|
||||
ok($auth, 'getInstance returned something');
|
||||
isa_ok($auth, 'WebGUI::Auth::WebGUI');
|
||||
isa_ok($auth, 'WebGUI::Auth::' . $session->setting->get('authMethod') );
|
||||
|
||||
# Test setting authType by form var
|
||||
$session->request->setup_body({
|
||||
authType => 'TestAuth',
|
||||
});
|
||||
isa_ok(
|
||||
WebGUI::Operation::Auth::getInstance( $session ),
|
||||
'WebGUI::Auth::' . $session->setting->get('authMethod'),
|
||||
'AuthType not in config file, so return default authType',
|
||||
);
|
||||
|
||||
$session->config->addToArray( 'authMethods', 'TestAuth' );
|
||||
isa_ok(
|
||||
WebGUI::Operation::Auth::getInstance( $session ),
|
||||
'WebGUI::Auth::TestAuth',
|
||||
'AuthType in config file, so return instance of authType',
|
||||
);
|
||||
|
||||
$session->user({ userId => 3 });
|
||||
isa_ok(
|
||||
WebGUI::Operation::Auth::getInstance( $session ),
|
||||
'WebGUI::Auth::WebGUI',
|
||||
'AuthType is defined by the logged-in user',
|
||||
);
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Test the web method for auth operation
|
||||
# First a clean session, without an authenticated user
|
||||
$session->user({ userId => 1 });
|
||||
my $output = WebGUI::Operation::Auth::www_auth($session);
|
||||
like(
|
||||
$output,
|
||||
|
|
@ -54,3 +108,33 @@ unlike(
|
|||
qr/<input type="hidden" name="method" value="login" /,
|
||||
"Hidden form elements for login NOT displayed to valid user",
|
||||
);
|
||||
|
||||
# Go back to visitor and test callable dispatch
|
||||
$session->user({ userId => 1 });
|
||||
$session->request->setup_body({
|
||||
authType => 'TestAuth',
|
||||
method => 'callable',
|
||||
});
|
||||
eval { $output = WebGUI::Operation::Auth::www_auth( $session ); };
|
||||
like( $output, qr{\bcallable\b}, 'Callable method is callable' );
|
||||
|
||||
# Test a method not in callable
|
||||
$session->user({ userId => 1 });
|
||||
$session->request->setup_body({
|
||||
authType => 'TestAuth',
|
||||
method => 'not_callable',
|
||||
});
|
||||
my $i18n = WebGUI::International->new($session);
|
||||
my $error = $i18n->get(1077);
|
||||
eval { $output = WebGUI::Operation::Auth::www_auth( $session ); };
|
||||
like( $output, qr{$error}, 'not_callable method gives error message' );
|
||||
|
||||
# Test www_ dispatch
|
||||
$session->user({ userId => 1 });
|
||||
$session->request->setup_body({
|
||||
authType => 'TestAuth',
|
||||
method => 'verify',
|
||||
});
|
||||
eval { $output = WebGUI::Operation::Auth::www_auth( $session ); };
|
||||
like( $output, qr{verify}, 'www_ callable without being setCallable' );
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ plan tests => 1 + $numTests;
|
|||
my $loaded = use_ok('WebGUI::PassiveProfiling');
|
||||
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
WebGUI::Test->addToCleanup(SQL => ['delete from passiveProfileLog where dateOfEntry >= ?', $startingTime-1]);
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
my $home = WebGUI::Asset->getDefault($session);
|
||||
|
||||
my $pageProperties = {
|
||||
|
|
@ -120,7 +122,4 @@ cmp_bag(
|
|||
|
||||
}
|
||||
|
||||
END {
|
||||
$session->db->write('delete from passiveProfileLog where dateOfEntry >= ?',[$startingTime-1]);
|
||||
$versionTag->rollback;
|
||||
}
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@ $creationDateSth->execute([$weekAgo, $weekStory->getId]);
|
|||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
WebGUI::Test->addToCleanup($versionTag);
|
||||
foreach my $asset ($archive1, $archive2) {
|
||||
$asset = $asset->cloneFromDb;
|
||||
}
|
||||
|
||||
my $workflow = WebGUI::Workflow->create($session,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ plan tests => 1; # increment this value for each test you create
|
|||
my $session = WebGUI::Test->session;
|
||||
$session->user({userId => 3});
|
||||
|
||||
WebGUI::Test->addToCleanup(SQL => 'delete from passiveLog');
|
||||
WebGUI::Test->addToCleanup(SQL => 'delete from analyticRule');
|
||||
|
||||
my $workflow = WebGUI::Workflow->new($session, 'PassiveAnalytics000001');
|
||||
my $activities = $workflow->getActivities();
|
||||
##Note, they're in order, and the order is known.
|
||||
|
|
@ -30,6 +33,7 @@ my $instance = WebGUI::Workflow::Instance->create($session,
|
|||
priority => 1,
|
||||
}
|
||||
);
|
||||
WebGUI::Test->addToCleanup($instance);
|
||||
##Rule label, url, and regexp
|
||||
my @ruleSets = (
|
||||
['home', '/home', '^\/home' ],
|
||||
|
|
@ -76,12 +80,6 @@ PAUSE: while (my $retval = $instance->run()) {
|
|||
|
||||
ok(1, 'One test');
|
||||
|
||||
END {
|
||||
$session->db->write('delete from passiveLog');
|
||||
$session->db->write('delete from analyticRule');
|
||||
$instance->delete;
|
||||
}
|
||||
|
||||
sub loadLogData {
|
||||
my ($session, @urls) = @_;
|
||||
$session->db->write('delete from passiveLog');
|
||||
|
|
@ -99,3 +97,5 @@ sub loadLogData {
|
|||
$startTime += int(rand(10))+1;
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
|
|
@ -30,7 +30,9 @@ my $calendar = $temp->addChild(
|
|||
{ className => 'WebGUI::Asset::Wobject::Calendar' }
|
||||
);
|
||||
|
||||
my $one_year_ago = DateTime->today->subtract(years => 1)->ymd;
|
||||
my $eventStartDate = DateTime->today->truncate(to => 'month')->subtract(years => 1);
|
||||
|
||||
my $one_year_ago = $eventStartDate->ymd;
|
||||
|
||||
my $event = $calendar->addChild(
|
||||
{ className => 'WebGUI::Asset::Event',
|
||||
|
|
@ -43,7 +45,7 @@ my $recurId = $event->setRecurrence(
|
|||
{ recurType => 'monthDay',
|
||||
every => 2,
|
||||
startDate => $event->get('startDate'),
|
||||
dayNumber => DateTime->today->day,
|
||||
dayNumber => $eventStartDate->day,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue