/** * @covers SimplyDO\OAuthResponse::setResponse * @covers SimplyDO\OAuthResponse::getJsonResponse */ public function testShouldSetAndGetJsonResponse() { $json = json_encode(['key' => 'value']); $this->model->setResponse($json); $response = $this->model->getJsonResponse(); $this->assertSame($json, $response); $this->assertFalse(is_array($response)); $this->assertArrayHasKey('key', json_decode($response, 1)); }
/** * Performs a OAuth curl request. * * @param string $url * @param array $params * @param string $method * @param bool $multipart * * @return OAuthResponse */ protected function curlRequest($url, $params = [], $method = 'GET', $multipart = false) { $curl = curl_init(); $requestUrl = $url; if ($method == 'GET') { $requestUrl = $url . '?' . $this->formatQueryString($params); } else { curl_setopt($curl, CURLOPT_POST, true); if ($multipart) { $data = $this->buildMultipartContent($params['media_file']); $this->setRequestBody($data); } else { $this->setRequestBody($this->formatQueryString($params)); } curl_setopt($curl, CURLOPT_POSTFIELDS, $this->getRequestBody()); } $this->buildHeaders($method, $url, $params, $multipart); curl_setopt_array($curl, [CURLOPT_USERAGENT => $this->userAgent, CURLOPT_CONNECTTIMEOUT => 60, CURLOPT_TIMEOUT => 20, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $requestUrl, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true, CURLOPT_HTTPHEADER => $this->getHeaders()]); $response = new OAuthResponse(); $response->setResponse(curl_exec($curl)); $response->setCode(curl_getinfo($curl, CURLINFO_HTTP_CODE)); $response->setInfo(curl_getinfo($curl)); $response->setError(curl_error($curl)); $response->setErrno(curl_errno($curl)); curl_close($curl); return $response; }