/**
  * testGetRowsByUserId
  */
 public function testDeleteDashboardAndRelatedPortlets()
 {
     Yii::app()->user->userModel = User::getByUsername('billy');
     $dashboardCount = Dashboard::getCount();
     $this->assertTrue($dashboardCount > 0);
     $user = User::getByUserName('billy');
     Yii::app()->user->userModel = $user;
     $dashboard = new Dashboard();
     $dashboard->name = "Dashboard TESTING";
     $dashboard->layoutId = 3;
     $dashboard->owner = $user;
     $dashboard->layoutType = '100';
     $dashboard->isDefault = false;
     $this->assertTrue($dashboard->save());
     $this->assertEquals(Portlet::getCount(), 0);
     $this->assertEquals(Dashboard::getCount(), $dashboardCount + 1);
     for ($i = 1; $i <= 3; $i++) {
         $portlet = new Portlet();
         $portlet->column = 1;
         $portlet->position = 1 + $i;
         $portlet->layoutId = 'TEST' . $dashboard->layoutId;
         $portlet->collapsed = false;
         $portlet->viewType = 'TasksMyList';
         $portlet->user = $user;
         $this->assertTrue($portlet->save());
     }
     $this->assertEquals(Portlet::getCount(), 3);
     $portlets = Portlet::getByLayoutIdAndUserSortedById('TEST' . $dashboard->layoutId, $user->id);
     foreach ($portlets as $portlet) {
         $portlet->delete();
     }
     $dashboard->delete();
     $this->assertEquals(Portlet::getCount(), 0);
     $this->assertEquals(Dashboard::getCount(), $dashboardCount);
 }
 public function testCreateAndEditDashboardByChangingLayoutType()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $dashboardCount = Dashboard::getCount();
     //Add new dashboard using dashboard add action
     $this->resetGetArray();
     $this->setPostArray(array('Dashboard' => array('name' => 'myDataDashboard', 'layoutType' => '50,50')));
     // Not Coding Standard
     $this->runControllerWithRedirectExceptionAndGetContent('home/default/createDashboard');
     $dashboards = Dashboard::getAll();
     $this->assertEquals(intval($dashboardCount + 1), count($dashboards));
     $myDataDashboard = $dashboards[$dashboardCount];
     $this->assertEquals('myDataDashboard', $myDataDashboard->name);
     $this->assertEquals($super, $myDataDashboard->owner);
     $this->assertEquals('50,50', $myDataDashboard->layoutType);
     // Not Coding Standard
     //Add portlet on 2nd column of recently added dashboard
     $uniqueLayoutId = 'HomeDashboard' . $myDataDashboard->layoutId;
     $this->setGetArray(array('dashboardId' => $myDataDashboard->id, 'portletType' => 'ContactsMyList', 'uniqueLayoutId' => $uniqueLayoutId));
     $this->resetPostArray();
     $this->runControllerWithRedirectExceptionAndGetContent('home/defaultPortlet/add');
     //Edit dashboard and change it to one column layout
     $this->resetGetArray();
     $this->setGetArray(array('id' => $myDataDashboard->id));
     $this->runControllerWithNoExceptionsAndGetContent('home/default/editDashboard');
     $this->setPostArray(array('Dashboard' => array('layoutType' => '100')));
     $editActionContent = $this->runControllerWithRedirectExceptionAndGetContent('home/default/editDashboard');
     $this->assertNotContains('Undefined variable: maxPositionInColumn1', $editActionContent);
     $this->resetGetArray();
     $this->setGetArray(array('id' => $myDataDashboard->id));
     $this->resetPostArray();
     $this->runControllerWithNoExceptionsAndGetContent('home/default/dashboardDetails');
     $this->assertNotContains('Undefined offset: 2', $editActionContent);
 }