forked from LiveCarta/PayPal-PHP-SDK
Add validation of Return/Cancel URL's (with test cases)
This commit is contained in:
@@ -23,6 +23,11 @@ class RedirectUrls extends PPModel
|
|||||||
*/
|
*/
|
||||||
public function setReturnUrl($return_url)
|
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;
|
$this->return_url = $return_url;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@@ -79,6 +84,10 @@ class RedirectUrls extends PPModel
|
|||||||
*/
|
*/
|
||||||
public function setCancelUrl($cancel_url)
|
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;
|
$this->cancel_url = $cancel_url;
|
||||||
|
|
||||||
return $this;
|
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