diff --git a/lib/PayPal/Api/RedirectUrls.php b/lib/PayPal/Api/RedirectUrls.php index 674f805..ba9ed1b 100644 --- a/lib/PayPal/Api/RedirectUrls.php +++ b/lib/PayPal/Api/RedirectUrls.php @@ -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; diff --git a/tests/PayPal/Test/Api/RedirectUrlsTest.php b/tests/PayPal/Test/Api/RedirectUrlsTest.php new file mode 100644 index 0000000..8b880f7 --- /dev/null +++ b/tests/PayPal/Test/Api/RedirectUrlsTest.php @@ -0,0 +1,42 @@ +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); + } + +} \ No newline at end of file