Files
piratepoet/mailpoet/tests/integration/Subscription/Captcha/CaptchaRendererTest.php
2024-08-05 13:28:52 +02:00

41 lines
4.7 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Test\Subscription\Captcha;
use MailPoet\Subscription\Captcha\CaptchaRenderer;
use MailPoet\Subscription\Captcha\CaptchaSession;
class CaptchaRendererTest extends \MailPoetTest {
private CaptchaRenderer $testee;
private CaptchaSession $session;
public function _before() {
$this->testee = $this->diContainer->get(CaptchaRenderer::class);
$this->session = $this->diContainer->get(CaptchaSession::class);
}
public function testItRendersImage(): void {
$sessionId = '123';
$this->session->setCaptchaHash($sessionId, ['phrase' => 'a']);
$this->testee->renderImage($sessionId);
$this->assertStringContainsString('JPEG', $this->getActualOutputForAssertion());
}
public function testItRendersAudio(): void {
$sessionId = '123';
$this->session->setCaptchaHash($sessionId, ['phrase' => 'a']);
$this->testee->renderAudio($sessionId);
$this->assertSame(
hex2bin('49443304000000000023545353450000000f0000034c61766636302e31362e3130300000000000000000000000ffe338c0000000000000000000496e666f0000000f00000015000006c0002a2a2a2a353535353540404040404a4a4a4a4a5555555560606060606a6a6a6a6a7575757575808080808a8a8a8a8a9595959595a0a0a0a0a0aaaaaaaab5b5b5b5b5c0c0c0c0c0cacacacacad5d5d5d5e0e0e0e0e0eaeaeaeaeaf5f5f5f5f5ffffffff000000004c61766336302e333100000000000000000000000024026000000000000006c07bbc654e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffe318c4000d1895d800630c245aa8d09e48219589a2f06e28249444410c4e12466238e0728d64292079a90c0710447209d9c78d2066b1503844d36d32cc734cfd0ad3e814122489ffe318c4060cf08e18015818000cb60cb1ed93c79764457c378a1e0a3aef7be376ea4b2dd8cac47dae4521bbfddc72c9e7844fad4e68abe94edfaa4f690840f8eff01c5ca2ffee26ffe318c40d105ba27c018568007fffbedffffd7e837ffffd06ffffffffd69d34e9bfffffffd37a6a64d48248a0707a7fffffb37fe4a169203c0a63d0ba4802b030153c33df213144ffe318c4060c5b6a8011c1280041fcc210ffffffffffffffffffffffffca537e52fd4a56ffffffffd0c56f4318a52feadfe6318c63280a2cea22379513387c7a98f2f781d0250040ffe318c40f0f70924030c6582009c0759ecdc702583745837bf9b638301ac2b3d03f542addae7101f63d271be8a7dfeaffa95fe03ffffabfefffffa284d89b7caa26f14781b92a09ffe318c40c0db87e40007e1e0458fe88640449866e51650b86529a7244d447c8e74aa84e32a01420f380c136eb57700c1813b3ffffedd629a4883ab5e351594c4940a8a010424051ffe318c4100ce08a3401580000a52f29b96de395013ad76f674d4dd9894c575bc7e98b3824b7453f961ec256fffff2a1a511845e75ce934c3faa544423ba68008d62438322756534ffe318c41711d12e2001991800cf9a62c091405628cea4292475ed4b650e85b79ebac5a2c9d5c1f011382d45b42dc7bb84ce43ead3dd7c437f4aa9f501d5fe6f9c1647bec7ca2230ffe318c40a0f9ae6e0019038001c3e9b2dcbcb2a1ffd5cc6e06003969ffe66ded535dd5ffffff3ffffff7318f3dfb58e3c606e61e3724dffffffea710c82a34f426a2891aa28ff94ffe318c4060ec21f0191c7100009dba71f0491b7ce2c3c5bfa0e88c2e9dfffd166fd529fdffffffff5ff57952dd4c32176290070e04dc3d70aa0813ec08344db8d6b1bbae5b7d6e0ffe318c4060d1083365803d802f5b97c29b36ae556bde5f53d33d795e7001d4f7131fe93bac1c06b8a82be0cfffeaffdcbc537073ffd890588a4826a08011dd80004d403917c7cb8ffe318c40c0d0882f65801de08404d5afe44e2e0714f0e1075005068f408e00ba9181ed625e4435ffffffff63f65bffe48eff8a6e655232977071f83c6affb8b88a8744387659cedffe318c4120ca0df01b002040e7befb772039dca56ba96180a6c25c48f15686cefffffffe7bdbcb7ffffe3aa34f511d737000f7e9a8427bdbb360740146274bc9b53d4c4247935e3ffe318c41a0cc0b2fe5803040e6597a9430139d0d11ffffffffffb3e4bd1ffffd630ad63322af5ac950cc02fa0240e43e6ce6d522ea43100141c1779e19c86a1ec55591fa3f2b964ffe318c4220ce89a6c004e0c0c3c0b8c94f3b52259dddf9effffffffffd352b9bc65f9bbfc92d56c680f0016264060da9f5ee02c6a168ae84a9a4f90200c1c02d04d07d7d8d83276ffe318c4290b90c25400d24c4520b2630c96eafdc92ed7895abb7598219245001534bf399a135ca0480db1bd6f0d2e55a5d3d2da1b184ab7affe63aa6eca676b3fd7e52030d65515ffe318c4350d18ba54015900000128926c4636990181866678ada8f416042a8b45571b5404049d9399b48318e802831a534038e553b2d3121154aef469e19e866313ee6ee351aab9ffe318c43b16f8ba3c399b6000d90582d2937692dab86871e75b184b29efdbd3fe8dff7276ff668fefd7fbffffd6c6b3ab63487e36a44361db7cb7f67e154ab574ffffe2534f6f58ffe318c41a13a92e7c018f98003fd3731109c64d28ea14885c285faff1440ba620f6bb4073c170036d899275df83fcb048f2897ffebfff949cd4251a1ab7ffffeb55312c11a78ae3ffe318c4060c41025801d14801c9e95c931660b9c04c2241b58680213900204a7a0e936dfffaaa49249d689325d4c2a00432e585489a8bb17d620b0ceda2abc8a545da5ca8091d60ffe318c4100cb87a1000c60c2428e2e138c02d701205ac000acb4cd6251da4b60114902900a030184a594055bbdaff2c4c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
$this->getActualOutputForAssertion()
);
}
public function testItRefreshesPhrase(): void {
$sessionId = '123';
$this->session->setCaptchaHash($sessionId, ['phrase' => 'abc']);
$this->testee->refreshPhrase($sessionId);
$this->assertNotEquals('abc', $this->session->getCaptchaHash($sessionId)['phrase']);
}
}