/** * Ensure that post data is sorted and encoded. * * Keys with array values have to be serialized using * a more standard HTTP approach. PHP flavoured HTTP * is not part of the Oauth spec. * * See Normalize Request Parameters (section 9.1.1) * http://wiki.oauth.net/w/page/12238556/TestCases * * @return void */ public function testBaseStringWithPostData() { $request = new Request(); $request->url('http://example.com/search?q=pogo')->method(Request::METHOD_POST)->body(['address' => 'post', 'tags' => ['oauth', 'cake'], 'zed' => 'last']); $auth = new Oauth(); $values = ['oauth_version' => '1.0', 'oauth_nonce' => uniqid(), 'oauth_timestamp' => time(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => 'token', 'oauth_consumer_key' => 'consumer-key']; $result = $auth->baseString($request, $values); $this->assertContains('POST&', $result, 'method was missing.'); $this->assertContains('http%3A%2F%2Fexample.com%2Fsearch&', $result); $this->assertContains('&address%3Dpost' . '%26oauth_consumer_key%3Dconsumer-key' . '%26oauth_nonce%3D' . $values['oauth_nonce'] . '%26oauth_signature_method%3DHMAC-SHA1' . '%26oauth_timestamp%3D' . $values['oauth_timestamp'] . '%26oauth_token%3Dtoken' . '%26oauth_version%3D1.0' . '%26q%3Dpogo' . '%26tags%3Dcake' . '%26tags%3Doauth' . '%26zed%3Dlast', $result); }