/**
* Set Up Funtion
*/
- public function setUp() {
+ public function setUp(): void {
parent::setUp();
$option = $this->callAPISuccess('option_value', 'create', ['option_group_id' => 'sms_provider_name', 'name' => 'test_provider_name', 'label' => 'test_provider_name', 'value' => 1]);
$this->option_value = $option['id'];
/**
* Clean up after each test.
*/
- public function tearDown() {
+ public function tearDown(): void {
parent::tearDown();
$this->quickCleanup(['civicrm_email', 'civicrm_phone', 'civicrm_activity', 'civicrm_activity_contact']);
$this->callAPISuccess('option_value', 'delete', ['id' => $this->option_value]);
$message->toContactID = $testSourceContact;
}
+ /**
+ * Some providers, like the mock one for these tests at the time of writing,
+ * or the dummy SMS provider extension, might not provide a default url,
+ * but the form shouldn't fail because of that.
+ */
+ public function testMissingUrl() {
+ $form = $this->getFormObject('CRM_SMS_Form_Provider');
+ $_REQUEST['key'] = 'CiviTestSMSProvider';
+
+ // This shouldn't give a notice
+ $defaults = $form->setDefaultValues();
+
+ $this->assertEquals([
+ 'name' => 'CiviTestSMSProvider',
+ 'api_url' => '',
+ 'is_default' => 1,
+ 'is_active' => 1,
+ ], $defaults);
+
+ unset($_REQUEST['key']);
+ }
+
}