Skip to content

Commit

Permalink
Test getPost
Browse files Browse the repository at this point in the history
  • Loading branch information
letrunghieu committed Apr 15, 2014
1 parent a46b1c9 commit b4324a2
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 8 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"require": {
"php": ">=5.3.0",
"illuminate/support": "4.1.*",
"illuminate/log": "4.1.*",
"php-vcr/php-vcr": "dev-master"
"illuminate/log": "4.1.*"
},
"require-dev": {
"phpunit/phpunit": "3.7.*",
"php-vcr/php-vcr": "dev-master",
"php-vcr/phpunit-testlistener-vcr": "*"
},
"autoload": {
Expand Down
18 changes: 12 additions & 6 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
bootstrap="tests/bootstrap.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
Expand All @@ -10,9 +10,15 @@
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Package Test Suite">
<directory suffix=".php">./tests/</directory>
</testsuite>
</testsuites>
<php>
<ini name="display_errors" value="true"/>
</php>
<testsuites>
<testsuite name="Package Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
<listeners>
<listener class="PHPUnit_Util_Log_VCR" file="vendor/php-vcr/phpunit-testlistener-vcr/PHPUnit/Util/Log/VCR.php" />
</listeners>
</phpunit>
48 changes: 48 additions & 0 deletions tests/WordpressClientTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php
namespace HieuLe\WordpressXmlrpcClient;

/**
* Description of WordpressClientTest
*
* @author TrungHieu
*/
class WordpressClientTest extends \PHPUnit_Framework_TestCase
{
/**
*
* @var WordpressClient
*/
protected $client;

public function setUp()
{
$this->client = new WordpressClient('http://WP_DOMAIN/xmlrpc.php', 'WP_USER', 'WP_PASSWORD');
}

public function tearDown()
{
$this->client = NULL;
}

/**
* @vcr get-post-full-test-vcr.yml
*/
public function testGetPostWithInformation()
{
$post = $this->client->getPost(219);
$this->assertArrayHasKey('post_title', $post);
$this->assertArrayHasKey('post_date', $post);
$this->assertSame('The post number six', $post['post_title']);
}

/**
* @vcr get-post-selected-test-vcr.yml
*/
public function testGetPostWithSelectedInformation()
{
$post = $this->client->getPost(219, array('post_title', 'post_status'));
$this->assertArrayHasKey('post_title', $post);
$this->assertArrayNotHasKey('post_date', $post);
}

}
14 changes: 14 additions & 0 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

if (!file_exists(__DIR__ . "/../vendor/autoload.php")) {
die(
"\n[ERROR] You need to run composer before running the test suite.\n".
"To do so run the following commands:\n".
" curl -s http://getcomposer.org/installer | php\n".
" php composer.phar install\n\n"
);
}

require_once __DIR__ . '/../vendor/autoload.php';

\VCR\VCR::configure()->enableLibraryHooks(array('stream_wrapper'));
20 changes: 20 additions & 0 deletions tests/fixtures/get-post-full-test-vcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

-
request:
method: POST
url: 'http://WP_DOMAIN/xmlrpc.php'
headers:
host: WP_DOMAIN
content-length: 375
body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<methodCall>\n<methodName>wp.getPost</methodName>\n<params>\n <param>\n <value>\n <int>1</int>\n </value>\n </param>\n <param>\n <value>\n <string>WP_USER</string>\n </value>\n </param>\n <param>\n <value>\n <string>WP_PASSWORD</string>\n </value>\n </param>\n <param>\n <value>\n <int>219</int>\n </value>\n </param>\n</params>\n</methodCall>\n"
response:
status: 200
headers:
Date: 'Tue, 15 Apr 2014 05:40:47 GMT'
Server: 'Apache/2.4.2 (Win64) OpenSSL/1.0.1c PHP/5.4.3'
X-Powered-By: PHP/5.4.3
Set-Cookie: '_icl_current_language=en; expires=Wed, 16-Apr-2014 05:40:48 GMT; path=/'
Connection: close
Content-Length: '10210'
Content-Type: 'text/xml; charset=UTF-8'
body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<methodResponse>\n <params>\n <param>\n <value>\n <struct>\n <member><name>post_id</name><value><string>219</string></value></member>\n <member><name>post_title</name><value><string>The post number six</string></value></member>\n <member><name>post_date</name><value><dateTime.iso8601>20130903T07:22:14</dateTime.iso8601></value></member>\n <member><name>post_date_gmt</name><value><dateTime.iso8601>20130903T07:22:14</dateTime.iso8601></value></member>\n <member><name>post_modified</name><value><dateTime.iso8601>20130903T07:22:14</dateTime.iso8601></value></member>\n <member><name>post_modified_gmt</name><value><dateTime.iso8601>20130903T07:22:14</dateTime.iso8601></value></member>\n <member><name>post_status</name><value><string>publish</string></value></member>\n <member><name>post_type</name><value><string>post</string></value></member>\n <member><name>post_name</name><value><string>the-post-number-six</string></value></member>\n <member><name>post_author</name><value><string>1</string></value></member>\n <member><name>post_password</name><value><string></string></value></member>\n <member><name>post_excerpt</name><value><string></string></value></member>\n <member><name>post_content</name><value><string>Lorem ipsum dolor sit amet, potentiam suos Tyrium coniugem Chaldaeorum in. Volentes mihi cum suam ut libertatem accipies Antiochus exercet, reflexio mihi cum unde ascendit amabat in fuerat est in. Supponite facultatibus actum justo libertatem deum Apollonius ut libertatem accipies. Erras nisi auri Neptunus spatia tribulatione ad suis ut libertatem non solutionem invenerunt aspectu advenerunt ad te. Dicis Deducitur potest contremiscunt eum est cum magna.</string></value></member>\n <member><name>post_parent</name><value><string>0</string></value></member>\n <member><name>post_mime_type</name><value><string></string></value></member>\n <member><name>link</name><value><string>http://WP_DOMAIN/resort/experience-the-cliff/travel-experience/the-post-number-six/</string></value></member>\n <member><name>guid</name><value><string>http://WP_DOMAIN/?p=219</string></value></member>\n <member><name>menu_order</name><value><int>0</int></value></member>\n <member><name>comment_status</name><value><string>open</string></value></member>\n <member><name>ping_status</name><value><string>open</string></value></member>\n <member><name>sticky</name><value><boolean>0</boolean></value></member>\n <member><name>post_thumbnail</name><value><struct>\n <member><name>attachment_id</name><value><string>19</string></value></member>\n <member><name>date_created_gmt</name><value><dateTime.iso8601>20130809T15:28:24</dateTime.iso8601></value></member>\n <member><name>parent</name><value><int>5</int></value></member>\n <member><name>link</name><value><string>http://WP_DOMAIN/wp-content/uploads/2013/08/resort_slide.jpg</string></value></member>\n <member><name>title</name><value><string>resort_slide</string></value></member>\n <member><name>caption</name><value><string></string></value></member>\n <member><name>description</name><value><string></string></value></member>\n <member><name>metadata</name><value><struct>\n <member><name>width</name><value><int>800</int></value></member>\n <member><name>height</name><value><int>560</int></value></member>\n <member><name>file</name><value><string>2013/08/resort_slide.jpg</string></value></member>\n <member><name>sizes</name><value><struct>\n <member><name>thumbnail</name><value><struct>\n <member><name>file</name><value><string>resort_slide-150x150.jpg</string></value></member>\n <member><name>width</name><value><int>150</int></value></member>\n <member><name>height</name><value><int>150</int></value></member>\n <member><name>mime-type</name><value><string>image/jpeg</string></value></member>\n</struct></value></member>\n <member><name>medium</name><value><struct>\n <member><name>file</name><value><string>resort_slide-300x210.jpg</string></value></member>\n <member><name>width</name><value><int>300</int></value></member>\n <member><name>height</name><value><int>210</int></value></member>\n <member><name>mime-type</name><value><string>image/jpeg</string></value></member>\n</struct></value></member>\n</struct></value></member>\n <member><name>image_meta</name><value><struct>\n <member><name>aperture</name><value><int>0</int></value></member>\n <member><name>credit</name><value><string></string></value></member>\n <member><name>camera</name><value><string></string></value></member>\n <member><name>caption</name><value><string></string></value></member>\n <member><name>created_timestamp</name><value><int>0</int></value></member>\n <member><name>copyright</name><value><string></string></value></member>\n <member><name>focal_length</name><value><int>0</int></value></member>\n <member><name>iso</name><value><int>0</int></value></member>\n <member><name>shutter_speed</name><value><int>0</int></value></member>\n <member><name>title</name><value><string></string></value></member>\n</struct></value></member>\n</struct></value></member>\n <member><name>thumbnail</name><value><string>http://WP_DOMAIN/wp-content/uploads/2013/08/resort_slide-150x150.jpg</string></value></member>\n</struct></value></member>\n <member><name>post_format</name><value><string>standard</string></value></member>\n <member><name>terms</name><value><array><data>\n <value><struct>\n <member><name>term_id</name><value><string>11</string></value></member>\n <member><name>name</name><value><string>Travel</string></value></member>\n <member><name>slug</name><value><string>travel-experience</string></value></member>\n <member><name>term_group</name><value><string>0</string></value></member>\n <member><name>term_taxonomy_id</name><value><string>11</string></value></member>\n <member><name>taxonomy</name><value><string>category</string></value></member>\n <member><name>description</name><value><string></string></value></member>\n <member><name>parent</name><value><string>10</string></value></member>\n <member><name>count</name><value><int>6</int></value></member>\n <member><name>filter</name><value><string>raw</string></value></member>\n</struct></value>\n</data></array></value></member>\n <member><name>custom_fields</name><value><array><data>\n <value><struct>\n <member><name>id</name><value><string>1408</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_canonical</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1399</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_focuskw</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1411</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_google-plus-description</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1393</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_linkdex</string></value></member>\n <member><name>value</name><value><string>0</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1404</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_meta-robots-adv</string></value></member>\n <member><name>value</name><value><string>none</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1403</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_meta-robots-nofollow</string></value></member>\n <member><name>value</name><value><string>0</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1402</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_meta-robots-noindex</string></value></member>\n <member><name>value</name><value><string>0</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1401</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_metadesc</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1410</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_opengraph-description</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1409</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_redirect</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1407</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_sitemap-html-include</string></value></member>\n <member><name>value</name><value><string>-</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1405</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_sitemap-include</string></value></member>\n <member><name>value</name><value><string>-</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1406</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_sitemap-prio</string></value></member>\n <member><name>value</name><value><string>-</string></value></member>\n</struct></value>\n <value><struct>\n <member><name>id</name><value><string>1400</string></value></member>\n <member><name>key</name><value><string>_yoast_wpseo_title</string></value></member>\n <member><name>value</name><value><string></string></value></member>\n</struct></value>\n</data></array></value></member>\n</struct>\n </value>\n </param>\n </params>\n</methodResponse>\n"
20 changes: 20 additions & 0 deletions tests/fixtures/get-post-selected-test-vcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

-
request:
method: POST
url: 'http://WP_DOMAIN/xmlrpc.php'
headers:
host: WP_DOMAIN
content-length: 584
body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<methodCall>\n<methodName>wp.getPost</methodName>\n<params>\n <param>\n <value>\n <int>1</int>\n </value>\n </param>\n <param>\n <value>\n <string>WP_USER</string>\n </value>\n </param>\n <param>\n <value>\n <string>WP_PASSWORD</string>\n </value>\n </param>\n <param>\n <value>\n <int>219</int>\n </value>\n </param>\n <param>\n <value>\n <array>\n <data>\n <value>\n <string>post_title</string>\n </value>\n <value>\n <string>post_status</string>\n </value>\n </data>\n </array>\n </value>\n </param>\n</params>\n</methodCall>\n"
response:
status: 200
headers:
Date: 'Tue, 15 Apr 2014 05:40:49 GMT'
Server: 'Apache/2.4.2 (Win64) OpenSSL/1.0.1c PHP/5.4.3'
X-Powered-By: PHP/5.4.3
Set-Cookie: '_icl_current_language=en; expires=Wed, 16-Apr-2014 05:40:50 GMT; path=/'
Connection: close
Content-Length: '428'
Content-Type: 'text/xml; charset=UTF-8'
body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<methodResponse>\n <params>\n <param>\n <value>\n <struct>\n <member><name>post_id</name><value><string>219</string></value></member>\n <member><name>post_title</name><value><string>The post number six</string></value></member>\n <member><name>post_status</name><value><string>publish</string></value></member>\n</struct>\n </value>\n </param>\n </params>\n</methodResponse>\n"

0 comments on commit b4324a2

Please sign in to comment.