public function testSaveAndRetrievePortlet() { $user = UserTestHelper::createBasicUser('Billy'); $contracts = Contract::getByName('superOpp'); $portlet = new Portlet(); $portlet->column = 2; $portlet->position = 5; $portlet->layoutId = 'Test'; $portlet->collapsed = true; $portlet->viewType = 'ContractsForContactRelatedList'; $portlet->serializedViewData = serialize(array('title' => 'Testing Title')); $portlet->user = $user; $this->assertTrue($portlet->save()); $portlet = Portlet::getById($portlet->id); $params = array('controllerId' => 'test', 'relationModuleId' => 'test', 'relationModel' => $contracts[0], 'redirectUrl' => 'someRedirect'); $portlet->params = $params; $unserializedViewData = unserialize($portlet->serializedViewData); $this->assertEquals(2, $portlet->column); $this->assertEquals(5, $portlet->position); $this->assertEquals('Testing Title', $portlet->getTitle()); $this->assertEquals(false, $portlet->isEditable()); $this->assertEquals('Test', $portlet->layoutId); //$this->assertEquals(true, $portlet->collapsed); //reenable once working $this->assertEquals('ContractsForContactRelatedList', $portlet->viewType); $this->assertEquals($user->id, $portlet->user->id); $view = $portlet->getView(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); $portlet = new Portlet(); $portlet->column = 2; $portlet->position = 5; $portlet->layoutId = 'Test'; $portlet->collapsed = true; $portlet->viewType = 'AccountLatestActivitiesForPortlet'; $portlet->user = $super; $portlet->save(); static::$accountLatestActivitiesPortletId = $portlet->id; }
public function testRegularUserProductPortletAccess() { $benny = $this->logoutCurrentUserLoginNewUserAndGetByUsername('nobody'); $account = AccountTestHelper::createAccountByNameForOwner('superAccount', Yii::app()->user->userModel); $superAccountId = $account->id; $benny->setRight('ProductTemplatesModule', ProductTemplatesModule::getAccessRight(), Right::DENY); $this->assertTrue($benny->save()); $this->assertFalse(RightsUtil::canUserAccessModule('ProductTemplatesModule', $benny)); $portlet = new Portlet(); $portlet->column = 1; $portlet->position = 1; $portlet->layoutId = 'Test'; $portlet->collapsed = true; $portlet->viewType = 'RssReader'; $portlet->user = $benny; $this->assertTrue($portlet->save()); $this->setGetArray(array('uniqueLayoutId' => 'AccountDetailsAndRelationsView_' . $portlet->id, 'portletId' => $portlet->id, 'relationAttributeName' => 'account', 'relationModelId' => $superAccountId, 'relationModuleId' => 'accounts', 'relationModelClassName' => 'Account')); $this->runControllerWithNoExceptionsAndGetContent('productTemplates/default/selectFromRelatedList'); }
public static function pushDetailsAndRelationsViewPortlets(User $user, $model) { $layoutIdPrefix = get_class($model); $layoutId = $layoutIdPrefix . self::DETAILS_AND_RELATIONS_VIEW; $userLayoutPortlets = Portlet::getByLayoutIdAndUserSortedById($layoutId, $user->id); $pushedLayoutPortlets = Portlet::getByLayoutIdAndUserSortedById($layoutId, Yii::app()->user->userModel->id); foreach ($userLayoutPortlets as $portlet) { $portlet->delete(); unset($portlet); } foreach ($pushedLayoutPortlets as $pushedLayoutPortlet) { $portlet = new Portlet(); $portlet->column = $pushedLayoutPortlet->column; $portlet->position = $pushedLayoutPortlet->position; $portlet->layoutId = $layoutId; $portlet->collapsed = $pushedLayoutPortlet->collapsed; $portlet->viewType = $pushedLayoutPortlet->viewType; $portlet->serializedViewData = $pushedLayoutPortlet->serializedViewData; $portlet->user = $user; $portlet->save(); } }
public function testFilteredResultsByStageForProductPortlet() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); ProductTestHelper::createProductStagesIfDoesNotExist(); $superProductId = self::getModelIdByModelNameAndName('Product', 'My Product 1'); $product = Product::getById($superProductId); $product->account = $account; $product->stage->value = 'Open'; $this->assertTrue($product->save()); ProductTestHelper::createProductByNameForOwner("My Product 2", $super); $superProductId2 = self::getModelIdByModelNameAndName('Product', 'My Product 2'); $product = Product::getById($superProductId2); $product->account = $account; $product->stage->value = 'Won'; $this->assertTrue($product->save()); $portlet = new Portlet(); $portlet->column = 1; $portlet->position = 1; $portlet->layoutId = 'AccountDetailsAndRelationsView'; $portlet->user = $super; $portlet->viewType = 'ProductsForAccountRelatedList'; $this->assertTrue($portlet->save()); $this->setGetArray(array('id' => $account->id, 'portletParams' => array('relationModuleId' => 'accounts', 'relationModelId' => $account->id), 'ProductsConfigurationForm' => array('filteredByStage' => 'Open'), 'redirectUrl' => Yii::app()->createUrl('accounts/default/details', array('id' => $account->id)), 'portletId' => $portlet->id, 'uniqueLayoutId' => 'AccountDetailsAndRelationsView_' . $portlet->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/defaultPortlet/modalRefresh'); $this->assertContains('My Product 1', $content); $this->assertNotContains('My Product 2', $content); $this->setGetArray(array('id' => $account->id, 'portletParams' => array('relationModuleId' => 'accounts', 'relationModelId' => $account->id), 'ProductsConfigurationForm' => array('filteredByStage' => 'All'), 'redirectUrl' => Yii::app()->createUrl('accounts/default/details', array('id' => $account->id)), 'portletId' => $portlet->id, 'uniqueLayoutId' => 'AccountDetailsAndRelationsView_' . $portlet->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/defaultPortlet/modalRefresh'); $this->assertContains('My Product 1', $content); $this->assertContains('My Product 2', $content); $this->setGetArray(array('id' => $account->id, 'portletParams' => array('relationModuleId' => 'accounts', 'relationModelId' => $account->id), 'ProductsConfigurationForm' => array('filteredByStage' => 'Won'), 'redirectUrl' => Yii::app()->createUrl('accounts/default/details', array('id' => $account->id)), 'portletId' => $portlet->id, 'uniqueLayoutId' => 'AccountDetailsAndRelationsView_' . $portlet->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/defaultPortlet/modalRefresh'); $this->assertNotContains('My Product 1', $content); $this->assertContains('My Product 2', $content); }
/** * Make a portlet with default values. */ public static function makePortletUsingViewType($viewType, $uniqueLayoutId, $user) { $portlet = new Portlet(); $portlet->column = 1; $portlet->position = 1; $portlet->layoutId = $uniqueLayoutId; $portlet->collapsed = false; $portlet->viewType = $viewType; $portlet->user = $user; $portlet->save(); }
/** * @depends testSavePortlet */ public function testBooleanSaveValueMatchesBooleanRetrieveValue() { $user = User::getByUserName('billy'); $portlet = new Portlet(); $portlet->column = 1; $portlet->position = 1; $portlet->layoutId = 'Test'; $portlet->collapsed = true; $portlet->viewType = 'RssReader'; $portlet->user = $user; $this->assertTrue($portlet->save()); $portlet = Portlet::getById($portlet->id); $this->assertEquals(1, $portlet->collapsed); }
/** * 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 testRegularUserAllControllerActions() { $aUser = $this->logoutCurrentUserLoginNewUserAndGetByUsername('aUser'); $this->runControllerWithNoExceptionsAndGetContent('users/default/profile'); $bUser = User::getByUsername('bUser'); //Access to admin configuration should fail. $this->runControllerShouldResultInAccessFailureAndGetContent('configuration'); //Access to users list to modify users should fail. $this->runControllerShouldResultInAccessFailureAndGetContent('users/default'); $this->setGetArray(array('id' => $bUser->id)); //Access to view other users Audit Trail should fail. $this->runControllerShouldResultInAccessFailureAndGetContent('users/default/auditEventsModalList'); //Access to edit other User and Role should fail. $this->runControllerShouldResultInAccessFailureAndGetContent('users/default/edit'); $this->setGetArray(array('id' => $aUser->id)); //Access to allowed to view Audit Trail. $this->runControllerWithNoExceptionsAndGetContent('users/default/auditEventsModalList'); //Access to User Role edit link and control not available. $content = $this->runControllerWithNoExceptionsAndGetContent('users/default/edit'); $this->assertFalse(strpos($content, 'User_role_SelectLink') !== false); $this->assertFalse(strpos($content, 'User_role_name') !== false); //Check if the user who has right access for users can access any users audit trail. $bUser = $this->logoutCurrentUserLoginNewUserAndGetByUsername('bUser'); $this->setGetArray(array('id' => $bUser->id)); //Access to audit Trail should not fail. $this->runControllerWithNoExceptionsAndGetContent('users/default/auditEventsModalList'); $this->setGetArray(array('id' => $aUser->id)); //Access to other user audit Trail should not fail. $this->runControllerWithNoExceptionsAndGetContent('users/default/auditEventsModalList'); //Now test all portlet controller actions $portlet = new Portlet(); $portlet->column = 1; $portlet->position = 1; $portlet->layoutId = 'xyz'; $portlet->collapsed = false; $portlet->viewType = 'UserLatestActivitiesForPortlet'; $portlet->user = $bUser; $portlet->save(); $this->setGetArray(array('id' => $aUser->id, 'portletId' => $portlet->id)); //Using dummy portlet id //Access to details of a portlet for self user should be fine. $this->runControllerWithNoExceptionsAndGetContent('users/defaultPortlet/details'); //Now test peon with elevated rights to tabs /other available rights //such as convert lead //Now test peon with elevated permissions to models. //actionModalList //Autocomplete for User }