annotate default/assets/vendors/theme-widgets/vendor/abraham/twitteroauth/tests/TwitterOAuthTest.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 * WARNING: Running these tests will post and delete through the actual Twitter account.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 namespace Abraham\TwitterOAuth\Test;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 use Abraham\TwitterOAuth\TwitterOAuth;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 class TwitterOAuthTest extends \PHPUnit_Framework_TestCase
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 /** @var TwitterOAuth */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 protected $twitter;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 protected function setUp()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 $this->twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 public function testBuildClient()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 $this->assertObjectHasAttribute('consumer', $this->twitter);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 $this->assertObjectHasAttribute('token', $this->twitter);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 public function testSetOauthToken()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 $twitter->setOauthToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 $this->assertObjectHasAttribute('consumer', $twitter);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 $this->assertObjectHasAttribute('token', $twitter);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 $twitter->get('friendships/show', ['target_screen_name' => 'twitterapi']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 $this->assertEquals(200, $twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 public function testOauth2Token()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 $result = $twitter->oauth2('oauth2/token', ['grant_type' => 'client_credentials']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 $this->assertEquals(200, $twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 $this->assertObjectHasAttribute('token_type', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 $this->assertObjectHasAttribute('access_token', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 $this->assertEquals('bearer', $result->token_type);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 * @depends testOauth2Token
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 public function testBearerToken($accessToken)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, null, $accessToken->access_token);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 $result = $twitter->get('statuses/user_timeline', ['screen_name' => 'twitterapi']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 if ($twitter->getLastHttpCode() !== 200) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 $this->assertEquals('foo', substr($accessToken->access_token, 0, 75));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 $this->assertEquals('foo', print_r($result, true));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 $this->assertEquals(200, $twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 return $accessToken;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 // This causes issues for parallel run tests.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 // /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 // * @depends testBearerToken
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 // */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 // public function testOauth2TokenInvalidate($accessToken)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 // {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 // $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 // // HACK: access_token is already urlencoded but gets urlencoded again breaking the invalidate request.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 // $result = $twitter->oauth2(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 // 'oauth2/invalidate_token',
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71 // array('access_token' => urldecode($accessToken->access_token))
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 // );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 // $this->assertEquals(200, $twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 // $this->assertObjectHasAttribute('access_token', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 // return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 // }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 public function testOauthRequestToken()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 $result = $twitter->oauth('oauth/request_token', ['oauth_callback' => OAUTH_CALLBACK]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 $this->assertEquals(200, $twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83 $this->assertArrayHasKey('oauth_token', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84 $this->assertArrayHasKey('oauth_token_secret', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85 $this->assertArrayHasKey('oauth_callback_confirmed', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86 $this->assertEquals('true', $result['oauth_callback_confirmed']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 * @expectedException \Abraham\TwitterOAuth\TwitterOAuthException
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92 * @expectedExceptionMessage Could not authenticate you
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94 public function testOauthRequestTokenException()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96 $twitter = new TwitterOAuth('CONSUMER_KEY', 'CONSUMER_SECRET');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97 $result = $twitter->oauth('oauth/request_token', ['oauth_callback' => OAUTH_CALLBACK]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102 * @expectedException \Abraham\TwitterOAuth\TwitterOAuthException
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103 * @expectedExceptionMessage Invalid oauth_verifier parameter
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 * @depends testOauthRequestToken
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106 public function testOauthAccessTokenTokenException(array $requestToken)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
107 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
108 // Can't test this without a browser logging into Twitter so check for the correct error instead.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
109 $twitter = new TwitterOAuth(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
110 CONSUMER_KEY,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
111 CONSUMER_SECRET,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
112 $requestToken['oauth_token'],
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
113 $requestToken['oauth_token_secret']
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
114 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
115 $twitter->oauth("oauth/access_token", ["oauth_verifier" => "fake_oauth_verifier"]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
116 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
117
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
118 public function testUrl()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
119 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
120 $url = $this->twitter->url('oauth/authorize', ['foo' => 'bar', 'baz' => 'qux']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
121 $this->assertEquals('https://api.twitter.com/oauth/authorize?foo=bar&baz=qux', $url);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
122 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
123
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
124 public function testGetAccountVerifyCredentials()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
125 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
126 // Include entities boolean added to test parameter value cohearsion
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
127 $this->twitter->get('account/verify_credentials', ["include_entities" => false]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
128 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
129 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
130
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
131 // BUG: testing is too unreliable for now
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
132 // public function testSetProxy()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
133 // {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
134 // $this->twitter->setProxy(array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
135 // 'CURLOPT_PROXY' => PROXY,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
136 // 'CURLOPT_PROXYUSERPWD' => PROXYUSERPWD,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
137 // 'CURLOPT_PROXYPORT' => PROXYPORT,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
138 // ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
139 // $this->twitter->setTimeouts(60, 60);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
140 // $result = $this->twitter->get('account/verify_credentials');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
141 // $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
142 // $this->assertObjectHasAttribute('id', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
143 // }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
144
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
145 public function testGetStatusesMentionsTimeline()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
146 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
147 $this->twitter->get('statuses/mentions_timeline');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
148 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
149 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
150
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
151 public function testGetSearchTweets()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
152 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
153 $result = $this->twitter->get('search/tweets', ['q' => 'twitter']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
154 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
155 return $result->statuses;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
156 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
157
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
158 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
159 * @depends testGetSearchTweets
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
160 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
161 public function testGetSearchTweetsWithMaxId($statuses)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
162 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
163 $maxId = array_pop($statuses)->id_str;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
164 $this->twitter->get('search/tweets', ['q' => 'twitter', 'max_id' => $maxId]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
165 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
166 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
167
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
168 public function testPostFavoritesCreate()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
169 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
170 $result = $this->twitter->post('favorites/create', ['id' => '6242973112']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
171 if ($this->twitter->getLastHttpCode() == 403) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
172 // Status already favorited
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
173 $this->assertEquals(139, $result->errors[0]->code);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
174 } else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
175 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
176 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
177 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
178
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
179 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
180 * @depends testPostFavoritesCreate
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
181 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
182 public function testPostFavoritesDestroy()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
183 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
184 $this->twitter->post('favorites/destroy', ['id' => '6242973112']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
185 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
186 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
187
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
188 public function testPostStatusesUpdateWithMedia()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
189 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
190 $this->twitter->setTimeouts(60, 30);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
191 // Image source https://www.flickr.com/photos/titrans/8548825587/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
192 $file_path = __DIR__ . '/kitten.jpg';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
193 $result = $this->twitter->upload('media/upload', ['media' => $file_path]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
194 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
195 $this->assertObjectHasAttribute('media_id_string', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
196 $parameters = ['status' => 'Hello World ' . time(), 'media_ids' => $result->media_id_string];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
197 $result = $this->twitter->post('statuses/update', $parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
198 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
199 if ($this->twitter->getLastHttpCode() == 200) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
200 $result = $this->twitter->post('statuses/destroy/' . $result->id_str);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
201 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
202 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
203 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
204
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
205 public function testPostStatusesUpdateWithMediaChunked()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
206 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
207 $this->twitter->setTimeouts(60, 30);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
208 // Video source http://www.sample-videos.com/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
209 $file_path = __DIR__ . '/video.mp4';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
210 $result = $this->twitter->upload('media/upload', ['media' => $file_path, 'media_type' => 'video/mp4'], true);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
211 $this->assertEquals(201, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
212 $this->assertObjectHasAttribute('media_id_string', $result);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
213 $parameters = ['status' => 'Hello World ' . time(), 'media_ids' => $result->media_id_string];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
214 $result = $this->twitter->post('statuses/update', $parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
215 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
216 if ($this->twitter->getLastHttpCode() == 200) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
217 $result = $this->twitter->post('statuses/destroy/' . $result->id_str);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
218 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
219 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
220 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
221
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
222 public function testPostStatusesUpdateUtf8()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
223 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
224 $result = $this->twitter->post('statuses/update', ['status' => 'xこんにちは世界 ' . time()]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
225 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
226 return $result;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
227 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
228
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
229 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
230 * @depends testPostStatusesUpdateUtf8
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
231 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
232 public function testPostStatusesDestroy($status)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
233 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
234 $this->twitter->post('statuses/destroy/' . $status->id_str);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
235 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
236 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
237
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
238 public function testLastResult()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
239 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
240 $this->twitter->get('search/tweets', ['q' => 'twitter']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
241 $this->assertEquals('search/tweets', $this->twitter->getLastApiPath());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
242 $this->assertEquals(200, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
243 $this->assertObjectHasAttribute('statuses', $this->twitter->getLastBody());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
244 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
245
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
246 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
247 * @depends testLastResult
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
248 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
249 public function testResetLastResponse()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
250 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
251 $this->twitter->resetLastResponse();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
252 $this->assertEquals('', $this->twitter->getLastApiPath());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
253 $this->assertEquals(0, $this->twitter->getLastHttpCode());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
254 $this->assertEquals([], $this->twitter->getLastBody());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
255 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
256 }