Skip to content
Snippets Groups Projects
Commit f7aed6e3 authored by Eileen McNaughton's avatar Eileen McNaughton
Browse files

#2834 Preliminary test on badge

parent 9412b3c8
No related branches found
No related tags found
No related merge requests found
...@@ -40,7 +40,7 @@ class CRM_Badge_BAO_Badge { ...@@ -40,7 +40,7 @@ class CRM_Badge_BAO_Badge {
* @param array $layoutInfo * @param array $layoutInfo
* Associated array which contains meta data about format/layout. * Associated array which contains meta data about format/layout.
*/ */
public function createLabels(&$participants, &$layoutInfo) { public function createLabels($participants, &$layoutInfo) {
$this->pdf = new CRM_Utils_PDF_Label($layoutInfo['format'], 'mm'); $this->pdf = new CRM_Utils_PDF_Label($layoutInfo['format'], 'mm');
$this->pdf->Open(); $this->pdf->Open();
$this->pdf->setPrintHeader(FALSE); $this->pdf->setPrintHeader(FALSE);
...@@ -58,6 +58,9 @@ class CRM_Badge_BAO_Badge { ...@@ -58,6 +58,9 @@ class CRM_Badge_BAO_Badge {
$this->pdf->AddPdfLabel($formattedRow); $this->pdf->AddPdfLabel($formattedRow);
} }
if (CIVICRM_UF === 'UnitTests') {
throw new CRM_Core_Exception_PrematureExitException('pdf output called', ['formattedRow' => $formattedRow]);
}
$this->pdf->Output(CRM_Utils_String::munge($layoutInfo['title'], '_', 64) . '.pdf', 'D'); $this->pdf->Output(CRM_Utils_String::munge($layoutInfo['title'], '_', 64) . '.pdf', 'D');
CRM_Utils_System::civiExit(); CRM_Utils_System::civiExit();
} }
......
<?php
/**
* Test CRM_Event_Form_Registration functions.
*
* @package CiviCRM
* @group headless
*/
class CRM_Event_Form_Task_BadgeTest extends CiviUnitTestCase {
use CRMTraits_Custom_CustomDataTrait;
/**
* Test the the submit function on the event participant submit function.
*/
public function testSubmit(): void {
$this->createCustomGroupWithFieldOfType(['extends' => 'Participant']);
$contactID = $this->individualCreate();
$participantID = $this->participantCreate(['contact_id' => $contactID]);
$_REQUEST['context'] = 'view';
$_REQUEST['id'] = $participantID;
$_REQUEST['cid'] = $contactID;
/* @var CRM_Event_Form_Task_Badge $form */
$form = $this->getFormObject(
'CRM_Event_Form_Task_Badge',
['badge_id' => 1],
NULL,
[
'task' => CRM_Core_Task::BATCH_UPDATE,
'radio_ts' => 'ts_sel',
'mark_x_' . $participantID => 1,
]
);
$form->buildForm();
try {
$form->postProcess();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$tokens = $e->errorData['formattedRow']['token'];
$this->assertEquals([
1 => [
'value' => 'Annual CiviCRM meet',
'font_name' => 'dejavusans',
'font_size' => '9',
'font_style' => '',
'text_alignment' => 'L',
'token' => '{event.title}',
],
2 =>
[
'value' => 'Mr. Anthony Anderson II',
'font_name' => 'dejavusans',
'font_size' => '20',
'font_style' => '',
'text_alignment' => 'C',
'token' => '{contact.display_name}',
],
3 =>
[
'value' => NULL,
'font_name' => 'dejavusans',
'font_size' => '15',
'font_style' => '',
'text_alignment' => 'C',
'token' => '{contact.current_employer}',
],
4 =>
[
'value' => 'October 21st',
'font_name' => 'dejavusans',
'font_size' => '9',
'font_style' => '',
'text_alignment' => 'R',
'token' => '{event.start_date}',
],
], $tokens);
return;
}
$this->fail('Should not be reached');
}
}
...@@ -52,7 +52,15 @@ trait CRMTraits_Custom_CustomDataTrait { ...@@ -52,7 +52,15 @@ trait CRMTraits_Custom_CustomDataTrait {
'max_multiple' => 0, 'max_multiple' => 0,
], $params); ], $params);
$identifier = $params['name'] ?? $params['title']; $identifier = $params['name'] ?? $params['title'];
$this->ids['CustomGroup'][$identifier] = CustomGroup::create(FALSE)->setValues($params)->execute()->first()['id']; try {
$this->ids['CustomGroup'][$identifier] = CustomGroup::create(FALSE)
->setValues($params)
->execute()
->first()['id'];
}
catch (API_Exception $e) {
$this->fail('Could not create group ' . $e->getMessage());
}
return $this->ids['CustomGroup'][$identifier]; return $this->ids['CustomGroup'][$identifier];
} }
...@@ -90,7 +98,6 @@ trait CRMTraits_Custom_CustomDataTrait { ...@@ -90,7 +98,6 @@ trait CRMTraits_Custom_CustomDataTrait {
* *
* @param array $fieldParams * @param array $fieldParams
* *
* @throws \API_Exception
*/ */
public function createCustomGroupWithFieldOfType(array $groupParams = [], string $customFieldType = 'text', ?string $identifier = NULL, array $fieldParams = []): void { public function createCustomGroupWithFieldOfType(array $groupParams = [], string $customFieldType = 'text', ?string $identifier = NULL, array $fieldParams = []): void {
$supported = ['text', 'select', 'date', 'checkbox', 'int', 'contact_reference', 'radio', 'multi_country']; $supported = ['text', 'select', 'date', 'checkbox', 'int', 'contact_reference', 'radio', 'multi_country'];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment