From 675c48a942e590e61747229f594910680721cec9 Mon Sep 17 00:00:00 2001 From: Roberto Date: Mon, 22 Jul 2019 23:55:39 +0200 Subject: [PATCH 1/4] default curl_timeout in ReCaptchaBuilderInvisible and ReCaptchaBuilderV2 class constructor --- src/ReCaptchaBuilderInvisible.php | 8 ++++---- src/ReCaptchaBuilderV2.php | 8 ++++---- tests/ReCaptchaTest.php | 10 ++++++++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/ReCaptchaBuilderInvisible.php b/src/ReCaptchaBuilderInvisible.php index ce0313f..eba341f 100644 --- a/src/ReCaptchaBuilderInvisible.php +++ b/src/ReCaptchaBuilderInvisible.php @@ -19,11 +19,11 @@ class ReCaptchaBuilderInvisible extends ReCaptchaBuilder { /** * ReCaptchaBuilderInvisible constructor. * - * @param string $api_site_key - * @param string $api_secret_key - * @param int $curl_timeout + * @param string $api_site_key + * @param string $api_secret_key + * @param int|null $curl_timeout */ - public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) { + public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT) { parent::__construct($api_site_key, $api_secret_key, 'invisible', $curl_timeout); } diff --git a/src/ReCaptchaBuilderV2.php b/src/ReCaptchaBuilderV2.php index 90e9234..279bd10 100644 --- a/src/ReCaptchaBuilderV2.php +++ b/src/ReCaptchaBuilderV2.php @@ -19,11 +19,11 @@ class ReCaptchaBuilderV2 extends ReCaptchaBuilder { /** * ReCaptchaBuilderV2 constructor. * - * @param string $api_site_key - * @param string $api_secret_key - * @param int $curl_timeout + * @param string $api_site_key + * @param string $api_secret_key + * @param int|null $curl_timeout */ - public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) { + public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT) { parent::__construct($api_site_key, $api_secret_key, 'v2', $curl_timeout); } diff --git a/tests/ReCaptchaTest.php b/tests/ReCaptchaTest.php index 112531f..e2f0004 100644 --- a/tests/ReCaptchaTest.php +++ b/tests/ReCaptchaTest.php @@ -11,6 +11,7 @@ namespace Biscolab\ReCaptcha\Tests; use Biscolab\ReCaptcha\Facades\ReCaptcha; +use Biscolab\ReCaptcha\ReCaptchaBuilder; use Biscolab\ReCaptcha\ReCaptchaBuilderInvisible; use Biscolab\ReCaptcha\ReCaptchaBuilderV2; @@ -72,6 +73,11 @@ public function testReCaptchaInvisibleHtmlFormSnippetShouldThrowError() { $this->recaptcha_invisible->htmlFormSnippet(); } + public function testDefaultCurlTimeout() { + $this->assertEquals($this->recaptcha_invisible->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); + $this->assertEquals($this->recaptcha_v2->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); + } + /** * @test * @expectedException \Error @@ -85,8 +91,8 @@ protected function setUp(): void { parent::setUp(); // TODO: Change the autogenerated stub - $this->recaptcha_invisible = new ReCaptchaBuilderInvisible('api_site_key', 'api_secret_key', 3); - $this->recaptcha_v2 = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3); + $this->recaptcha_invisible = new ReCaptchaBuilderInvisible('api_site_key', 'api_secret_key'); + $this->recaptcha_v2 = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key'); } } \ No newline at end of file From 5418ae1fdaaf0bf94fc531100cdb4228ff613c05 Mon Sep 17 00:00:00 2001 From: Roberto Date: Tue, 23 Jul 2019 00:11:20 +0200 Subject: [PATCH 2/4] setCurlTimeout method default value --- src/ReCaptchaBuilder.php | 7 +++++-- src/ReCaptchaBuilderInvisible.php | 2 +- src/ReCaptchaBuilderV2.php | 2 +- src/ReCaptchaBuilderV3.php | 8 ++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/ReCaptchaBuilder.php b/src/ReCaptchaBuilder.php index b98ccd8..62ddc76 100755 --- a/src/ReCaptchaBuilder.php +++ b/src/ReCaptchaBuilder.php @@ -115,12 +115,15 @@ public function setApiSecretKey(string $api_secret_key): ReCaptchaBuilder { } /** - * @param int $curl_timeout + * @param int|null $curl_timeout * * @return ReCaptchaBuilder */ - public function setCurlTimeout(int $curl_timeout): ReCaptchaBuilder { + public function setCurlTimeout(?int $curl_timeout = null): ReCaptchaBuilder { + if($curl_timeout === null) { + $curl_timeout = config('recaptcha.curl_timeout', ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); + } $this->curl_timeout = $curl_timeout; return $this; diff --git a/src/ReCaptchaBuilderInvisible.php b/src/ReCaptchaBuilderInvisible.php index eba341f..3b76cca 100644 --- a/src/ReCaptchaBuilderInvisible.php +++ b/src/ReCaptchaBuilderInvisible.php @@ -23,7 +23,7 @@ class ReCaptchaBuilderInvisible extends ReCaptchaBuilder { * @param string $api_secret_key * @param int|null $curl_timeout */ - public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT) { + public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = null) { parent::__construct($api_site_key, $api_secret_key, 'invisible', $curl_timeout); } diff --git a/src/ReCaptchaBuilderV2.php b/src/ReCaptchaBuilderV2.php index 279bd10..8f6962a 100644 --- a/src/ReCaptchaBuilderV2.php +++ b/src/ReCaptchaBuilderV2.php @@ -23,7 +23,7 @@ class ReCaptchaBuilderV2 extends ReCaptchaBuilder { * @param string $api_secret_key * @param int|null $curl_timeout */ - public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT) { + public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = null) { parent::__construct($api_site_key, $api_secret_key, 'v2', $curl_timeout); } diff --git a/src/ReCaptchaBuilderV3.php b/src/ReCaptchaBuilderV3.php index 1c66050..606abda 100644 --- a/src/ReCaptchaBuilderV3.php +++ b/src/ReCaptchaBuilderV3.php @@ -19,11 +19,11 @@ class ReCaptchaBuilderV3 extends ReCaptchaBuilder { /** * ReCaptchaBuilderV3 constructor. * - * @param string $api_site_key - * @param string $api_secret_key - * @param int $curl_timeout + * @param string $api_site_key + * @param string $api_secret_key + * @param int|null $curl_timeout */ - public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) { + public function __construct(string $api_site_key, string $api_secret_key, ?int $curl_timeout = null) { parent::__construct($api_site_key, $api_secret_key, 'v3', $curl_timeout); } From e5c9d209f5e35ec07a26db2b0b96ff28527e1c83 Mon Sep 17 00:00:00 2001 From: Roberto Date: Tue, 23 Jul 2019 00:11:36 +0200 Subject: [PATCH 3/4] curl_timeout tests --- tests/ReCaptchaConfigurationTest.php | 5 +++-- tests/ReCaptchaTest.php | 3 +++ tests/ReCaptchaV3Test.php | 10 +++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/ReCaptchaConfigurationTest.php b/tests/ReCaptchaConfigurationTest.php index 4e62320..52278a1 100644 --- a/tests/ReCaptchaConfigurationTest.php +++ b/tests/ReCaptchaConfigurationTest.php @@ -41,7 +41,7 @@ public function testSkipIpWhiteListIsArray() { * @test */ public function testCurlTimeoutIsSet() { - $this->assertEquals($this->recaptcha->getCurlTimeout(), 3); + $this->assertEquals(3, $this->recaptcha->getCurlTimeout()); } /** @@ -54,6 +54,7 @@ public function testCurlTimeoutIsSet() { protected function getEnvironmentSetUp($app) { $app['config']->set('recaptcha.skip_ip', '10.0.0.1,10.0.0.2'); + $app['config']->set('recaptcha.curl_timeout', 3); } /** @@ -63,6 +64,6 @@ protected function setUp(): void { parent::setUp(); // TODO: Change the autogenerated stub - $this->recaptcha = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3); + $this->recaptcha = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key'); } } \ No newline at end of file diff --git a/tests/ReCaptchaTest.php b/tests/ReCaptchaTest.php index e2f0004..d99ffe0 100644 --- a/tests/ReCaptchaTest.php +++ b/tests/ReCaptchaTest.php @@ -73,6 +73,9 @@ public function testReCaptchaInvisibleHtmlFormSnippetShouldThrowError() { $this->recaptcha_invisible->htmlFormSnippet(); } + /** + * @test + */ public function testDefaultCurlTimeout() { $this->assertEquals($this->recaptcha_invisible->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); $this->assertEquals($this->recaptcha_v2->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); diff --git a/tests/ReCaptchaV3Test.php b/tests/ReCaptchaV3Test.php index 09b29f4..6caec68 100644 --- a/tests/ReCaptchaV3Test.php +++ b/tests/ReCaptchaV3Test.php @@ -87,6 +87,13 @@ public function testValidateController() { $this->assertArrayHasKey("error-codes", $return); } + /** + * @test + */ + public function testCurlTimeoutIsSet() { + $this->assertEquals($this->recaptcha_v3->getCurlTimeout(), 3); + } + /** * Define environment setup. * @@ -97,6 +104,7 @@ public function testValidateController() { protected function getEnvironmentSetUp($app) { $app['config']->set('recaptcha.version', 'v3'); + $app['config']->set('recaptcha.curl_timeout', 3); } /** @@ -106,7 +114,7 @@ protected function setUp(): void { parent::setUp(); // TODO: Change the autogenerated stub - $this->recaptcha_v3 = new ReCaptchaBuilderV3('api_site_key', 'api_secret_key', 3); + $this->recaptcha_v3 = new ReCaptchaBuilderV3('api_site_key', 'api_secret_key'); } } \ No newline at end of file From 4b0288d99bbb872a23aa2744d6b175aa6f3f886b Mon Sep 17 00:00:00 2001 From: Roberto Date: Tue, 23 Jul 2019 00:15:26 +0200 Subject: [PATCH 4/4] recaptcha_v3 default timeout test created --- tests/ReCaptchaTest.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tests/ReCaptchaTest.php b/tests/ReCaptchaTest.php index d99ffe0..2b7408e 100644 --- a/tests/ReCaptchaTest.php +++ b/tests/ReCaptchaTest.php @@ -14,6 +14,7 @@ use Biscolab\ReCaptcha\ReCaptchaBuilder; use Biscolab\ReCaptcha\ReCaptchaBuilderInvisible; use Biscolab\ReCaptcha\ReCaptchaBuilderV2; +use Biscolab\ReCaptcha\ReCaptchaBuilderV3; /** * Class ReCaptchaTest @@ -21,9 +22,20 @@ */ class ReCaptchaTest extends TestCase { + /** + * @var ReCaptchaBuilderInvisible + */ protected $recaptcha_invisible = null; - protected $recaptcha_v2 = null; + /** + * @var ReCaptchaBuilderV2 + */ + protected $recaptcha_v2 = null; + + /** + * @var ReCaptchaBuilderV3 + */ + protected $recaptcha_v3 = null; /** * @tests @@ -41,7 +53,8 @@ public function testReCaptchaInvisibleHtmlFormButtonDefault() { $recaptcha = $this->recaptcha_invisible; $html_button = $recaptcha->htmlFormButton(); - $this->assertEquals('', $html_button); + $this->assertEquals('', + $html_button); } /** @@ -51,7 +64,8 @@ public function testReCaptchaInvisibleHtmlFormButtonCustom() { $recaptcha = $this->recaptcha_invisible; $html_button = $recaptcha->htmlFormButton('Custom Text'); - $this->assertEquals('', $html_button); + $this->assertEquals('', + $html_button); } /** @@ -77,8 +91,10 @@ public function testReCaptchaInvisibleHtmlFormSnippetShouldThrowError() { * @test */ public function testDefaultCurlTimeout() { + $this->assertEquals($this->recaptcha_invisible->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); $this->assertEquals($this->recaptcha_v2->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); + $this->assertEquals($this->recaptcha_v3->getCurlTimeout(), ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT); } /** @@ -96,6 +112,7 @@ protected function setUp(): void { $this->recaptcha_invisible = new ReCaptchaBuilderInvisible('api_site_key', 'api_secret_key'); $this->recaptcha_v2 = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key'); + $this->recaptcha_v3 = new ReCaptchaBuilderV3('api_site_key', 'api_secret_key'); } } \ No newline at end of file