1#!perl -wT
2# $Id: basic.t 996 2005-12-03 01:37:51Z claco $
3use strict;
4use warnings;
5use Test::More;
6
7plan tests => 6;
8
9use_ok("Carp");
10use_ok("Net::Blogger");
11use_ok("Term::ReadKey");
12
13my $blogger = undef;
14my $success = 0;
15
16
17TODO: {
18    todo_skip 'Move live API tests to another test file', 3;
19
20    my $debug = &ask_yesno("Enable debugging output");
21    diag("debugging is ".(($debug) ? "enabled" : "disabled" )."\n");
22
23    $blogger  = Net::Blogger->new(debug=>$debug);
24
25    isa_ok($blogger,"Net::Blogger");
26
27    $blogger->Proxy(&ask("URI of a working Blogger API server"));
28    $blogger->Username(&ask("Username"));
29    $blogger->Password(&ask_password());
30    $blogger->AppKey(&ask("App key (optional)"));
31
32    my $id = $blogger->GetBlogId(blogname=>&ask("Blog name"));
33
34    ok($blogger->BlogId($id));
35
36    my $post    = &ask("Please enter some text");
37    my $publish = &ask_yesno("Publish this text");
38
39    my $ok = $blogger->newPost(postbody => \$post,
40                   publish  => $publish);
41
42    if (! $ok) {
43       diag("New post failed, the Blogger API server reported the following error:\n".
44        $blogger->lastError()."\n");
45    }
46
47    ok($ok);
48
49    #
50
51    sub ask_yesno {
52      my $question = shift;
53
54      &diag("\n$question? [y/n] ");
55
56      my $answer = <STDIN>;
57      chomp $answer;
58
59      return ($answer =~ /^y(es)*$/i) ? 1 : 0;
60    }
61
62    sub ask {
63      my $question = shift;
64      &diag("\n$question ? ");
65
66      my $answer = <STDIN>;
67      chomp $answer;
68      return $answer;
69    }
70
71    sub ask_password {
72        my $pass = undef;
73
74        my $prompt = "\nPlease enter password";
75
76        while (! $pass) {
77
78          &diag("$prompt: ");
79
80          &Term::ReadKey::ReadMode("noecho");
81          $pass = &Term::ReadKey::ReadLine(0);
82          chomp $pass;
83
84          &Term::ReadKey::ReadMode("normal");
85          &diag("\n");
86        }
87
88        return $pass;
89    }
90};
91