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