Merge pull request #4818 from pratikshad/CRM-15770
[civicrm-core.git] / tests / phpunit / CRM / Core / CommunityMessagesTest.php
index acedc4f5f5a8c4ff5b5f2632402f1112c78660ea..6250f90769416790d73e66f00f7595f616c3168a 100644 (file)
@@ -2,9 +2,9 @@
 
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
 
 
 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
    */
@@ -39,6 +50,9 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
    */
   protected static $webResponses = NULL;
 
+  /**
+   * @return array
+   */
   public static function initWebResponses() {
     if (self::$webResponses === NULL) {
       self::$webResponses = array(
@@ -182,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');
@@ -192,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)
@@ -202,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);
   }
 
   /**
@@ -267,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)
@@ -297,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);
   }
 
   /**
@@ -350,7 +364,7 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
     $this->assertEquals($trials, $freq['<h1>Two</h1>']);
   }
 
-  function testEvalMarkup() {
+  public function testEvalMarkup() {
     $communityMessages = new CRM_Core_CommunityMessages(
       $this->cache,
       $this->expectNoHttpRequest()
@@ -373,6 +387,8 @@ class CRM_Core_CommunityMessagesTest extends CiviUnitTestCase {
   /**
    * Generate a mock HTTP client with the expectation that it is called once.
    *
+   * @param $response
+   *
    * @return CRM_Utils_HttpClient|PHPUnit_Framework_MockObject_MockObject
    */
   protected function expectOneHttpRequest($response) {