public function PayPalPaymentIPNListener::testIPNListener in PayPal for Payment 7
Tests the IPN listener.
File
- paypal_payment_ipn/
tests/ PayPalPaymentIPNListener.test, line 35 - Contains \PayPalPaymentIPNListener.
Class
- PayPalPaymentIPNListener
- Tests the IPN callback functionality.
Code
public function testIPNListener() {
$payment_method = $this
->paymentMethodCreate(2, payment_method_controller_load('PayPalPaymentIPNTestPaymentMethodController'));
entity_save('payment_method', $payment_method);
$payment = $this
->paymentCreate(2, $payment_method);
entity_save('payment', $payment);
$original_payment_status = $payment
->getStatus();
// Mock an IPN.
$ipn_variables = $this
->mockIPNVariables($payment->pid);
$url = PayPalPaymentIPNController::URL();
$this
->curlExec(array(
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => $ipn_variables,
CURLOPT_URL => $url,
));
$response = $this
->drupalGetContent();
$this
->assertFalse($response);
$this
->verbose($response);
$this
->assertResponse(200);
// Test that an IPN has been saved.
$payment = entity_load_single('payment', $payment->pid);
$new_payment_status = $payment
->getStatus();
$this
->assertNotEqual($original_payment_status->status, $new_payment_status->status);
$this
->assertTrue(PayPalPaymentIPNController::load($new_payment_status->psiid));
}