useTransaction(TRUE); } public function tearDown() { CRM_Core_I18n_Schema::makeSinglelingual('en_US'); parent::tearDown(); } public function testOptionLanguage() { $this->callAPISuccess('Setting', 'create', array( 'lcMessages' => 'en_US', 'languageLimit' => array( 'en_US' => 1, ), )); CRM_Core_I18n_Schema::makeMultilingual('en_US'); global $dbLocale; $dbLocale = '_en_US'; CRM_Core_I18n_Schema::addLocale('fr_CA', 'en_US'); $this->callAPISuccess('Setting', 'create', array( 'languageLimit' => array( 'en_US', 'fr_CA', ), )); // Take a semi-random OptionGroup and test manually changing its label // in one language, while making sure it stays the same in English. $group = $this->callAPISuccess('OptionGroup', 'getsingle', array( 'name' => 'contact_edit_options', )); $english_original = $this->callAPISuccess('OptionValue', 'getsingle', array( 'option_group_id' => $group['id'], 'name' => 'IM', )); $this->callAPISuccess('OptionValue', 'create', array( 'id' => $english_original['id'], 'name' => 'IM', 'label' => 'Messagerie instantanée', 'option.language' => 'fr_CA', )); $french = $this->callAPISuccess('OptionValue', 'getsingle', array( 'option_group_id' => $group['id'], 'name' => 'IM', 'option.language' => 'fr_CA', )); $default = $this->callAPISuccess('OptionValue', 'getsingle', array( 'option_group_id' => $group['id'], 'name' => 'IM', 'option.language' => 'en_US', )); $this->assertEquals($french['label'], 'Messagerie instantanée'); $this->assertEquals($default['label'], $english_original['label']); } }