backport unit test to 4.6
authorSeamus Lee <seamuslee001@gmail.com>
Wed, 24 Aug 2016 00:02:03 +0000 (10:02 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Wed, 24 Aug 2016 00:02:03 +0000 (10:02 +1000)
CRM/Core/Error.php
tests/phpunit/CRM/Core/ErrorTest.php

index cca09a832cf84bd2225634a0074291fe2c1277a9..3100455826538a7e86138c58601060c9f195f03a 100644 (file)
@@ -634,7 +634,7 @@ class CRM_Core_Error extends PEAR_ErrorStack {
    * Generate a hash for the logfile.
    * CRM-13640.
    */
-  protected static function generateLogFileHash($config) {
+  public static function generateLogFileHash($config) {
     // Use multiple (but stable) inputs for hash information. TMI?
     $md5inputs = array(
       defined('CIVICRM_SITE_KEY') ? CIVICRM_SITE_KEY : 'NO_SITE_KEY',
index 536ac1f271935af453dae00625e0b3513c155524..a9a25fd2e5f5d4667452f3753fabf1352307ef63 100644 (file)
@@ -94,4 +94,22 @@ class CRM_Core_ErrorTest extends CiviUnitTestCase {
     }
   }
 
+  /**
+   * Check that a debugger is created and there is no error when passing in a prefix.
+   *
+   * Do some basic content checks.
+   */
+  public function testDebugLoggerFormat() {
+    $log = CRM_Core_Error::createDebugLogger('my-test');
+    $log->log('Mary had a little lamb');
+    $log->log('Little lamb');
+    $config = CRM_Core_Config::singleton();
+    $fileContents = file_get_contents($log->_filename);
+    $this->assertEquals($config->configAndLogDir . 'CiviCRM.' . 'my-test.' . CRM_Core_Error::generateLogFileHash($config) . '.log', $log->_filename);
+    // The 5 here is a bit arbitrary - on my local the date part is 15 chars (Mar 29 05:29:16) - but we are just checking that
+    // there are chars for the date at the start.
+    $this->assertTrue(strpos($fileContents, '[info] Mary had a little lamb') > 10);
+    $this->assertContains('[info] Little lamb', $fileContents);
+  }
+
 }