[pLog-svn] r4041 - in
plog/branches/lifetype-1.1.1/class:net/xmlrpc test/tests/net/xmlrpc
Paul Westbrook
paul at westbrooks.org
Mon Sep 25 05:27:22 GMT 2006
Hello,
I agree that we should add this to the core in 1.2, but it is my
understanding that we don't want to add strings for the 1.1.x branches.
I don't think that this will be a global setting but it would be
a per blog setting, as every user may be using a different xmlrpc
client.
--Paul
On Sep 24, 2006, at 9:28 PM, Mark Wu wrote:
> If only a enable/disable, why don't we just added to the core, like
> global
> settings?
>
> Mark
>
>> -----Original Message-----
>> From: plog-svn-bounces at devel.lifetype.net
>> [mailto:plog-svn-bounces at devel.lifetype.net] On Behalf Of
>> pwestbro at devel.lifetype.net
>> Sent: Monday, September 25, 2006 6:16 AM
>> To: plog-svn at devel.lifetype.net
>> Subject: [pLog-svn] r4041 - in
>> plog/branches/lifetype-1.1.1/class:net/xmlrpc test/tests/net/xmlrpc
>>
>> Author: pwestbro
>> Date: 2006-09-24 22:16:14 +0000 (Sun, 24 Sep 2006) New Revision: 4041
>>
>> Modified:
>>
>> plog/branches/lifetype-1.1.1/class/net/xmlrpc/xmlrpcserver.class.php
>>
>> plog/branches/lifetype-1.1.1/class/test/tests/net/xmlrpc/xmlrp
>> cserver_test.class.php
>> Log:
>> Added support for the MovableType xmlrpc api. This allows
>> the extended text to be specified for posts, without having
>> to manually type the POST_EXTENDED_TEXT_MODIFIER string.
>>
>> Also, once LifeType natively supports tags, the protocol to
>> make a new post can include the "keywords".
>>
>> But since we need continue supoprt for Blogger and
>> metaWeblog, I didn't want to disable having the extended text
>> appended to the description, with the
>> POST_EXTENDED_TEXT_MODIFIER. So the
>> "xmlrpc_movabletype_enabled" setting can be used to change
>> the behavior.
>>
>> I am hoping that tonight I can write a quick plugin to allow
>> the users to enable/disable this behavior.
>>
>>
>> Modified:
>> plog/branches/lifetype-1.1.1/class/net/xmlrpc/xmlrpcserver.class.php
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.1.1/class/net/xmlrpc/xmlrpcserver.cl
>> ass.php 2006-09-24 21:06:00 UTC (rev 4040)
>> +++
>> plog/branches/lifetype-1.1.1/class/net/xmlrpc/xmlrpcserver.cl
>> ass.php 2006-09-24 22:16:14 UTC (rev 4041)
>> @@ -36,7 +36,11 @@
>> "metaWeblog.getPost"
>> => "this:metaWeblogGetPost",
>> "metaWeblog.getRecentPosts"
>> => "this:metaWeblogGetRecentPosts",
>> "metaWeblog.getCategories"
>> => "this:metaWeblogGetCategories",
>> - "metaWeblog.newMediaObject"
>> => "this:metaWeblogNewMediaObject"
>> + "metaWeblog.newMediaObject"
>> => "this:metaWeblogNewMediaObject",
>> + "mt.getCategoryList"
>> => "this:mtGetCategoryList",
>> + "mt.supportedTextFilters"
>> => "this:mtSupportedTextFilters",
>> + "mt.getPostCategories"
>> => "this:mtGetPostCategories",
>> + "mt.setPostCategories"
>> => "this:mtSetPostCategories"
>> ));
>> }
>> else {
>> @@ -206,7 +210,20 @@
>> //}
>>
>> $title = $content["title"];
>> - $body = $content["description"];
>> +
>> + // Check to see if the MovableType
>> extnensions have been added
>> + $mt_excerpt = $content["mt_excerpt"];
>> + $mt_text_more = $content["mt_text_more"];
>> + $mt_allow_comments = $content["mt_allow_comments"];
>> +
>> + if ( $mt_text_more != NULL &&
>> trim($mt_text_more != ""))
>> + {
>> + $body = $content["description"] .
>> POST_EXTENDED_TEXT_MODIFIER . $mt_text_more;
>> + }
>> + else
>> + {
>> + $body = $content["description"];
>> + }
>> $catList = $content["categories"];
>> $categoryName = NULL;
>>
>> @@ -242,6 +259,16 @@
>>
>> $userInfo = $users->getUserInfoFromUsername(
>> $username );
>>
>> + // Initially assume that comments are enabled
>> + $enableComments = true;
>> +
>> + // Was a setting specified in the MovableType
>> fields?
>> + if ($mt_allow_comments != NULL)
>> + {
>> + $enableComments = $mt_allow_comments;
>> + }
>> +
>> +
>> $article = new Article(
>> $title,
>> $body, // text
>> @@ -250,7 +277,7 @@
>> $blogid, // blogid
>> $status,
>> 0, // numread
>> - Array( "comments_enabled" => true ) //
>> enable comments
>> + Array( "comments_enabled" => $enableComments )
>> );
>>
>> $dateCreated = $content['dateCreated']; @@
>> -375,6 +402,46 @@
>> }
>> }
>>
>> + function mtGetCategoryList($args)
>> + {
>> + $users = new Users();
>> + $category = new ArticleCategories();
>> + $blogsG = new Blogs();
>> +
>> + $blogid = $args[0];
>> + $username = $args[1];
>> + $password = $args[2];
>> +
>> + $auth = $users->authenticateUser( $username,
>> $password );
>> +
>> + if ($auth)
>> + {
>> + $blogInfo = $blogsG->getBlogInfo( $blogid );
>> + if( !$blogInfo ) {
>> + return new
>> IXR_Error(-1, 'Incorrect blog id');
>> + }
>> +
>> + $cats = $category->getBlogCategories($blogid);
>> + $url =
>> $blogInfo->getBlogRequestGenerator();
>> + $ret = array();
>> + foreach($cats as $cat)
>> + {
>> + $dummy = array();
>> + $dummy["categoryId"] = $cat->getId();
>> + $dummy["categoryName"] = $cat->getName();
>> +
>> + $ret[] = $dummy;
>> + }
>> +
>> + $this->setResponseCharset( $blogInfo );
>> +
>> + return $ret;
>> + } else
>> + {
>> + return new IXR_Error(-1, 'You did not
>> provide the correct password');
>> + }
>> + }
>> +
>> function getPost($args)
>> {
>> $users = new Users();
>> @@ -466,7 +533,18 @@
>> $dummy["userid"] = $userInfo->getId();
>> $dummy["dateCreated"] = new IXR_Date($time);
>> $dummy["title"] = $item->getTopic();
>> - $dummy["description"] = $item->getText(false);
>> +
>> + $blogSettings = $blogInfo->getSettings();
>> +
>> + $useMovableType = $blogSettings->getValue(
>> "xmlrpc_movabletype_enabled" );
>> + if ( $useMovableType )
>> + {
>> + $dummy["description"] = $item->getIntroText();
>> + }
>> + else
>> + {
>> + $dummy["description"] = $item->getText(false);
>> + }
>> $dummy["postid"] = $item->getId();
>>
>> $dummy["link"] = $url->postLink( $item );
>> @@ -477,6 +555,11 @@
>> $catArray[] = $category->getName();
>> }
>> $dummy["categories"] = $catArray;
>> +
>> + // The MovableType Extensions
>> + $dummy["mt_text_more"] =
>> $item->getExtendedText();
>> + $dummy["mt_allow_comments"] =
>> +$item->getCommentsEnabled();
>> +
>>
>> $this->setResponseCharset( $blogInfo );
>>
>> @@ -594,8 +677,21 @@
>> $status = POST_STATUS_DRAFT;
>> }
>>
>> - $title = $content["title"];
>> - $body = $content["description"];
>> + $title = $content["title"];
>> +
>> + // Check to see if the MovableType
>> extnensions have been added
>> + $mt_excerpt = $content["mt_excerpt"];
>> + $mt_text_more = $content["mt_text_more"];
>> + $mt_allow_comments = $content["mt_allow_comments"];
>> +
>> + if ( $mt_text_more != NULL &&
>> trim($mt_text_more) != "")
>> + {
>> + $body = $content["description"] .
>> POST_EXTENDED_TEXT_MODIFIER . $mt_text_more;
>> + }
>> + else
>> + {
>> + $body = $content["description"];
>> + }
>>
>> $article = $articles->getBlogArticle($postid,
>> -1, //
>> blogId @@ -624,17 +720,21 @@
>> }
>> }
>> }
>> + $article->setCategoryIds( $categories );
>> }
>> - else {
>> + else if ( count($article->getCategories()) == 0) {
>> + // Only assign a new category if there
>> isn't one
>> +
>> // if no category, let's pick a random one
>> $blogCategory = array_pop( $cats );
>> $categories[] = $blogCategory->getId();
>> +
>> + $article->setCategoryIds( $categories );
>> }
>>
>> $article->setText($body);
>> $article->setTopic($title);
>> $article->setStatus($status);
>> - $article->setCategoryIds( $categories );
>>
>> // Get the plugin manager
>> $plugMgr =&
>> PluginManager::getPluginManager();
>> @@ -693,6 +793,9 @@
>> // Send the
>> EVENT_PRE_POST_DELETE message
>> $plugMgr->notifyEvent(
>> EVENT_PRE_POST_DELETE, Array( "article" => &$article ));
>>
>> + $blogid = $article->getBlog();
>> + $blogInfo = $article->getBlogInfo();
>> +
>> $articles->deleteArticle(
>> $postid,
>> $userInfo->getId(), // userid @@
>> -702,10 +805,8 @@
>> // Send the EVENT_POST_POST_DELETE messages
>> to the plugins
>> $plugMgr->notifyEvent(
>> EVENT_POST_POST_DELETE, Array( "article" => &$article ));
>>
>>
>> - $blogid = $article->getBlog();
>> CacheControl::resetBlogCache( $blogid );
>>
>> - $blogInfo = $article->getBlogInfo();
>> $this->setResponseCharset( $blogInfo );
>>
>> return true;
>> @@ -797,6 +898,14 @@
>> -1 // category id
>> );
>>
>> + $blogs = new Blogs();
>> + $blogInfo = $blogs->getBlogInfo( $blogid );
>> + $url = $blogInfo->getBlogRequestGenerator();
>> +
>> + $blogSettings = $blogInfo->getSettings();
>> +
>> + $useMovableType = $blogSettings->getValue(
>> + "xmlrpc_movabletype_enabled" );
>> +
>> foreach($list as $item)
>> {
>> $dateObject = $item->getDateObject();
>> @@ -811,17 +920,30 @@
>> $dummy["userid"] = $userInfo->getId();
>> $dummy["dateCreated"] = new IXR_Date($time);
>> $dummy["title"] = $item->getTopic();
>> - $dummy["description"] = $item->getText(false);
>> +
>> + if ( $useMovableType )
>> + {
>> + $dummy["description"] =
>> $item->getIntroText();
>> + }
>> + else
>> + {
>> + $dummy["description"] =
>> $item->getText(false);
>> + }
>> $dummy["postid"] = $item->getId();
>>
>> - $blogInfo = $item->getBlogInfo();
>> - $url = $blogInfo->getBlogRequestGenerator();
>> $dummy["link"] =
>> $url->postLink( $item );
>> $dummy["permaLink"] =
>> $url->postPermalink( $item );
>>
>> $catArray = array();
>> - $catArray[] =
>> $articleCat->getName();
>> - $dummy["categories"] = $catArray;
>> + foreach( $item->getCategories() as $category ) {
>> + $catArray[] =
>> $category->getName();
>> + }
>> + $dummy["categories"] = $catArray;
>> +
>> + // The MovableType Extensions
>> + $dummy["mt_text_more"] =
>> $item->getExtendedText();
>> + $dummy["mt_allow_comments"] =
>> + $item->getCommentsEnabled();
>> +
>>
>>
>> $this->setResponseCharset( $blogInfo );
>>
>> @@ -993,5 +1115,127 @@
>> return new IXR_Error(-1, 'You did not
>> provide the correct password');
>> }
>> }
>> +
>> + function mtSupportedTextFilters($args)
>> + {
>> + $ret = array();
>> +
>> + return $ret;
>> + }
>> +
>> + function mtGetPostCategories($args)
>> + {
>> + $users = new Users();
>> + $articles = new Articles();
>> +
>> + $postid = $args[0];
>> + $username = $args[1];
>> + $password = $args[2];
>> +
>> + $auth = $users->authenticateUser($username,$password);
>> +
>> + if ($auth)
>> + {
>> + include_once(
>> +PLOG_CLASS_PATH."class/data/timestamp.class.php" );
>> +
>> + $userInfo =
>> $users->getUserInfoFromUsername( $username );
>> +
>> + $item = $articles->getBlogArticle($postid,
>> + -1, // blogId
>> + true, //
>> includeHiddenFields
>> + -1, // date
>> + -1, // categoryId
>> +
>> $userInfo->getId());
>> +
>> + $blogId = $item->getBlog();
>> + $blogs = new Blogs();
>> + $blogInfo = $blogs->getBlogInfo( $blogId );
>> +
>> + $catArray = array();
>> + foreach( $item->getCategories() as $category ) {
>> + $dummy = array();
>> + $dummy["categoryId"] = $category->getId();
>> + $dummy["categoryName"] = $category->getName();
>> +
>> + $catArray[] = $dummy;
>> +
>> + }
>> +
>> + $this->setResponseCharset( $blogInfo );
>> +
>> + return $catArray;
>> + } else
>> + {
>> + return new IXR_Error(-1, 'You did not
>> provide the correct password');
>> + }
>> + }
>> +
>> + function mtSetPostCategories($args)
>> + {
>> + $users = new Users();
>> + $articles = new Articles();
>> +
>> + $postid = $args[0];
>> + $username = $args[1];
>> + $password = $args[2];
>> + $categories = $args[3];
>> +
>> + $auth = $users->authenticateUser($username,$password);
>> +
>> + if ($auth)
>> + {
>> + include_once(
>> +PLOG_CLASS_PATH."class/data/timestamp.class.php" );
>> +
>> + $userInfo =
>> $users->getUserInfoFromUsername( $username );
>> +
>> + $article = $articles->getBlogArticle($postid,
>> + -1, // blogId
>> + true, //
>> includeHiddenFields
>> + -1, // date
>> + -1, // categoryId
>> +
>> $userInfo->getId());
>> +
>> + $blogId = $article->getBlog();
>> + $blogInfo = $article->getBlogInfo();
>> +
>> + $articleCategories = new ArticleCategories();
>> +
>> +
>> + $catArray = Array();
>> +
>> + if ( $categories != NULL )
>> + {
>> + foreach( $categories as $category ) {
>> + // Get the category object for the category
>> + $catArray[] = $category["categoryId"];
>> + }
>> + }
>> +
>> + $article->setCategoryIds($catArray);
>> +
>> + // Get the plugin manager
>> + $plugMgr =&
>> PluginManager::getPluginManager();
>> + $plugMgr->setBlogInfo( $blogInfo );
>> + $plugMgr->setUserInfo( $userInfo );
>> + $plugMgr->loadPlugins();
>> + // Send the
>> EVENT_PRE_POST_UPDATE message
>> + $plugMgr->notifyEvent(
>> EVENT_PRE_POST_UPDATE, Array( "article" => &$article ));
>> +
>> + $articles->updateArticle($article);
>> +
>> + // Send the EVENT_POST_POST_UPDATE messages
>> to the plugins
>> + $plugMgr->notifyEvent(
>> EVENT_POST_POST_UPDATE, Array( "article" => &$article ));
>>
>> +
>> + CacheControl::resetBlogCache( $blogId
>> );
>> +
>> + $this->setResponseCharset( $blogInfo );
>> +
>> + return true;
>> + } else
>> + {
>> + return new IXR_Error(-1, 'You did not
>> provide the correct password');
>> + }
>> + }
>> +
>> }
>> ?>
>> \ No newline at end of file
>>
>> Modified:
>> plog/branches/lifetype-1.1.1/class/test/tests/net/xmlrpc/xmlrp
>> cserver_test.class.php
>> ===================================================================
>> ---
>> plog/branches/lifetype-1.1.1/class/test/tests/net/xmlrpc/xmlrp
>> cserver_test.class.php 2006-09-24 21:06:00 UTC (rev 4040)
>> +++
>> plog/branches/lifetype-1.1.1/class/test/tests/net/xmlrpc/xmlrp
>> cserver_test.class.php 2006-09-24 22:16:14 UTC (rev 4041)
>> @@ -590,6 +590,42 @@
>> $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog),
>> "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> + /** test the extended text feature
>> through MovableType**/
>> + $content = array();
>> + $content["title"] = "topic";
>> + $content["description"] = "Intro text";
>> + $content["mt_text_more"] = "Extended text";
>> + $res = $c->query( "metaWeblog.newPost",
>> + $this->blog->getId(),
>> + $this->owner->getUsername(),
>> + "password",
>> + $content,
>> + true );
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +blogger.newPost" );
>> +
>> + // get the post id and check it in the db
>> + $artId = $c->getResponse();
>> + $articles = new Articles();
>> + $article = $articles->getArticle( $artId );
>> + $this->assertTrue( $article, "Could not
>> load article with id = ".$artId );
>> + if( !$article )
>> + return;
>> + // check that the post has the expected values
>> + $this->assertEquals( "topic",
>> $article->getTopic());
>> + $this->assertEquals( "Intro
>> textExtended text", $article->getText());
>> + $this->assertEquals( "Intro text" .
>> POST_EXTENDED_TEXT_MODIFIER . "Extended text",
>> $article->getText(false));
>> + $this->assertEquals( "Intro text",
>> $article->getIntroText());
>> + $this->assertEquals( "Extended text",
>> $article->getExtendedText());
>> +
>> + // delete the article
>> + $articles->deleteArticle( $artId,
>> $this->owner->getId(),
>> +$this->blog->getId(), true );
>> +
>> + // get the response and see that it has
>> the right encoding
>> + $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog),
>> + "The blog encoding
>> and the response of the XMLRPC
>> +request did not match!" );
>> +
>> }
>>
>>
>> @@ -688,6 +724,67 @@
>> "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>>
>>
>> +
>> + // EXTENDED TEXT, with extended text in mt_more_text
>> + // create a new post first
>> + $article = new Article(
>> + "topic",
>> + "Intro text" .
>> POST_EXTENDED_TEXT_MODIFIER . "Extended text",
>> + Array( $this->cat->getId()),
>> + $this->owner->getId(),
>> + $this->blog->getId(),
>> + POST_STATUS_PUBLISHED,
>> + 0
>> + );
>> +
>> + // Store the setting that mt_more_text
>> should be used
>> + $blogSettings = $this->blog->getSettings();
>> + $blogSettings->setValue(
>> "xmlrpc_movabletype_enabled", true );
>> + $this->blog->setSettings( $blogSettings );
>> + $blogs = new Blogs();
>> + $blogs->updateBlog( $this->blog );
>> +
>> +
>> + $this->assertTrue(
>> $articles->addArticle( $article ), "Unable to add
>> +a new test article" );
>> +
>> + // make the method call
>> + $c = new IXR_Client( $this->url );
>> + $res = $c->query( "metaWeblog.getPost",
>> + $article->getId(),
>> + $this->owner->getUsername(),
>> + "password" );
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +metaweblog.getPost" );
>> +
>> + // make sure that the call returned ok
>> + $response = $c->getResponse();
>> + $this->assertTrue( $response,
>> "metaWeblog.getPost did not return a
>> +valid response" );
>> +
>> + // and now compare that the returned
>> values match with what we expected
>> + $this->assertEquals(
>> $this->owner->getId(), $response["userid"], "The user id of
>> the article does not match" );
>> + $this->assertEquals( "topic",
>> $response["title"], "The topic of the post does not match" );
>> + $this->assertEquals( "Intro text",
>> $response["description"], "The text of the article does not match" );
>> + $this->assertEquals( "Extended text",
>> $response["mt_text_more"], "The text of the extended text
>> does not match" );
>> + $this->assertEquals( $article->getId(),
>> $response["postid"] );
>> + $url = $this->blog->getBlogRequestGenerator();
>> + $this->assertEquals( $url->postLink(
>> $article ), $response["link"], "The post permalink does not match" );
>> + $this->assertEquals(
>> $url->postPermalink( $article ),
>> +$response["permaLink"], "The post permalink does not match" );
>> +
>> + $this->assertTrue(
>> $articles->deleteArticle( $article->getId(),
>> $this->owner->getId(), $this->blog->getId(), true ),
>> + "Error deleting article" );
>> +
>> + // get the response and see that it has
>> the right encoding
>> + $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog ),
>> + "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> +
>> + // Restore the setting
>> + $blogSettings = $this->blog->getSettings();
>> + $blogSettings->setValue(
>> "xmlrpc_movabletype_enabled", false );
>> + $this->blog->setSettings( $blogSettings );
>> + $blogs->updateBlog( $this->blog );
>> +
>> +
>> }
>>
>> /**
>> @@ -724,6 +821,34 @@
>> "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> }
>>
>> + function testMTGetCategoryList()
>> + {
>> + // make the method call
>> + $c = new IXR_Client( $this->url );
>> + $res = $c->query( "mt.getCategoryList",
>> + $this->blog->getId(),
>> + $this->owner->getUsername(),
>> + "password" );
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +mt.getCategoryList" );
>> +
>> + // make sure that the call returned ok
>> + $response = $c->getResponse();
>> + $this->assertTrue( $response,
>> "mt.getCategoryList did not return a
>> +valid response" );
>> +
>> + // there should only be one category
>> + $this->assertTrue(( count( $response )
>> == 1 ), "There should only be
>> +one category returned by mt.getCategoryList" );
>> +
>> + // check that the category settings are correct
>> + $this->assertEquals(
>> $this->cat->getName(), $response[0]["categoryName"], "The
>> category name did not match" );
>> + $this->assertEquals( $this->cat->getId(),
>> +$response[0]["categoryId"], "The category description did
>> not match" );
>> +
>> + // get the response and see that it has
>> the right encoding
>> + $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog ),
>> + "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> + }
>> +
>> function testMetaWeblogGetRecentPosts()
>> {
>> // create a new post first
>> @@ -776,6 +901,119 @@
>>
>> }
>>
>> +
>> + function testMTSupportedTextFilters()
>> + {
>> + // make the method call
>> + $c = new IXR_Client( $this->url );
>> + $res = $c->query( "mt.supportedTextFilters");
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +mt.supportedTextFilters" );
>> +
>> + // make sure that the call returned ok
>> + // there should be no filters
>> + $response = $c->getResponse();
>> + $this->assertFalse( $response,
>> "mt.supportedTextFilters return an
>> +unexpected response" );
>> +
>> + }
>> +
>> + function testMTGetPostCategories()
>> + {
>> + // create a new post first
>> + $article = new Article(
>> + "topic",
>> + "text",
>> + Array( $this->cat->getId()),
>> + $this->owner->getId(),
>> + $this->blog->getId(),
>> + POST_STATUS_PUBLISHED,
>> + 0
>> + );
>> + $articles = new Articles();
>> + $this->assertTrue(
>> $articles->addArticle( $article ), "Unable to add
>> +a new test article" );
>> +
>> + // make the method call
>> + $c = new IXR_Client( $this->url );
>> + $res = $c->query( "mt.getPostCategories",
>> + $article->getId(),
>> + $this->owner->getUsername(),
>> + "password" );
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +mt.getPostCategories" );
>> +
>> + // make sure that the call returned ok
>> + $response = $c->getResponse();
>> + $this->assertTrue( $response,
>> "mt.getPostCategories did not return a
>> +valid response" );
>> +
>> +
>> + // There should only be one category
>> + $this->assertEquals( 1,
>> count($response), "The number of categories
>> +returned by mt.getPostCategories is not correct" );
>> +
>> + // and now compare that the returned
>> values match with what we expected
>> + $this->assertEquals(
>> $this->cat->getName(), $response[0]["categoryName"], "The
>> category name did not match" );
>> + $this->assertEquals( $this->cat->getId(),
>> +$response[0]["categoryId"], "The category description did
>> not match" );
>> +
>> + $this->assertTrue(
>> $articles->deleteArticle( $article->getId(),
>> $this->owner->getId(), $this->blog->getId(), true ),
>> + "Error deleting article" );
>> +
>> + // get the response and see that it has
>> the right encoding
>> + $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog ),
>> + "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> + }
>> +
>> +
>> + function testMTSetPostCategories()
>> + {
>> + // create a new post first, with no category
>> + $article = new Article(
>> + "topic",
>> + "text",
>> + Array(),
>> + $this->owner->getId(),
>> + $this->blog->getId(),
>> + POST_STATUS_PUBLISHED,
>> + 0
>> + );
>> + $articles = new Articles();
>> + $this->assertTrue(
>> $articles->addArticle( $article ), "Unable to add
>> +a new test article" );
>> +
>> + // Construct the Category Struct
>> + $categories = Array();
>> + $theCategory = Array();
>> + $theCategory["categoryName"] =
>> $this->cat->getName();
>> + $theCategory["categoryId"] =
>> $this->cat->getId();
>> + $categories[] = $theCategory;
>> +
>> + // make the method call
>> + $c = new IXR_Client( $this->url );
>> + $res = $c->query( "mt.setPostCategories",
>> + $article->getId(),
>> + $this->owner->getUsername(),
>> + "password",
>> + $categories
>> + );
>> +
>> + // see that the call was successful
>> + $this->assertTrue( $res, "Unable to
>> query ".$this->url." with method
>> +mt.setPostCategories" );
>> +
>> + // make sure that the call returned ok
>> + $response = $c->getResponse();
>> + $this->assertTrue( $response,
>> "mt.setPostCategories did not return a
>> +valid response" );
>> +
>> +
>> + // check that the post was successfully updated
>> + $updatedArticle =
>> $articles->getArticle( $article->getId());
>> + $this->assertEquals( $this->cat->getId(),
>> +$updatedArticle->_categoryIds[0]);
>> +
>> + // get the response and see that it has
>> the right encoding
>> + $this->assertTrue(
>> $this->checkResponseEncoding( $c->message->rawmessage, $this->blog ),
>> + "The blog encoding
>> and the response of the XMLRPC request did not match!" );
>>
>> + }
>> +
>> +
>> +
>> /**
>> * @private
>> */
>>
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://devel.lifetype.net/mailman/listinfo/plog-svn
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn
>
--
Paul Westbrook
paul at westbrooks.org
<http://www.westbrooks.org>
More information about the pLog-svn
mailing list