Merge pull request #14159 from civicrm/5.13
[civicrm-core.git] / tests / phpunit / CRM / Logging / LoggingTest.php
index 71798543975846255835e2785c3a185faaed8b44..62d2423201127c0d5e9a62f6f0f7e331ffe8d08a 100644 (file)
@@ -14,6 +14,7 @@ class CRM_Logging_LoggingTest extends CiviUnitTestCase {
     CRM_Core_I18n_Schema::makeSinglelingual('en_US');
     $logging = new CRM_Logging_Schema();
     $logging->dropAllLogTables();
+    \Civi::$statics['CRM_Logging_Schema']['columnSpecs'] = array();
     parent::tearDown();
   }
 
@@ -29,7 +30,6 @@ class CRM_Logging_LoggingTest extends CiviUnitTestCase {
     $logging->disableLogging();
   }
 
-
   /**
    * Test creating logging schema when database is in multilingual mode.
    * Also test altering a multilingual table.
@@ -40,15 +40,25 @@ class CRM_Logging_LoggingTest extends CiviUnitTestCase {
     $logging->enableLogging();
     $value = CRM_Core_DAO::singleValueQuery("SELECT id FROM log_civicrm_contact LIMIT 1", array(), FALSE, FALSE);
     $this->assertNotNull($value, 'Logging not enabled successfully');
-    $logging->disableLogging();
-    CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_value` ADD COLUMN `logging_test` INT DEFAULT NULL", array(), FALSE, NULL, FALSE, FALSE);
+    CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_value` ADD COLUMN `logging_test` INT DEFAULT '0'", array(), FALSE, NULL, FALSE, FALSE);
     CRM_Core_I18n_Schema::rebuildMultilingualSchema(array('en_US'));
-    $logging->enableLogging();
+    \Civi::$statics['CRM_Logging_Schema']['columnSpecs'] = array();
+    $logging->fixSchemaDifferencesFor('civicrm_option_value', array(), TRUE);
     $query = CRM_Core_DAO::executeQuery("SHOW CREATE TABLE `log_civicrm_option_value`", array(), TRUE, NULL, FALSE, FALSE);
     $query->fetch();
     $create = explode("\n", $query->Create_Table);
+    $this->assertTrue(in_array("  `logging_test` int(11) DEFAULT '0'", $create));
+    $create = explode("\n", $query->Create_Table);
     CRM_Core_DAO::executeQuery("ALTER TABLE `civicrm_option_value` DROP COLUMN `logging_test`", array(), FALSE, NULL, FALSE, FALSE);
-    $this->assertTrue(in_array("  `logging_test` int(11) DEFAULT NULL", $create));
+    $query = CRM_Core_DAO::executeQuery("SHOW CREATE TABLE `log_civicrm_option_value`", array(), TRUE, NULL, FALSE, FALSE);
+    $query->fetch();
+    $domain = new CRM_Core_DAO_Domain();
+    $domain->find(TRUE);
+    $locales = explode(CRM_Core_DAO::VALUE_SEPARATOR, $domain->locales);
+    \Civi::$statics['CRM_Logging_Schema']['columnSpecs'] = array();
+    CRM_Core_I18n_Schema::rebuildMultilingualSchema($locales);
+    $logging->fixSchemaDifferencesFor('civicrm_option_value', array(), TRUE);
+    $this->assertTrue(in_array("  `logging_test` int(11) DEFAULT '0'", $create));
     $logging->disableLogging();
   }