Merge branch 'brendo-master'

Validation of return and cancel urls from @brendo, with unit tests. Closes #70
This commit is contained in:
Avi Das
2014-05-05 09:58:38 -05:00
2 changed files with 51 additions and 0 deletions

View File

@@ -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;

View 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);
}
}