[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