/**
  * Perform API request
  *
  * @param string $endpoint
  * @param string $apiKey
  * @return Varien_Object
  * @throws Exception
  * @throws Zend_Http_Client_Exception
  */
 public function performHTTPRequest($endpoint, $apiKey)
 {
     /** @var RapidCampaign_Promotions_Model_HttpClient $client */
     $client = Mage::getSingleton('rapidcampaign_promotions/httpClient');
     $client->setUri($endpoint)->setMethod(Varien_Http_Client::GET)->setHeaders('Accept', 'application/json')->setHeaders('x-api-key', $apiKey);
     $response = $client->request();
     $responseObject = new Varien_Object();
     $responseObject->setResponse($response);
     // Magento 1.7 compatibility fix: chuncked body is already decoded, but header is not deleted
     if (strtolower($response->getHeader('transfer-encoding')) === 'chunked') {
         try {
             $body = $response->getBody();
         } catch (Zend_Http_Exception $e) {
             $body = $response->getRawBody();
         }
     } else {
         $body = $response->getBody();
     }
     $responseObject->setBody($body);
     /** @var RapidCampaign_Promotions_Model_Log $logger */
     $logger = Mage::getSingleton('rapidcampaign_promotions/log');
     // Log API communication
     $logger->log('Request: ' . $endpoint . "\n\n" . $client->getHeadersAsString() . "\n" . $client->getBody() . "\n" . $response->getHeadersAsString() . "\n" . $responseObject->getBody() . "\n");
     return $responseObject;
 }
 public function testMassDisableValidationActionValidateException()
 {
     $objectFixture = new Xcom_Mmp_Model_Resource_ChannelControllerTest_Fixture();
     Mage::registerMockResourceModel('xcom_mmp/channel', $objectFixture);
     $request = $this->_getRequest(true);
     $request->setParam('selected_channels', array(1));
     $response = new Varien_Object();
     $object = new Xcom_Mmp_Adminhtml_ChannelController($request, $response);
     $object->massDisableValidationAction();
     $this->assertContains('{"message":"Test Exception Message"}', $response->getBody());
 }