Spaces:
No application file
No application file
| namespace Mautic\ConfigBundle\Tests\Event; | |
| use Mautic\ConfigBundle\Event\ConfigEvent; | |
| use Symfony\Component\HttpFoundation\File\UploadedFile; | |
| use Symfony\Component\HttpFoundation\ParameterBag; | |
| class ConfigEventTest extends \PHPUnit\Framework\TestCase | |
| { | |
| public function testGetSetConfig(): void | |
| { | |
| // Config not defined | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $key = 'undefined'; | |
| $this->assertEquals([], $event->getConfig($key)); | |
| // Config defined with setter | |
| $key = 'defined'; | |
| $config = ['config' => []]; | |
| $event->setConfig($config, $key); | |
| $this->assertEquals($config, $event->getConfig($key)); | |
| // Config not found by key so complete config returned; | |
| $undefinedKey = 'undefined'; | |
| $this->assertEquals([], $event->getConfig($undefinedKey)); | |
| // Get complete config | |
| $config = [$key => $config]; | |
| $this->assertEquals($config, $event->getConfig()); | |
| } | |
| public function testGetSetPreserved(): void | |
| { | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $this->assertEquals([], $event->getPreservedFields()); | |
| $preserved = 'preserved'; | |
| $result = [$preserved]; | |
| $event->unsetIfEmpty($preserved); | |
| $this->assertEquals($result, $event->getPreservedFields()); | |
| $preserved = ['preserved' => 'value']; | |
| $result = array_merge($result, $preserved); | |
| $event->unsetIfEmpty($preserved); | |
| $this->assertEquals($result, $event->getPreservedFields()); | |
| } | |
| public function testGetSetErrors(): void | |
| { | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $this->assertEquals([], $event->getErrors()); | |
| $message = 'message'; | |
| $messages = [$message => []]; | |
| $this->assertEquals($event, $event->setError($message)); | |
| $this->assertEquals($messages, $event->getErrors()); | |
| $message = 'message'; | |
| $messageVars = ['var' => 'value']; | |
| $messages = [$message => $messageVars]; | |
| $this->assertEquals($event, $event->setError($message, $messageVars)); | |
| $this->assertEquals($messages, $event->getErrors()); | |
| $message = 'message'; | |
| $messageVars = ['var' => 'value']; | |
| $key = 'key'; | |
| $field = 'field'; | |
| $fieldErrors[$key][$field] = [ | |
| $message, | |
| $messageVars, | |
| ]; | |
| $this->assertEquals($event, $event->setError($message, $messageVars, $key, $field)); | |
| $this->assertEquals($fieldErrors, $event->getFieldErrors()); | |
| } | |
| public function testGetFileContent(): void | |
| { | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $fileContent = 'content'; | |
| $fileHandler = tmpfile(); | |
| $realPath = stream_get_meta_data($fileHandler)['uri']; | |
| fwrite($fileHandler, ' '.$fileContent); | |
| $uploadedFile = $this->createMock(UploadedFile::class); | |
| $uploadedFile->expects($this->once()) | |
| ->method('getRealPath') | |
| ->willReturn($realPath); | |
| $this->assertEquals($fileContent, $event->getFileContent($uploadedFile)); | |
| $this->assertFalse(file_exists($realPath)); | |
| } | |
| public function testEncodeFileContents(): void | |
| { | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $string = 'řčžýřžýčř'; | |
| $result = 'xZnEjcW+w73FmcW+w73EjcWZ'; | |
| $this->assertEquals($result, $event->encodeFileContents($string)); | |
| } | |
| public function testNormalizedDataGetSet(): void | |
| { | |
| $config = []; | |
| $paramBag = $this->createMock(ParameterBag::class); | |
| $event = new ConfigEvent($config, $paramBag); | |
| $origNormData = ['orig']; | |
| $this->assertInstanceOf(ConfigEvent::class, $event->setOriginalNormData($origNormData)); | |
| $this->assertEquals($origNormData, $event->getOriginalNormData()); | |
| $normData = ['norm']; | |
| $event->setNormData($normData); | |
| $this->assertEquals($normData, $event->getNormData()); | |
| } | |
| } | |