Net-Google-Calendar

 view release on metacpan or  search on metacpan

t/05comments.t  view on Meta::CPAN

#!perl -w

use strict;
use Net::Google::Calendar;
use XML::Atom::Feed;
use lib qw(t/lib);
use GCalTest;
use Test::More;

my $cal = eval { GCalTest::get_calendar('login') };
if ($@) {
    plan skip_all => "because $@";
} else {
    plan tests => 6;
    #plan skip_all => "Can't for the life of me get this to work";
}

use_ok("Net::Google::Calendar::FeedLink");
use_ok("Net::Google::Calendar::Comments");


my @events = eval { $cal->get_events() };
is($@, '', "Got events");

# should be none
is(scalar(@events), 0, "No events so far");

# create an event
my $title  = "Test attendee event ".time();
my $entry  = Net::Google::Calendar::Entry->new();
$entry->title($title);

# add it
my $saved;
if (@events){
	$saved = $events[0];
} else {
	$saved  = $cal->add_entry($entry);
}
ok($saved, "Saved entry");

eval {
# get the comment url
my $fl   = $saved->comments->feed_link;
my $uri  = $fl->href;
my $feed = $cal->get_feed($uri);

my $comment = Net::Google::Calendar::Entry->new;

my $atom = XML::Atom::Namespace->new(atom => 'http://www.w3.org/2005/Atom');

$feed = XML::Atom::Feed->new;
my $link = XML::Atom::Link->new;
$link->type('application/xml');
$link->rel('http://schemas.google.com/g/2005#post');
$link->href("$uri");
$feed->add_link($link);


my %ns = (
	atom  => 'http://www.w3.org/2005/Atom',
	gAcl  => 'http://schemas.google.com/acl/2007',	
	batch => 'http://schemas.google.com/gdata/batch',
	gCal  => 'http://schemas.google.com/gCal/2005',
	gd    => 'http://schemas.google.com/g/2005',
);

foreach my $key (keys %ns) {
	$feed->set_attr("xmlns:${key}" => $ns{$key});
}


$comment->set($atom, 'category', undef, { scheme => 'http://schemas.google.com/g/2005#kind', term => 'http://schemas.google.com/g/2005#message' } );

$comment->set($atom, 'content', "test comment", { type => 'text' });
my $author = XML::Atom::Person->new;
$author->set($atom, 'name', "Simon Wistow");
$author->set($atom, 'email', $ENV{GCAL_TEST_USER});
$comment->set($atom, 'author', $author);


#$feed->add_entry($comment);
$feed->set($atom, 'entry', $comment, {}, 1);

print $feed->as_xml;

my $return = $cal->update_feed($feed);
die $@ unless defined $return;
print $return->as_xml;

# create a new feed 
};
print "Error: $@\n" if $@;
ok($cal->delete_entry($saved), "Deleted entry");



( run in 0.245 second using v1.01-cache-2.11-cpan-de7293f3b23 )