From 9a42dcc8c03cfb4c846f661445744af8639e15e0 Mon Sep 17 00:00:00 2001 From: Mathieu Lutfy Date: Wed, 18 Mar 2020 14:11:12 -0400 Subject: [PATCH] dev/core#1280 Test for ContributionPage soft_credit translation --- .../Form/ContributionPage/Settings.php | 1 + .../Form/ContributionPageTranslationTest.php | 94 +++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 tests/phpunit/CRM/Contribute/Form/ContributionPageTranslationTest.php diff --git a/CRM/Contribute/Form/ContributionPage/Settings.php b/CRM/Contribute/Form/ContributionPage/Settings.php index 3ea426b48c..5c03463278 100644 --- a/CRM/Contribute/Form/ContributionPage/Settings.php +++ b/CRM/Contribute/Form/ContributionPage/Settings.php @@ -351,6 +351,7 @@ class CRM_Contribute_Form_ContributionPage_Settings extends CRM_Contribute_Form_ // Look for an existing entry $ufJoinDAO = new CRM_Core_DAO_UFJoin(); $ufJoinDAO->module = $ufJoinParam['module']; + $ufJoinDAO->entity_table = 'civicrm_contribution_page'; $ufJoinDAO->entity_id = $ufJoinParam['entity_id']; $ufJoinDAO->find(TRUE); diff --git a/tests/phpunit/CRM/Contribute/Form/ContributionPageTranslationTest.php b/tests/phpunit/CRM/Contribute/Form/ContributionPageTranslationTest.php new file mode 100644 index 0000000000..50a9628c11 --- /dev/null +++ b/tests/phpunit/CRM/Contribute/Form/ContributionPageTranslationTest.php @@ -0,0 +1,94 @@ +_financialTypeID = 1; + $this->enableMultilingual(); + CRM_Core_I18n_Schema::addLocale('fr_FR', 'en_US'); + } + + public function tearDown() { + global $dbLocale; + if ($dbLocale) { + CRM_Core_I18n_Schema::makeSinglelingual('en_US'); + } + } + + /** + * Create() method (create Contribution Page with Honor block) + */ + public function testCreateHonor() { + CRM_Core_I18n::singleton()->setLocale('en_US'); + + $params = [ + 'title' => 'Test Contribution Page', + 'financial_type_id' => $this->_financialTypeID, + 'is_for_organization' => 0, + 'for_organization' => ' I am contributing on behalf of an organization', + 'goal_amount' => '400', + 'is_active' => 1, + 'honor_block_is_active' => 1, + 'honor_block_title' => 'In Honor Title EN', + 'honor_block_text' => 'In Honor Text EN', + // Honoree Individual + 'honoree_profile' => 13, + // In Honor Of + 'soft_credit_types' => 1, + 'start_date' => '20091022105900', + 'start_date_time' => '10:59AM', + 'end_date' => '19700101000000', + 'end_date_time' => '', + 'is_credit_card_only' => '', + ]; + + $contributionpage = CRM_Contribute_BAO_ContributionPage::create($params); + + // The BAO does not save these + $params['id'] = $contributionpage->id; + $params['honor_block_title'] = 'In Honor Title EN'; + $params['honor_block_text'] = 'In Honor Text EN'; + + $form = $this->getFormObject('CRM_Contribute_Form_ContributionPage_Settings', $params, 'Settings'); + $form->postProcess(); + + // Now update the page with In Honor (soft credit) text in French + CRM_Core_I18n::singleton()->setLocale('fr_FR'); + + $params['honor_block_title'] = 'In Honor Title FR'; + $params['honor_block_text'] = 'In Honor Text FR'; + + $form = $this->getFormObject('CRM_Contribute_Form_ContributionPage_Settings', $params, 'Settings'); + $form->postProcess(); + + $uf = $this->callAPISuccess('UFJoin', 'getsingle', [ + 'entity_id' => $contributionpage->id, + 'module' => 'soft_credit', + ]); + + $json = json_decode($uf['module_data'], TRUE); + + $this->assertEquals('In Honor Title EN', $json['soft_credit']['en_US']['honor_block_title']); + $this->assertEquals('In Honor Text EN', $json['soft_credit']['en_US']['honor_block_text']); + $this->assertEquals('In Honor Title FR', $json['soft_credit']['fr_FR']['honor_block_title']); + $this->assertEquals('In Honor Text FR', $json['soft_credit']['fr_FR']['honor_block_text']); + + $this->callAPISuccess('ContributionPage', 'delete', ['id' => $contributionpage->id]); + } + +} -- 2.25.1