public function render(\In2code\Powermail\Domain\Model\Answer $answer = null) { $textAnswer = ''; if ($answer) { $field = $answer->getField(); $answerValue = $answer->getValue(); switch ($field->getType()) { case 'select': case 'check': case 'radio': $possibleAnswers = $field->getModifiedSettings(); if (!is_array($answerValue)) { $answerValue = array($answerValue); } $i = 0; foreach ($answerValue as $value) { foreach ($possibleAnswers as $possibleAnswer) { if ($possibleAnswer['value'] == $value) { $textAnswer .= $possibleAnswer['label']; } } if ($i == count($possibleAnswers) - 1) { $textAnswer .= ', '; } $i++; } break; default: $textAnswer = $answerValue; break; } } return $textAnswer; }
/** * View helper check if value should be returned or not * * @param \In2code\Powermail\Domain\Model\Answer $answer * @param string $type "createAction", "confirmationAction", "sender", "receiver" * @param array $settings * @return bool */ public function render(Answer $answer, $type, $settings = array()) { // excludeFromFieldTypes if ($answer->getField() && in_array($answer->getField()->getType(), $this->getExcludedValues($type, $settings, 'excludeFromFieldTypes'))) { return FALSE; } // excludeFromMarkerNames if ($answer->getField() && in_array($answer->getField()->getMarker(), $this->getExcludedValues($type, $settings, 'excludeFromMarkerNames'))) { return FALSE; } return TRUE; }
/** * Test for isValid() * * @param string $value * @param bool $expectedResult * @return void * @dataProvider validateIsValidReturnsBoolDataProvider * @test */ public function validateIsValidReturnsBool($value, $expectedResult) { $mail = new Mail(); $field = new Field(); $field->setType(1); $answer1 = new Answer(); $answer1->setValueType(3); $answer1->setValue($value); $answer1->setField($field); $objectStorage = new ObjectStorage(); $objectStorage->attach($answer1); $mail->setAnswers($objectStorage); if ($expectedResult === false) { $this->generalValidatorMock->expects($this->once())->method('setErrorAndMessage'); } else { $this->generalValidatorMock->expects($this->never())->method('setErrorAndMessage'); } $this->generalValidatorMock->_callRef('isValid', $mail); }
/** * Manipulate values through TypoScript before rendering * * @param Answer $answer * @param string $type "createAction", "confirmationAction", "sender", "receiver" * @return string */ public function render(Answer $answer, $type) { $value = $this->renderChildren(); if ($answer->getField()) { if (!empty($this->typoScriptContext[$this->typeToTsType[$type] . '.'][$answer->getField()->getMarker()])) { $this->contentObjectRenderer->start($answer->_getProperties()); $value = $this->contentObjectRenderer->cObjGetSingle($this->typoScriptContext[$this->typeToTsType[$type] . '.'][$answer->getField()->getMarker()], $this->typoScriptContext[$this->typeToTsType[$type] . '.'][$answer->getField()->getMarker() . '.']); } } return $value; }
/** * Test for setValue() * * @param mixed $value * @param mixed $expectedResult * @param string $fieldType * @param string $datepickerSettings * @return void * @dataProvider setValueReturnVoidDataProvider * @test */ public function setValueReturnVoid($value, $expectedResult, $fieldType = null, $datepickerSettings = null) { $this->generalValidatorMock->_setProperty('valueType', 0); if ($fieldType || $datepickerSettings) { $field = new Field(); if ($fieldType) { $field->setType($fieldType); } if ($datepickerSettings) { $formats = array('date' => 'Y-m-d', 'datetime' => 'Y-m-d H:i', 'time' => 'H:i'); $this->generalValidatorMock->_setProperty('translateFormat', $formats[$datepickerSettings]); $this->generalValidatorMock->_setProperty('valueType', 2); $field->setDatepickerSettings($datepickerSettings); } $this->generalValidatorMock->_callRef('setField', $field); } $this->generalValidatorMock->_callRef('setValue', $value); $this->assertSame($expectedResult, $this->generalValidatorMock->_getProperty('value')); }
/** * Test for getSenderNameFromArguments() * * @param array $values * @param string $fallback * @param string $defaultMailFromAddress * @param string $expectedResult * @return void * @dataProvider getSenderNameFromArgumentsReturnsStringDataProvider * @test */ public function getSenderNameFromArgumentsReturnsString($values, $fallback, $defaultMailFromAddress, $expectedResult) { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'] = $defaultMailFromAddress; $mail = new Mail(); if (is_array($values)) { foreach ($values as $value) { $answer = new Answer(); $answer->_setProperty('translateFormat', 'Y-m-d'); $answer->_setProperty('valueType', is_array($values) ? 2 : 0); $field = new Field(); $field->setType('input'); $field->setSenderName(true); $answer->_setProperty('value', $value); $answer->setValueType(is_array($value) ? 1 : 0); $answer->setField($field); $mail->addAnswer($answer); } } $result = $this->generalValidatorMock->_callRef('getSenderNameFromArguments', $mail, $fallback); $this->assertSame($expectedResult, $result); }
/** * Test for blacklistStringCheck() * * @param int $spamIndicator * @param array $answerProperties * @param string $blacklist * @param int $expectedOverallSpamIndicator * @return void * @dataProvider blacklistStringCheckReturnsVoidDataProvider * @test */ public function blacklistStringCheckReturnsVoid($spamIndicator, $answerProperties, $blacklist, $expectedOverallSpamIndicator) { $mail = new Mail(); foreach ($answerProperties as $value) { $answer = new Answer(); $answer->setValueType(123); $answer->setValue($value); $mail->addAnswer($answer); } $this->generalValidatorMock->_set('settings', ['spamshield.' => ['indicator.' => ['blacklistStringValues' => $blacklist]]]); $this->generalValidatorMock->_callRef('blacklistStringCheck', $mail, $spamIndicator); $this->assertSame($expectedOverallSpamIndicator, $this->generalValidatorMock->_callRef('getSpamIndicator')); }