CRM_Core_CommunityMessagesTest - Reduce probability of test-failure due to
authorTim Otten <totten@civicrm.org>
Thu, 17 Jul 2014 23:42:45 +0000 (16:42 -0700)
committerTim Otten <totten@civicrm.org>
Thu, 17 Jul 2014 23:42:45 +0000 (16:42 -0700)
timing

tests/phpunit/CRM/Core/CommunityMessagesTest.php

index a3002fc90fbd420a6a471280deab00392809419a..7e4ee6e12b6a9236e8e0143600ebcee5058f1f1c 100644 (file)
@@ -33,6 +33,13 @@ require_once 'CiviTest/CiviUnitTestCase.php';
  * Class CRM_Core_CommunityMessagesTest
  */
 class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
+
+  /**
+   * The max difference between two times such that they should be
+   * treated as equals (expressed in seconds).
+   */
+  const APPROX_TIME_EQUALITY = 2;
+
   /**
    * @var CRM_Utils_Cache_Interface
    */
@@ -189,7 +196,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     );
     $doc1 = $communityMessages->getDocument();
     $this->assertEquals('<h1>First valid response</h1>', $doc1['messages'][0]['markup']);
-    $this->assertEquals(strtotime('2013-03-01 10:10:00'), $doc1['expires']);
+    $this->assertApproxEquals(strtotime('2013-03-01 10:10:00'), $doc1['expires'], self::APPROX_TIME_EQUALITY);
 
     // second try, $doc1 hasn't expired yet, so still use it
     CRM_Utils_Time::setTime('2013-03-01 10:09:00');
@@ -199,7 +206,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     );
     $doc2 = $communityMessages->getDocument();
     $this->assertEquals('<h1>First valid response</h1>', $doc2['messages'][0]['markup']);
-    $this->assertEquals(strtotime('2013-03-01 10:10:00'), $doc2['expires']);
+    $this->assertApproxEquals(strtotime('2013-03-01 10:10:00'), $doc2['expires'], self::APPROX_TIME_EQUALITY);
 
     // third try, $doc1 expired, update it
     CRM_Utils_Time::setTime('2013-03-01 12:00:02'); // more than 2 hours later (DEFAULT_RETRY)
@@ -209,7 +216,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     );
     $doc3 = $communityMessages->getDocument();
     $this->assertEquals('<h1>Second valid response</h1>', $doc3['messages'][0]['markup']);
-    $this->assertEquals(strtotime('2013-03-01 12:10:02'), $doc3['expires']);
+    $this->assertApproxEquals(strtotime('2013-03-01 12:10:02'), $doc3['expires'], self::APPROX_TIME_EQUALITY);
   }
 
   /**
@@ -274,7 +281,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     );
     $doc1 = $communityMessages->getDocument();
     $this->assertEquals('<h1>First valid response</h1>', $doc1['messages'][0]['markup']);
-    $this->assertEquals(strtotime('2013-03-01 10:10:00'), $doc1['expires']);
+    $this->assertApproxEquals(strtotime('2013-03-01 10:10:00'), $doc1['expires'], self::APPROX_TIME_EQUALITY);
 
     // second try, $doc1 has expired; bad response; keep old data
     CRM_Utils_Time::setTime('2013-03-01 12:00:02'); // more than 2 hours later (DEFAULT_RETRY)
@@ -304,7 +311,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     );
     $doc4 = $communityMessages->getDocument();
     $this->assertEquals('<h1>Second valid response</h1>', $doc4['messages'][0]['markup']);
-    $this->assertEquals(strtotime('2013-03-01 12:20:02'), $doc4['expires']);
+    $this->assertApproxEquals(strtotime('2013-03-01 12:20:02'), $doc4['expires'], self::APPROX_TIME_EQUALITY);
   }
 
   /**