1+ <?php
2+ /**
3+ * Copyright (c) 2017 - present
4+ * LaravelGoogleRecaptcha - ReCaptchaHelpersV2ExplicitTest.php
5+ * author: Roberto Belotti - roby.belotti@gmail.com
6+ * web : robertobelotti.com, github.com/biscolab
7+ * Initial version created on: 2/9/2019
8+ * MIT license: https://github.com/biscolab/laravel-recaptcha/blob/master/LICENSE
9+ */
10+
11+ namespace Biscolab \ReCaptcha \Tests ;
12+
13+ use Biscolab \ReCaptcha \ReCaptchaBuilderV2 ;
14+
15+ class ReCaptchaHelpersV2ExplicitTest extends TestCase
16+ {
17+
18+ /**
19+ * @test
20+ */
21+ public function testGetOnLoadCallbackFunction ()
22+ {
23+
24+ $ recaptcha = \recaptcha ();
25+
26+ $ callback = $ recaptcha ->getOnLoadCallback ();
27+
28+ $ this ->assertEquals ('<script>var biscolabOnloadCallback = function() {grecaptcha.render( \'recaptcha-element \', {"sitekey":"api_site_key","theme":"dark","size":"compact","tabindex":"2","callback":"callbackFunction","expired-callback":"expiredCallbackFunction","error-callback":"errorCallbackFunction"});};</script> ' , $ callback );
29+ }
30+
31+ /**
32+ * @test
33+ */
34+ public function testHtmlScriptTagJsApiHasJavascriptRenderFunction ()
35+ {
36+
37+ $ html = htmlScriptTagJsApi ();
38+
39+ $ this ->assertEquals ('<script>var biscolabOnloadCallback = function() {grecaptcha.render( \'recaptcha-element \', {"sitekey":"api_site_key","theme":"dark","size":"compact","tabindex":"2","callback":"callbackFunction","expired-callback":"expiredCallbackFunction","error-callback":"errorCallbackFunction"});};</script><script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=biscolabOnloadCallback" async defer></script> ' ,
40+ $ html );
41+ }
42+
43+ /**
44+ * @test
45+ */
46+ public function testTagAttributes ()
47+ {
48+
49+ $ recaptcha = \recaptcha ();
50+
51+ $ tag_attributes = $ recaptcha ->getTagAttributes ();
52+
53+ $ this ->assertArrayHasKey ('sitekey ' , $ tag_attributes );
54+ $ this ->assertArrayHasKey ('theme ' , $ tag_attributes );
55+ $ this ->assertArrayHasKey ('size ' , $ tag_attributes );
56+ $ this ->assertArrayHasKey ('tabindex ' , $ tag_attributes );
57+ $ this ->assertArrayHasKey ('callback ' , $ tag_attributes );
58+ $ this ->assertArrayHasKey ('expired-callback ' , $ tag_attributes );
59+ $ this ->assertArrayHasKey ('error-callback ' , $ tag_attributes );
60+
61+ $ this ->assertEquals ($ tag_attributes ['sitekey ' ], 'api_site_key ' );
62+ $ this ->assertEquals ($ tag_attributes ['theme ' ], 'dark ' );
63+ $ this ->assertEquals ($ tag_attributes ['size ' ], 'compact ' );
64+ $ this ->assertEquals ($ tag_attributes ['tabindex ' ], '2 ' );
65+ $ this ->assertEquals ($ tag_attributes ['callback ' ], 'callbackFunction ' );
66+ $ this ->assertEquals ($ tag_attributes ['expired-callback ' ], 'expiredCallbackFunction ' );
67+ $ this ->assertEquals ($ tag_attributes ['error-callback ' ], 'errorCallbackFunction ' );
68+ }
69+
70+ /**
71+ * @test
72+ */
73+ public function testExpectReCaptchaInstanceOfReCaptchaBuilderV2 ()
74+ {
75+
76+ $ this ->assertInstanceOf (ReCaptchaBuilderV2::class, \recaptcha ());
77+ }
78+
79+ /**
80+ * @test
81+ */
82+ public function testHtmlFormSnippet ()
83+ {
84+
85+ $ html_snippet = \recaptcha ()->htmlFormSnippet ();
86+ $ this ->assertEquals ('<div class="g-recaptcha" data-sitekey="api_site_key" data-theme="dark" data-size="compact" data-tabindex="2" data-callback="callbackFunction" data-expired-callback="expiredCallbackFunction" data-error-callback="errorCallbackFunction" id="recaptcha-element"></div> ' ,
87+ $ html_snippet );
88+
89+ }
90+
91+ /**
92+ * Define environment setup.
93+ *
94+ * @param \Illuminate\Foundation\Application $app
95+ *
96+ * @return void
97+ */
98+ protected function getEnvironmentSetUp ($ app )
99+ {
100+
101+ $ app ['config ' ]->set ('recaptcha.api_site_key ' , 'api_site_key ' );
102+ $ app ['config ' ]->set ('recaptcha.version ' , 'v2 ' );
103+ $ app ['config ' ]->set ('recaptcha.explicit ' , true );
104+ $ app ['config ' ]->set ('recaptcha.tag_attributes ' , [
105+ 'theme ' => 'dark ' ,
106+ 'size ' => 'compact ' ,
107+ 'tabindex ' => '2 ' ,
108+ 'callback ' => 'callbackFunction ' ,
109+ 'expired-callback ' => 'expiredCallbackFunction ' ,
110+ 'error-callback ' => 'errorCallbackFunction ' ,
111+ ]);
112+ }
113+ }
0 commit comments