add unit test
[civicrm-core.git] / tests / phpunit / CRM / Activity / BAO / ActivityTest.php
index 27089d02543469f05418fab0606bb14c6daa3401..1c9bb73db748307b9f23722c3da9d726e37fdf2e 100644 (file)
@@ -310,6 +310,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
       'caseId' => NULL,
       'context' => 'home',
       'activity_type_id' => NULL,
+      'activity_status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Scheduled'), // for dashlet the Scheduled status is set by default
       'offset' => 0,
       'rowCount' => 0,
       'sort' => NULL,
@@ -364,6 +365,8 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
         dirname(__FILE__) . '/activities_for_dashboard_count.xml'
       )
     );
+    Civi::settings()->set('preserve_activity_tab_filter', 1);
+    $this->createLoggedInUser();
 
     global $_GET;
     $_GET = array(
@@ -372,20 +375,27 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
       'activity_type_id' => 1,
       'is_unit_test' => 1,
     );
-    $obj = new CRM_Activity_Page_AJAX();
+    $expectedFilters = array(
+      'activity_type_filter_id' => 1,
+      'activity_type_exclude_filter_id' => '',
+    );
 
-    $activities = $obj->getContactActivity();
+    list($activities, $activityFilter) = CRM_Activity_Page_AJAX::getContactActivity();
+    //Assert whether filters are correctly set.
+    $this->checkArrayEquals($expectedFilters, $activityFilter);
     // This should include activities of type Meeting only.
     foreach ($activities['data'] as $value) {
       $this->assertContains('Meeting', $value['activity_type']);
     }
     unset($_GET['activity_type_id']);
+    $expectedFilters['activity_type_filter_id'] = '';
 
-    $_GET['activity_type_exclude_id'] = 1;
-    $activities = $obj->getContactActivity();
+    $_GET['activity_type_exclude_id'] = $expectedFilters['activity_type_exclude_filter_id'] = 1;
+    list($activities, $activityFilter) = CRM_Activity_Page_AJAX::getContactActivity();
+    $this->checkArrayEquals($expectedFilters, $activityFilter);
     // None of the activities should be of type Meeting.
     foreach ($activities['data'] as $value) {
-      $this->assertNotEquals('Meeting', $value['activity_type']);
+      $this->assertNotContains('Meeting', $value['activity_type']);
     }
   }
 
@@ -487,6 +497,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
       'caseId' => NULL,
       'context' => 'home',
       'activity_type_id' => NULL,
+      'activity_status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Scheduled'), // for dashlet the Scheduled status is set by default
       'offset' => 0,
       'rowCount' => 0,
       'sort' => NULL,
@@ -965,6 +976,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
       'caseId' => NULL,
       'context' => 'home',
       'activity_type_id' => NULL,
+      'activity_status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'status_id', 'Scheduled'), // for dashlet the Scheduled status is set by default
       'offset' => 0,
       'rowCount' => 0,
       'sort' => NULL,