summaryrefslogtreecommitdiff
path: root/http/codebird-php/test/replyparse_tests.php
diff options
context:
space:
mode:
Diffstat (limited to 'http/codebird-php/test/replyparse_tests.php')
-rw-r--r--http/codebird-php/test/replyparse_tests.php361
1 files changed, 0 insertions, 361 deletions
diff --git a/http/codebird-php/test/replyparse_tests.php b/http/codebird-php/test/replyparse_tests.php
deleted file mode 100644
index f1436fd..0000000
--- a/http/codebird-php/test/replyparse_tests.php
+++ /dev/null
@@ -1,361 +0,0 @@
-<?php
-
-namespace Codebird;
-require_once ('test/codebirdm.php');
-
-/**
- * A Twitter library in PHP.
- *
- * @package codebird-test
- * @author Jublo Solutions <support@jublo.net>
- * @copyright 2010-2016 Jublo Solutions <support@jublo.net>
- * @license https://opensource.org/licenses/GPL-3.0 GNU General Public License 3.0
- * @link https://github.com/jublonet/codebird-php
- */
-
-/**
- * Reply parsing tests
- *
- * @package codebird-test
- */
-class Replyparse_Test extends \PHPUnit_Framework_TestCase
-{
- /**
- * Initialise Codebird class
- *
- * @return \Codebird\Codebird The Codebird class
- */
- protected function getCB()
- {
- Codebird::setConsumerKey('123', '456');
- $cb = new CodebirdM();
-
- return $cb;
- }
-
- /**
- * Tests _getHttpStatusFromHeaders
- */
- public function testGetHttpStatusFromHeaders()
- {
- $cb = $this->getCB();
- $this->assertEquals(
- '500',
- $cb->call('_getHttpStatusFromHeaders', [['']])
- );
- $this->assertEquals(
- '200',
- $cb->call('_getHttpStatusFromHeaders', [
- ['HTTP/1.1 200 OK'],
- ['X-Some-Data: test']
- ])
- );
- $this->assertEquals(
- '404',
- $cb->call('_getHttpStatusFromHeaders', [
- ['HTTP/1.1 404 Not Found'],
- ['X-Some-Data: test']
- ])
- );
- }
-
- /**
- * Tests _parseBearerReply
- */
- public function testParseBearerReply()
- {
- $cb = $this->getCB();
- $cb->setBearerToken(null);
- // get raw reply from mock collection
- $reply = $cb->getStatic('_mock_replies')['POST https://api.twitter.com/oauth2/token'];
- // check that bearer token is not yet set
- $this->assertNull($cb->getStatic('_bearer_token'));
- // parse it as object
- $result = $cb->call(
- '_parseBearerReply',
- [
- $reply['reply'],
- $reply['httpstatus']
- ]
- );
- $expected = new \stdClass;
- $expected->token_type = 'bearer';
- $expected->access_token = 'VqiO0n2HrKE';
- $expected->httpstatus = 200;
- $expected->rate = null;
- $this->assertEquals($expected, $result);
- // check that bearer token was actually set
- $this->assertNotNull($cb->getStatic('_bearer_token'));
-
- // array
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $cb->setBearerToken(null);
- $result = $cb->call(
- '_parseBearerReply',
- [
- $reply['reply'],
- $reply['httpstatus']
- ]
- );
- $expected = [
- 'token_type' => 'bearer',
- 'access_token' => 'VqiO0n2HrKE',
- 'httpstatus' => 200,
- 'rate' => null
- ];
- $this->assertEquals($expected, $result);
- // check that bearer token was actually set
- $this->assertNotNull($cb->getStatic('_bearer_token'));
-
- // JSON
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_JSON);
- $cb->setBearerToken(null);
- $result = $cb->call(
- '_parseBearerReply',
- [
- $reply['reply'],
- $reply['httpstatus']
- ]
- );
- $expected = '{"token_type":"bearer","access_token":"VqiO0n2HrKE"}';
- $this->assertEquals($expected, $result);
- // check that bearer token was actually set
- $this->assertNotNull($cb->getStatic('_bearer_token'));
- }
-
- /**
- * Tests _getRateLimitInfo
- */
- public function testGetRateLimitInfo()
- {
- $cb = $this->getCB();
- $headers = [
- 'content-length' => 68,
- 'content-type' => 'application/json;charset=utf-8',
- 'date' => 'Sun, 06 Dec 2015 14:43:28 GMT'
- ];
- $this->assertNull($cb->call('_getRateLimitInfo', [$headers]));
-
- // set rate-limit headers
- $headers['x-rate-limit-limit'] = 180;
- $headers['x-rate-limit-remaining'] = 123;
- $headers['x-rate-limit-reset'] = time() + 234;
- $rate = $cb->call('_getRateLimitInfo', [$headers]);
- $expected = new \stdClass;
- $expected->limit = $headers['x-rate-limit-limit'];
- $expected->remaining = $headers['x-rate-limit-remaining'];
- $expected->reset = $headers['x-rate-limit-reset'];
- $this->assertEquals($expected, $rate);
-
- // array
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $rate = $cb->call('_getRateLimitInfo', [$headers]);
- $expected = [
- 'limit' => $headers['x-rate-limit-limit'],
- 'remaining' => $headers['x-rate-limit-remaining'],
- 'reset' => $headers['x-rate-limit-reset']
- ];
- $this->assertEquals($expected, $rate);
- }
-
- /**
- * Tests _validateSslCertificate
- */
- public function testValidateSslCertificate1()
- {
- $cb = $this->getCB();
- $cb->call('_validateSslCertificate', [0]);
- }
-
- /**
- * Tests _validateSslCertificate
- * @expectedException \Exception
- * @expectedExceptionMessage Error 58 while validating the Twitter API certificate.
- */
- public function testValidateSslCertificate2()
- {
- $cb = $this->getCB();
- $cb->call('_validateSslCertificate', [CURLE_SSL_CERTPROBLEM]);
- }
-
- /**
- * Tests _appendHttpStatusAndRate
- */
- public function testAppendHttpStatusAndRate()
- {
- $cb = $this->getCB();
-
- // object
- $reply = new \stdClass;
- $reply->somedata = 123;
- $reply->moredata = '456';
- $rate = new \stdClass;
- $rate->field1 = 180;
- $rate->field2 = 177;
- $expected = new \stdClass;
- $expected->somedata = 123;
- $expected->moredata = '456';
- $expected->httpstatus = 409;
- $expected->rate = new \stdClass;
- $expected->rate->field1 = 180;
- $expected->rate->field2 = 177;
- $this->assertEquals(
- $expected,
- $cb->call('_appendHttpStatusAndRate', [$reply, 409, $rate])
- );
-
- // array
- $reply = (array) $reply;
- $rate = (array) $rate;
- $expected = (array) $expected;
- $expected['rate'] = (array) $expected['rate'];
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $this->assertEquals(
- $expected,
- $cb->call('_appendHttpStatusAndRate', [$reply, 409, $rate])
- );
-
- // JSON
- $reply = '{"somedata":123,"moredata":"456"}';
- $expected = '{"somedata":123,"moredata":"456","httpstatus":409,'
- . '"rate":{"field1":180,"field2":177}}';
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_JSON);
- $this->assertEquals(
- $expected,
- $cb->call('_appendHttpStatusAndRate', [$reply, 409, $rate])
- );
- }
-
- /**
- * Tests _parseApiHeaders
- */
- public function testParseApiHeaders()
- {
- $cb = $this->getCB();
- $data = $cb->getStatic('_mock_replies')['default']['reply'];
- list($headers, $reply) = $cb->call('_parseApiHeaders', [$data]);
- $expected_headers = [
- 'HTTP/1.1 404 Not Found' => '',
- 'content-length' => '68',
- 'content-type' => 'application/json;charset=utf-8',
- 'date' => 'Sun, 06 Dec 2015 14:43:28 GMT',
- 'server' => 'tsa_b',
- 'set-cookie' => 'guest_id=v1%3A144941300885288055; Domain=.twitter.com'
- . '; Path=/; Expires=Tue, 05-Dec-2017 14:43:28 UTC',
- 'strict-transport-security' => 'max-age=631138519',
- 'x-connection-hash' => '12218aef9e9757609afb08e661fa3b9b',
- 'x-response-time' => '2'
- ];
- $expected_reply = '{"errors":[{"message":"Sorry, that page does not exist","code":34}]}';
- $this->assertEquals($expected_headers, $headers);
- $this->assertEquals($expected_reply, $reply);
-
- // proxy
- $data = $cb->getStatic('_mock_replies')['proxy1']['reply'];
- list($headers, $reply) = $cb->call('_parseApiHeaders', [$data]);
- $this->assertEquals($expected_headers, $headers);
- $this->assertEquals($expected_reply, $reply);
- }
-
- /**
- * Tests _parseApiReplyPrefillHeaders
- */
- public function testParseApiReplyPrefillHeaders()
- {
- $cb = $this->getCB();
- $headers = [
- 'X-TON-Min-Chunk-Size' => '12345',
- 'X-TON-Max-Chunk-Size' => '23456',
- 'Range' => 'bytes 0-1234567/2345678'
- ];
-
- // non-empty reply: no touching
- $this->assertEquals(
- '123',
- $cb->call('_parseApiReplyPrefillHeaders', [$headers, '123'])
- );
-
- // no location header: no touching
- $this->assertEquals(
- '',
- $cb->call('_parseApiReplyPrefillHeaders', [$headers, ''])
- );
-
- $headers['Location'] = 'https://twitter.com';
- $this->assertEquals(
- '{"Location":"https:\/\/twitter.com","X-TON-Min-Chunk-Size":"12345",'
- . '"X-TON-Max-Chunk-Size":"23456","Range":"bytes 0-1234567\/2345678"}',
- $cb->call('_parseApiReplyPrefillHeaders', [$headers, ''])
- );
- }
-
- /**
- * Tests _parseApiReply
- */
- public function testParseApiReply1()
- {
- $cb = $this->getCB();
-
- // object
- $this->assertEquals(new \stdClass, $cb->call('_parseApiReply', ['[]']));
-
- // array
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $this->assertEquals([], $cb->call('_parseApiReply', ['[]']));
-
- // JSON
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_JSON);
- $this->assertEquals('{}', $cb->call('_parseApiReply', ['[]']));
- }
-
- /**
- * Tests _parseApiReply
- */
- public function testParseApiReply2()
- {
- $cb = $this->getCB();
- $reply = '{"id_str":"6253282","profile_location":null,'
- . '"status":{"created_at":"Tue Nov 24 08:56:07 +0000 2015","id":669077021138493440}}';
-
- // object
- $expected = new \stdClass;
- $expected->id_str = '6253282';
- $expected->profile_location = null;
- $expected->status = new \stdClass;
- $expected->status->created_at = 'Tue Nov 24 08:56:07 +0000 2015';
- $expected->status->id = 669077021138493440;
- $result = $cb->call('_parseApiReply', [$reply]);
- $this->assertEquals($expected, $result);
- $this->assertSame($expected->status->id, $result->status->id);
-
- // array
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $expected = (array) $expected;
- $expected['status'] = (array) $expected['status'];
- $this->assertEquals($expected, $cb->call('_parseApiReply', [$reply]));
-
- // JSON
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_JSON);
- $this->assertEquals($reply, $cb->call('_parseApiReply', [$reply]));
-
- // query-string format
- $cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
- $this->assertEquals(
- [
- 'oauth_token' => 'ABC',
- 'oauth_token_secret' => 'def',
- 'oauth_callback_confirmed' => 'true'
- ],
- $cb->call(
- '_parseApiReply',
- ['oauth_token=ABC&oauth_token_secret=def&oauth_callback_confirmed=true']
- )
- );
-
- // message
- $this->assertEquals(
- ['message' => 'This is just a message.'],
- $cb->call('_parseApiReply', ['This is just a message.'])
- );
- }
-}