- Added AltchaService class for managing ALTCHA captcha challenges and solutions. - Created CaptchaController to handle API requests for generating challenges. - Introduced CaptchaGuard for validating captcha solutions on public endpoints. - Developed unit tests for AltchaService to ensure challenge creation and solution verification functionality. - Implemented integration tests for the Captcha API endpoint and captcha bypass behavior when disabled. - Added documentation for the Captcha API in the corresponding markdown file.
1 line
6.5 KiB
JSON
1 line
6.5 KiB
JSON
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_tests_shared_captcha_captchaflowtest_php", "label": "CaptchaFlowTest.php", "file_type": "code", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L1"}, {"id": "captcha_captchaflowtest_captchaflowtest", "label": "CaptchaFlowTest", "file_type": "code", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L11"}, {"id": "apitestcase", "label": "ApiTestCase", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "label": ".testChallengeEndpointIsPublicAndWellFormed()", "file_type": "code", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L13"}, {"id": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "label": ".testPublicEndpointBypassesCaptchaWhenDisabled()", "file_type": "code", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L25"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_tests_shared_captcha_captchaflowtest_php", "target": "apitestcase", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_tests_shared_captcha_captchaflowtest_php", "target": "captcha_captchaflowtest_captchaflowtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L11", "weight": 1.0}, {"source": "captcha_captchaflowtest_captchaflowtest", "target": "apitestcase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L11", "weight": 1.0}, {"source": "captcha_captchaflowtest_captchaflowtest", "target": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L13", "weight": 1.0}, {"source": "captcha_captchaflowtest_captchaflowtest", "target": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L25", "weight": 1.0}], "raw_calls": [{"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "request", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L15", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "self", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L16", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "responseCode", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L16", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "json_decode", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L18", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "getContent", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L18", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "getResponse", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L18", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "self", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L19", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testchallengeendpointispublicandwellformed", "callee": "self", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L21", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "request", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L29", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "json_encode", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L33", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "json_decode", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L37", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "getContent", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L37", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "getResponse", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L37", "receiver": null}, {"caller_nid": "captcha_captchaflowtest_captchaflowtest_testpublicendpointbypassescaptchawhendisabled", "callee": "self", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/tests/Shared/Captcha/CaptchaFlowTest.php", "source_location": "L39", "receiver": null}]} |