Esempio n. 1
0
 /**
  * @depends testAddingUserToRoleWithNoParentsAndNoUsers
  */
 public function testAddingUserToRoleWithNoParentsAndOneUser()
 {
     // create a role with no parents
     $role = $this->createRole('twoUsers');
     // create 2 users
     $users = UserTestHelper::generateBasicUsers(2);
     foreach ($users as $user) {
         $this->addUserToRole($user, $role);
     }
     // ensure we have got the user part of the role.
     $roleId = $role->id;
     $role->forgetAll();
     unset($role);
     $role = Role::getById($roleId);
     $this->assertEquals(count($users), $role->users->count());
     foreach ($users as $i => $user) {
         $this->assertTrue($role->users[$i]->isSame($user));
     }
     $this->roleWithTwoUsers = $role;
 }
 public function testPushLayoutToUsers()
 {
     $super = Yii::app()->user->userModel;
     //Make and Get Five Users
     $users = UserTestHelper::generateBasicUsers(5);
     $this->assertEquals(5, count($users));
     //Remove first portlet from Super's ContactDetailsAndRelationsView
     $defaultLayoutId = 'Contact' . PushDashboardUtil::DETAILS_AND_RELATIONS_VIEW;
     $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
     if (empty($defaultPortlets)) {
         $metadata = ContactDetailsAndRelationsView::getDefaultMetadata();
         $portletCollection = Portlet::makePortletsUsingMetadataSortedByColumnIdAndPosition($defaultLayoutId, $metadata, $super, null);
         $this->assertNotEmpty($portletCollection);
         Portlet::savePortlets($portletCollection);
         $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
     }
     $this->assertTrue(count($defaultPortlets) > 0);
     foreach ($defaultPortlets as $portlet) {
         $portlet->delete();
         break;
     }
     $defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
     $deafultPortletViews = array();
     foreach ($defaultPortlets as $portlet) {
         $deafultPortletViews[] = $portlet->viewType;
     }
     //Push super's default ContactDetailsAndRelationsView to five users
     $userIds = array();
     foreach ($users as $user) {
         $userIds[] = $user->id;
     }
     $groupsAndUsers = array();
     $groupsAndUsers['groups'] = array();
     $groupsAndUsers['users'] = $userIds;
     PushDashboardUtil::pushLayoutToUsers(new Contact(false), $groupsAndUsers);
     //Validate portlets of five user's ContactDetailsAndRelationsView with super's ContactDetailsAndRelationsView
     foreach ($users as $user) {
         $userPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $user->id);
         $this->assertEquals(count($defaultPortlets), count($userPortlets));
         foreach ($userPortlets as $portlet) {
             $this->assertTrue(in_array($portlet->viewType, $deafultPortletViews));
         }
     }
 }