public function __construct($controllerId, $moduleId, $uniqueLayoutId, $model, $params)
 {
     parent::__construct(2, 1);
     $this->setView(new TitleBarView(strval($model)), 0, 0);
     $homeDashboardView = new HomeDashboardView($controllerId, $moduleId, $uniqueLayoutId, $model, $params);
     $homeDashboardView->setCssClasses(array('clearfix'));
     $this->setView($homeDashboardView, 1, 0);
 }
 public function testPushDashboardToUsers()
 {
     $super = Yii::app()->user->userModel;
     //Make and Get Five Users
     $users = UserTestHelper::generateBasicUsers(5);
     $this->assertEquals(5, count($users));
     //Remove any one portlet from super's default dashboard
     $defaultDashboards = Dashboard::getDefaultDashboardsByUser($super);
     if (count($defaultDashboards) == 0) {
         $defaultDashboard = Dashboard::setDefaultDashboardForUser($super);
     } else {
         $defaultDashboard = $defaultDashboards[0];
     }
     $defaultDashboardLayoutId = PushDashboardUtil::HOME_DASHBOARD . $defaultDashboard->layoutId;
     $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
     if (empty($defaultPortlets)) {
         $metadata = HomeDashboardView::getDefaultMetadata();
         $portletCollection = Portlet::makePortletsUsingMetadataSortedByColumnIdAndPosition($defaultDashboardLayoutId, $metadata, $super, null);
         $this->assertNotEmpty($portletCollection);
         Portlet::savePortlets($portletCollection);
         $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
     }
     $this->assertTrue(count($defaultPortlets) > 0);
     foreach ($defaultPortlets as $portlet) {
         $portlet->delete();
         break;
     }
     $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
     $deafultPortletViews = array();
     foreach ($defaultPortlets as $portlet) {
         $deafultPortletViews[] = $portlet->viewType;
     }
     //Push super's default dashboard to five users
     $userIds = array();
     foreach ($users as $user) {
         $userIds[] = $user->id;
     }
     $groupsAndUsers = array();
     $groupsAndUsers['groups'] = array();
     $groupsAndUsers['users'] = $userIds;
     PushDashboardUtil::pushDashboardToUsers($defaultDashboard, $groupsAndUsers);
     //Validate and compare portlets of five user's dashboard with super's default dashboard
     foreach ($users as $user) {
         $userPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $user->id);
         $this->assertEquals(count($defaultPortlets), count($userPortlets));
         foreach ($userPortlets as $portlet) {
             $this->assertTrue(in_array($portlet->viewType, $deafultPortletViews));
         }
     }
 }