/** * Test contactTypes() and subTypes() methods with valid data * success expected */ public function testGetMethods() { // check all contact types $contactTypes = array('Individual', 'Organization', 'Household'); $result = CRM_Contact_BAO_ContactType::contactTypes('Individual'); foreach ($contactTypes as $type) { $this->assertEquals(in_array($type, $result), TRUE); } // check for type:Individual $result = CRM_Contact_BAO_ContactType::subTypes('Individual'); foreach ($result as $subtype) { $subTypeName = in_array($subtype, $this->subTypesIndividual); if (!empty($subTypeName)) { $this->assertEquals($subTypeName, TRUE); } $this->assertEquals(in_array($subtype, $this->subTypesOrganization), FALSE); $this->assertEquals(in_array($subtype, $this->subTypesHousehold), FALSE); } // check for type:Organization $result = CRM_Contact_BAO_ContactType::subTypes('Organization'); foreach ($result as $subtype) { $this->assertEquals(in_array($subtype, $this->subTypesIndividual), FALSE); $subTypeName = in_array($subtype, $this->subTypesOrganization); if (!empty($subTypeName)) { $this->assertEquals($subTypeName, TRUE); } $subTypeName = in_array($subTypeName, $this->subTypesHousehold); if (empty($subTypeName)) { $this->assertEquals($subTypeName, FALSE); } } // check for type:Household $result = CRM_Contact_BAO_ContactType::subTypes('Household'); foreach ($result as $subtype) { $this->assertEquals(in_array($subtype, $this->subTypesIndividual), FALSE); $this->assertEquals(in_array($subtype, $this->subTypesOrganization), FALSE); $this->assertEquals(in_array($subtype, $this->subTypesHousehold), TRUE); } // check for all conatct types $result = CRM_Contact_BAO_ContactType::subTypes(); foreach ($this->subTypesIndividual as $subtype) { $this->assertEquals(in_array($subtype, $result), TRUE); } foreach ($this->subTypesOrganization as $subtype) { $this->assertEquals(in_array($subtype, $result), TRUE); } foreach ($this->subTypesHousehold as $subtype) { $this->assertEquals(in_array($subtype, $result), TRUE); } }
/** * Check if a provider is allowed to add stuff. * If correspondig setting is empty, all are allowed * * @param string $providerName */ public static function isProviderEnabled($providerName) { // Join contact types to providerName 'Contact' $contactTypes = CRM_Contact_BAO_ContactType::contactTypes(TRUE); if (in_array($providerName, $contactTypes)) { $providerName = 'Contact'; } $allowed = TRUE; // Use core setting recentItemsProviders if configured $providersPermitted = Civi::settings()->get('recentItemsProviders'); if ($providersPermitted) { $allowed = in_array($providerName, $providersPermitted); } // Else allow return $allowed; }