forked from LiveCarta/PayPal-PHP-SDK
Merge branch 'brendo-master'
Validation of return and cancel urls from @brendo, with unit tests. Closes #70
This commit is contained in:
@@ -23,6 +23,11 @@ class RedirectUrls extends PPModel
|
||||
*/
|
||||
public function setReturnUrl($return_url)
|
||||
{
|
||||
if(filter_var($return_url, FILTER_VALIDATE_URL) === false)
|
||||
{
|
||||
throw new \InvalidArgumentException("Return URL is not a fully qualified URL");
|
||||
}
|
||||
|
||||
$this->return_url = $return_url;
|
||||
|
||||
return $this;
|
||||
@@ -79,6 +84,10 @@ class RedirectUrls extends PPModel
|
||||
*/
|
||||
public function setCancelUrl($cancel_url)
|
||||
{
|
||||
if(filter_var($cancel_url, FILTER_VALIDATE_URL) === false)
|
||||
{
|
||||
throw new \InvalidArgumentException("Cancel URL is not a fully qualified URL");
|
||||
}
|
||||
$this->cancel_url = $cancel_url;
|
||||
|
||||
return $this;
|
||||
|
||||
42
tests/PayPal/Test/Api/RedirectUrlsTest.php
Normal file
42
tests/PayPal/Test/Api/RedirectUrlsTest.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
namespace PayPal\Test\Api;
|
||||
|
||||
use PayPal\Api\RedirectUrls;
|
||||
|
||||
class RedirectUrlsTest extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
public function validRedirectUrlsProvider() {
|
||||
return array(
|
||||
array('https://devtools-paypal.com/guide/pay_paypal/php?success=true', 'https://devtools-paypal.com/guide/pay_paypal/php?cancel=true')
|
||||
);
|
||||
}
|
||||
|
||||
public function invalidRedirectUrlsProvider() {
|
||||
return array(
|
||||
array('devtools-paypal.com/guide/pay_paypal/php?success=true', 'devtools-paypal.com/guide/pay_paypal/php?cancel=true')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider validRedirectUrlsProvider
|
||||
*/
|
||||
public function testValidRedirectUrls($return_url, $cancel_url) {
|
||||
$redirectUrls = new RedirectUrls();
|
||||
$redirectUrls->setReturn_url($return_url);
|
||||
$redirectUrls->setCancel_url($cancel_url);
|
||||
|
||||
$this->assertEquals($return_url, $redirectUrls->getReturnUrl());
|
||||
$this->assertEquals($cancel_url, $redirectUrls->getCancelUrl());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider invalidRedirectUrlsProvider
|
||||
*/
|
||||
public function testInvalidRedirectUrls($return_url, $cancel_url) {
|
||||
$redirectUrls = new RedirectUrls();
|
||||
$this->setExpectedException('\InvalidArgumentException');
|
||||
$redirectUrls->setReturnUrl($return_url);
|
||||
$redirectUrls->setCancelUrl($cancel_url);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user