use Test::Simple 'no_plan'; use lib './lib'; require './t/test.pl'; use strict; use WordPress::API::Category; #use Smart::Comments '###'; use warnings; my $config = skiptest(); my %c = %{$config}; $WordPress::API::Category::DEBUG = 1; #ok(1,"$0: this test is skipped until WordPress::XMLRPC::newCategory() is working.") and exit; ### I KNOW THIS IS BUGGY # ### %c # my $api = new WordPress::API::Category({%c}); ok($api,'instanced' )or die($api->errstr); ok_cat_empty($api); my $newCategoryName = 'MiscCat' . int(rand 1000); my $newCategoryDesc = "this is a great description here.."; ok( $api->categoryName($newCategoryName), "set name to $newCategoryName" ); ok( $api->description( $newCategoryDesc ),'set a desc'); printf STDERR " desc is '%s'\n", $api->description; my $nid; ok( $nid = $api->save, "saved") or die("could not save.. ".$api->errstr ); ok( $nid,"new cat id $nid"); ok( $api->categoryName, 'cat name'); ok( $api->description, 'cat desc'); ok( $api->categoryName eq $newCategoryName ) or _dumpdata($api) and die( $api->categoryName ."is not $newCategoryName" ); # this fails, wordpress bug .. see WordPress::XMLRPC #ok( $api->description eq $newCategoryDesc ) or _dumpdata($api) and die( # $api->description ." is not $newCategoryDesc" #); # ok... now we want to make a sub category sub _dumpdata { my $object = shift; my $data = $object->structure_data; ### $data return 1; } print STDERR "\n\n\n=====\nPART HERE ... \nok, now create a sub category for $nid\n\n"; # ok, now create a sub cat ### %c my $subcat = new WordPress::API::Category({%c}); ok($subcat,'instanced' )or die($subcat->errstr); ok_cat_empty($subcat); my $newcatname = 'Subcat of '.$newCategoryName; print STDERR "new subcat name will be [$newcatname]\n"; ok $subcat->parentId($nid),"set parent id to $nid"; ok $subcat->parentId == $nid, "parent id $nid still present"; ok $subcat->categoryName($newcatname), 'catname setting'; ok $subcat->categoryName eq $newcatname; ok $subcat->description('desc of subcat'), 'desc setting'; #ok ( $subcat->parentId($nid), "setting parent id "); print STDERR " .. \n"; ok( $subcat->save, "saving.. ") or die('cant save'); ok $subcat->parentId == $nid, "$nid still there"; my $url = $subcat->htmlUrl; ok ($url, "got url '$url'"); my $subcatid = $subcat->id; ok $subcatid; print STDERR " new cat object holds.. \n"; _dumpdata($subcat); print STDERR " Now we re instance and load.. new cat created $subcatid.. \n"; # new instance, and attempt to load my $scat = new WordPress::API::Category({%c}); ok $scat->id($subcatid); $scat->load; _dumpdata($scat); print STDERR "\n\n\n\n"; # hack my $cats = $api->getCategories; ok( $cats ,'getCategories returns'); ok( ref $cats eq 'ARRAY' ,'getCategories returns array ref'); ok( scalar @$cats ,'cats has count.'); for my $ch ( @$cats ){ no warnings; print STDERR "\n\n == Cat.. \n\n"; my $id = $ch->{categoryId}; my $cn = $ch->{categoryName}; my $pi = $ch->{parentId}; print STDERR "id $id, name $cn, parent $pi\n"; my $o = new WordPress::API::Category({%c}); ok($o, 'instanced'); ok $o->id($id); ok $o->load; ok $o->categoryName; my $url1 = $o->rssUrl; my $url2 = $o->htmlUrl; my $desc = $o->description; my $pid = $o->parentId; ok( $pid == $pi, "parent id $pid == $pi"); my $_cn = $o->categoryName; ok( $_cn eq $cn , "categoryName() = $_cn, and cats category name is $cn"); #ok( $o->categoryName eq $cn ); } sub ok_cat_empty { my $catg = shift; for my $m (qw(categoryName id description parentId)){ ok( ! $catg->$m, "method $m has nothing") or printf STDERR " oops, had: %s\n",$catg->$m; } return; }