Merge pull request #11304 from JMAConsulting/CRM-21461
[civicrm-core.git] / tests / phpunit / CRM / Logging / LoggingTest.php
1 <?php
2
3 /**
4 * Class CRM_Core_DAOTest
5 * @group headless
6 */
7 class CRM_Logging_LoggingTest extends CiviUnitTestCase {
8
9 public function setUp() {
10 parent::setUp();
11 }
12
13 public function tearDown() {
14 CRM_Core_I18n_Schema::makeSinglelingual('en_US');
15 $logging = new CRM_Logging_Schema();
16 $logging->dropAllLogTables();
17 parent::tearDown();
18 }
19
20 /**
21 * Test creating logging schema when database is in multilingual mode.
22 */
23 public function testMultilingualLogging() {
24 CRM_Core_I18n_Schema::makeMultilingual('en_US');
25 $logging = new CRM_Logging_Schema();
26 $logging->enableLogging();
27 $value = CRM_Core_DAO::singleValueQuery("SELECT id FROM log_civicrm_contact LIMIT 1", array(), FALSE, FALSE);
28 $this->assertNotNull($value, 'Logging not enabled successfully');
29 $logging->disableLogging();
30 }
31
32
33 /**
34 * Test creating logging schema when database is in multilingual mode.
35 * Also test altering a multilingual table.
36 */
37 public function testMultilingualAlterSchemaLogging() {
38 CRM_Core_I18n_Schema::makeMultilingual('en_US');
39 $logging = new CRM_Logging_Schema();
40 $logging->enableLogging();
41 $value = CRM_Core_DAO::singleValueQuery("SELECT id FROM log_civicrm_contact LIMIT 1", array(), FALSE, FALSE);
42 $this->assertNotNull($value, 'Logging not enabled successfully');
43 $logging->disableLogging();
44 CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_value` ADD COLUMN `logging_test` INT DEFAULT NULL", array(), FALSE, NULL, FALSE, FALSE);
45 CRM_Core_I18n_Schema::rebuildMultilingualSchema(array('en_US'));
46 $logging->enableLogging();
47 $query = CRM_Core_DAO::executeQuery("SHOW CREATE TABLE `log_civicrm_option_value`", array(), TRUE, NULL, FALSE, FALSE);
48 $query->fetch();
49 $create = explode("\n", $query->Create_Table);
50 CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_value` DROP COLUMN `logging_test`", array(), FALSE, NULL, FALSE, FALSE);
51 $this->assertTrue(in_array(" `logging_test` int(11) DEFAULT NULL", $create));
52 $logging->disableLogging();
53 }
54
55 }