* The name registered with the TokenProcessor
* @param array $formValues
* The values submitted through the form
- *
- * @return string
- * If formValues['is_unit_test'] is true, otherwise outputs document to browser
*/
- public function renderFromRows($rows, $msgPart, $formValues) {
+ public function renderFromRows($rows, $msgPart, $formValues): void {
$html = [];
foreach ($rows as $row) {
$html[] = $row->render($msgPart);
}
-
- if (!empty($formValues['is_unit_test'])) {
- return $html;
- }
-
if (!empty($html)) {
$this->outputFromHtml($formValues, $html);
}
* @param array $formValues
* @param array $html
*/
- protected function outputFromHtml($formValues, array $html) {
+ protected function outputFromHtml(array $formValues, array $html): void {
$fileName = $this->getFileName();
- if ($formValues['document_type'] === 'pdf') {
+ if ($this->getSubmittedValue('document_type') === 'pdf') {
CRM_Utils_PDF_Utils::html2pdf($html, $fileName . '.pdf', FALSE, $formValues);
}
else {
- CRM_Utils_PDF_Document::html2doc($html, $fileName . '.' . $formValues['document_type'], $formValues);
+ CRM_Utils_PDF_Document::html2doc($html, $fileName . '.' . $this->getSubmittedValue('document_type'), $formValues);
}
}
* The values submitted through the form
*
* @deprecated
- *
- * @return array
- * If formValues['is_unit_test'] is true, otherwise outputs document to browser
*/
- public static function renderFromRows($rows, $msgPart, $formValues) {
+ public static function renderFromRows($rows, $msgPart, $formValues): void {
CRM_Core_Error::deprecatedFunctionWarning('no alternative');
$html = [];
foreach ($rows as $row) {
$html[] = $row->render($msgPart);
}
- if (!empty($formValues['is_unit_test'])) {
- return $html;
- }
-
if (!empty($html)) {
self::outputFromHtml($formValues, $html);
}
$this->assertEquals(array_merge($this->getActivityTokens(), CRM_Core_SelectValues::domainTokens()), $tokenProcessor->listTokens());
$html_message = "\n" . implode("\n", CRM_Utils_Array::collect('0', $data)) . "\n";
$form = $this->getFormObject('CRM_Activity_Form_Task_PDF');
- $output = $form->createDocument([$activity['id']], $html_message, ['is_unit_test' => TRUE]);
-
+ try {
+ $output = $form->createDocument([$activity['id']], $html_message, []);
+ }
+ catch (CRM_Core_Exception_PrematureExitException $e) {
+ $output = $e->errorData['html'];
+ }
// Check some basic fields
foreach ($data as $line) {
$this->assertStringContainsString("\n" . $line[1] . "\n", $output[0]);
$html_message = "Custom: {activity.$cf}";
$activityIds = CRM_Utils_Array::collect('id', $activities);
$form = $this->getFormObject('CRM_Activity_Form_Task_PDF');
- $output = $form->createDocument($activityIds, $html_message, ['is_unit_test' => TRUE]);
+ try {
+ $output = $form->createDocument($activityIds, $html_message, []);
+ }
+ catch (CRM_Core_Exception_PrematureExitException $e) {
+ $output = $e->errorData['html'];
+ }
// Should have one row of output per activity
$this->assertCount(count($activities), $output);
];
$html_message = "\n" . implode("\n", CRM_Utils_Array::collect('0', $data)) . "\n";
$form = $this->getFormObject('CRM_Activity_Form_Task_PDF');
- $output = $form->createDocument([$activity['id']], $html_message, ['is_unit_test' => TRUE]);
+ $output = $form->createDocument([$activity['id']], $html_message, []);
foreach ($data as $line) {
$this->assertContains("\n" . $line[1] . "\n", $output[0]);
*/
public function testCreateDocumentUnknownTokens(): void {
$activity = $this->activityCreate();
- $html_message = 'Unknown token: ';
- $form = $this->getFormObject('CRM_Activity_Form_Task_PDF');
- $output = $form->createDocument([$activity['id']], $html_message, ['is_unit_test' => TRUE]);
- $this->assertEquals($html_message, $output[0]);
+ $html_message = 'Unknown token:{activity.something_unknown}';
+ $form = $this->getFormObject('CRM_Activity_Form_Task_PDF', ['document_type' => 'pdf']);
+ try {
+ $form->createDocument([$activity['id']], $html_message, []);
+ }
+ catch (CRM_Core_Exception_PrematureExitException $e) {
+ $html = $e->errorData['html'];
+ $this->assertStringContainsString('<div id="crm-container">
+Unknown token:
+ </div>', $html);
+ return;
+ }
+ $this->fail('should be unreachable');
}
}