#!/usr/bin/perl use strict; use Test::More tests => 23; BEGIN { $ENV{MT_USER} ||= 'net-mt'; $ENV{MT_PASSWORD} ||= 'secret'; $ENV{MT_PROXY} ||='http://mt.handalak.com/cgi-bin/xmlrpc'; } unless ( eval "require LWP::Simple") { print "1..0 # Skipped: LWP::Simple isn't available"; exit(0); } use_ok("Net::MovableType"); # # Making the connection # my $mt = new MovableType($ENV{MT_PROXY}, $ENV{MT_USER}, $ENV{MT_PASSWORD}); ok(defined $mt, ref $mt); ok(($mt->username eq $ENV{MT_USER}) && ($mt->password eq $ENV{MT_PASSWORD})); # # Testing for getUsersBlogs() consistency # my $blogs = $mt->getUsersBlogs(); ok($blogs && (ref $blogs eq 'ARRAY') && (@$blogs ==1)); ok($blogs->[0]->{blogName} eq 'Net::MovableType'); ok($blogs->[0]->{blogid}); ok($blogs->[0]->{url} eq 'http://net-mt.handalak.com/'); unless ( $mt->blogId ) { $mt->blogId( $blogs->[0]->{blogid} ) } # # resolveBlogId('Net::MovableType') # ok($mt->resolveBlogId('Net::MovableType') == 14); # # newPost(): # my %entry = ( title => "Hello World from Net::MovableType!", description => "Look ma, no hands!", mt_keywords => 'test AND Net::MovableType' ); my $new_post_id = $mt->newPost(\%entry, 0); ok($new_post_id, "New entry: $new_post_id"); $mt->setPostCategories($new_post_id, ["Testing..."]); $mt->publishPost($new_post_id); # # getRecentPostTitles(): # my $recentTitles = $mt->getRecentPostTitles(10); ok( grep { $_->{postid} == $new_post_id } @$recentTitles ); while ( my $post = shift @$recentTitles ) { printf("[%02d] - %s\n", $post->{postid}, $post->{title}); } my $recentPosts = $mt->getRecentPosts(10); ok( grep { $_->{postid} == $new_post_id } @$recentPosts ); # # getPost(): # my $post = $mt->getPost( $new_post_id ); ok($post->{title} eq "Hello World from Net::MovableType!"); ok($post->{postid} == $new_post_id ); $post->{title} = sprintf "%s (%d)", $post->{title}, $post->{postid}; # # editPost(): # ok($mt->editPost($post->{postid}, $post)); my $edited_post = $mt->getPost( $new_post_id ); ok($edited_post->{title} eq "Hello World from Net::MovableType! (" . $edited_post->{postid} . ")"); # # deletePost(): # ok($mt->deletePost($new_post_id)); ok($mt->getPost($new_post_id) ? 0 : 1); # # upload(): # # # first we create a simple post to associate this image with it: # require Config; my $new_post_id_w_upload = $mt->newPost({ title => sprintf("Another %s computer got Net::MT! Do you?", $Config::Config{osname}), description => Config::myconfig(), }, 0); $mt->setPostCategories($new_post_id_w_upload, ["Testing..."]); require LWP::Simple; my $logo_content = LWP::Simple::get('http://author.handalak.com/images/perl.gif'); ok($logo_content, "logo downloaded"); my $url = $mt->upload(\$logo_content, sprintf "images/perl_%d.gif", $new_post_id_w_upload); my ($type, $size, $modtime, $expires, $server) = LWP::Simple::head($url->{url}); ok($type eq 'image/gif'); ok($size > 1); my $new_post_w_upload = $mt->getPost($new_post_id_w_upload); ok($new_post_w_upload); $new_post_w_upload->{description} .= <Powered by Perl Note: above image was uploaded with Net::MovableType. ENDTEXTMORE ok($mt->editPost($new_post_id_w_upload, $new_post_w_upload)); ok($mt->publishPost($new_post_id_w_upload));