public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); AccountTestHelper::createAccountByNameForOwner('anAccount', $super); }
public function testRequiredAttributesAreMissingFromLayout() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $account = AccountTestHelper::createAccountByNameForOwner('aTestAccount', $super); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/default/create'); $this->assertNotContains('There are required fields missing from the following layout', $content); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/default/list'); $this->assertNotContains('There are required fields missing from the following layout', $content); $this->setGetArray(array('id' => $account->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/default/edit'); $this->assertNotContains('There are required fields missing from the following layout', $content); //Now create an attribute that is required. $this->createTextCustomFieldByModule('AccountsModule', 'text'); $content = $this->runControllerWithExitExceptionAndGetContent('accounts/default/create'); $this->assertContains('There are required fields missing from the following layout', $content); $content = $this->runControllerWithNoExceptionsAndGetContent('accounts/default/list'); $this->assertNotContains('There are required fields missing from the following layout', $content); $this->setGetArray(array('id' => $account->id)); $content = $this->runControllerWithExitExceptionAndGetContent('accounts/default/edit'); $this->assertContains('There are required fields missing from the following layout', $content); //Remove the new field. $modelAttributesAdapterClassName = TextAttributeForm::getModelAttributeAdapterNameForSavingAttributeFormData(); $adapter = new $modelAttributesAdapterClassName(new Account()); $adapter->removeAttributeMetadata('text'); RequiredAttributesValidViewUtil::resolveToRemoveAttributeAsMissingRequiredAttribute('Account', 'text'); $account = new Account(); $this->assertFalse($account->isAttribute('text')); unset($account); }
public function testProperlyDeletingActivityItems() { Yii::app()->user->userModel = User::getByUsername('super'); $count = ZurmoRedBean::getRow('select count(*) count from activity_item'); $this->assertEquals(0, $count['count']); $account = AccountTestHelper::createAccountByNameForOwner('anAccount', Yii::app()->user->userModel); $deleted = $account->delete(); $this->assertTrue($deleted); $count = ZurmoRedBean::getRow('select count(*) count from activity_item'); $this->assertEquals(0, $count['count']); $account2 = AccountTestHelper::createAccountByNameForOwner('anAccount2', Yii::app()->user->userModel); $opportunity = OpportunityTestHelper::createOpportunityByNameForOwner('anOpp', Yii::app()->user->userModel); $task = TaskTestHelper::createTaskWithOwnerAndRelatedAccount('aTask', Yii::app()->user->userModel, $account2); $task->activityItems->add($opportunity); $this->assertTrue($task->save()); $taskId = $task->id; $task->forget(); RedBeansCache::forgetAll(); $count = ZurmoRedBean::getRow('select count(*) count from activity_item'); $this->assertEquals(2, $count['count']); $deleted = $account2->delete(); $this->assertTrue($deleted); $account2->forget(); $count = ZurmoRedBean::getRow('select count(*) count from activity_item'); $this->assertEquals(1, $count['count']); RedBeansCache::forgetAll(); //Make sure things render ok even with the account deleted. $content = ActivitiesUtil::renderSummaryContent(Task::getById($taskId), 'someUrl', LatestActivitiesConfigurationForm::OWNED_BY_FILTER_ALL, 'HomeModule'); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $nobody = UserTestHelper::createBasicUser('nobody'); $nobody->setRight('MarketingListsModule', MarketingListsModule::getAccessRight()); $saved = $nobody->save(); static::assertTrue($saved); Yii::app()->user->userModel = $nobody; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('nobodyAccount', $nobody); $marketingList1 = MarketingListTestHelper::createMarketingListByName('MarketingList1', 'MarketingList Description1'); $marketingList2 = MarketingListTestHelper::createMarketingListByName('MarketingList2', 'MarketingList Description2'); for ($i = 0; $i < 17; $i++) { if ($i % 2) { $unsubscribed = 0; } else { $unsubscribed = 1; } $contact1 = ContactTestHelper::createContactWithAccountByNameForOwner('nobodyContact1' . $i, $nobody, $account); $contact2 = ContactTestHelper::createContactWithAccountByNameForOwner('nobodyContact2' . $i, $nobody, $account); MarketingListMemberTestHelper::createMarketingListMember($unsubscribed, $marketingList1, $contact1); MarketingListMemberTestHelper::createMarketingListMember($unsubscribed, $marketingList2, $contact2); } AllPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); Yii::app()->user->userModel = User::getByUsername('nobody'); self::$account = AccountTestHelper::createAccountByNameForOwner('superAccount', Yii::app()->user->userModel); self::$contact = ContactTestHelper::createContactWithAccountByNameForOwner('superContact', Yii::app()->user->userModel, self::$account); }
public function testUnlinkContactForAccount() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $simpleUser = User::getByUsername('simpleUser'); Yii::app()->user->userModel = $simpleUser; $simpleUser->setRight('AccountsModule', AccountsModule::RIGHT_ACCESS_ACCOUNTS); $simpleUser->setRight('AccountsModule', AccountsModule::RIGHT_CREATE_ACCOUNTS); $simpleUser->setRight('ContactsModule', ContactsModule::RIGHT_ACCESS_CONTACTS); $simpleUser->setRight('ContactsModule', ContactsModule::RIGHT_ACCESS_CONTACTS); $this->assertTrue($simpleUser->save()); $account = AccountTestHelper::createAccountByNameForOwner('simpleUserAccount', $simpleUser); $contact = ContactTestHelper::createContactWithAccountByNameForOwner('simpleUserContact', $simpleUser, $account); $accounts = Account::getAll(); $this->assertEquals(1, count($accounts)); $contacts = Contact::getAll(); $this->assertEquals(1, count($contacts)); $superAccountId = self::getModelIdByModelNameAndName('Account', 'simpleUserAccount'); $this->setGetArray(array('id' => $superAccountId)); $this->resetPostArray(); $this->runControllerWithNoExceptionsAndGetContent('accounts/default/details'); $contactId = self::getModelIdByModelNameAndName('Contact', 'simpleUserContact simpleUserContactson'); //unlinking the contact $this->setGetArray(array('id' => $contactId, 'relationModelClassName' => 'Account', 'relationModelId' => $superAccountId, 'relationModelRelationName' => 'contacts')); $content = $this->runControllerWithNoExceptionsAndGetContent('contacts/default/unlink', true); $accounts = Account::getAll(); $this->assertEquals(1, count($accounts)); $contacts = Contact::getAll(); $contactId = $contacts[0]->id; $contacts[0]->forget(); $contact = Contact::getById($contactId); $this->assertTrue($contact->account->id < 0); }
public function testRegularUserAllControllerActionsNoElevation() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $superAccount = AccountTestHelper::createAccountByNameForOwner('accountOwnedBySuper', $super); //Create address array for the account owned by super user. $address = array('street1' => '123 Knob Street', 'street2' => 'Apartment 4b', 'city' => 'Chicago', 'state' => 'Illinois', 'postalCode' => '60606', 'country' => 'USA'); //Assign Address to the user account. AddressGeoCodeTestHelper::updateTestAccountsWithBillingAddress($superAccount->id, $address, $super); //Fetch Latitute and Longitude values for address and save in Address. AddressMappingUtil::updateChangedAddresses(); $accounts = Account::getByName('accountOwnedBySuper'); $this->assertEquals(1, count($accounts)); $this->assertEquals(round('42.11529', 4), round($accounts[0]->billingAddress->latitude, 4)); $this->assertEquals(round('-87.976399', 4), round($accounts[0]->billingAddress->longitude, 4)); $this->assertEquals(0, $accounts[0]->billingAddress->invalid); $addressString = $accounts[0]->billingAddress->makeAddress(); $this->setGetArray(array('addressString' => $addressString, 'latitude' => $accounts[0]->billingAddress->latitude, 'longitude' => $accounts[0]->billingAddress->longitude)); Yii::app()->user->userModel = User::getByUsername('nobody'); //Now test account details portlet controller actions $this->setGetArray(array('id' => $superAccount->id)); $this->resetPostArray(); $this->runControllerShouldResultInAccessFailureAndGetContent('accounts/default/details'); //The map should always be available. Not controlled by rights. $this->setGetArray(array('addressString' => 'anAddress String', 'latitude' => '45.00', 'longitude' => '45.00')); $content = $this->runControllerWithNoExceptionsAndGetContent('maps/default/mapAndPoint'); $this->assertNotContains('Access Failure', $content); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('superAccount', $super); AccountTestHelper::createAccountByNameForOwner('superAccount2', $super); AccountTestHelper::createAccountByNameForOwner('superAccount3', $super); AccountTestHelper::createAccountByNameForOwner('superAccount4', $super); AccountTestHelper::createAccountByNameForOwner('superAccount5', $super); AccountTestHelper::createAccountByNameForOwner('superAccount6', $super); AccountTestHelper::createAccountByNameForOwner('superAccount7', $super); AccountTestHelper::createAccountByNameForOwner('superAccount8', $super); AccountTestHelper::createAccountByNameForOwner('superAccount9', $super); AccountTestHelper::createAccountByNameForOwner('superAccount10', $super); AccountTestHelper::createAccountByNameForOwner('superAccount11', $super); AccountTestHelper::createAccountByNameForOwner('superAccount12', $super); AccountTestHelper::createAccountByNameForOwner('superAccount13', $super); AccountTestHelper::createAccountByNameForOwner('superAccount14', $super); AccountTestHelper::createAccountByNameForOwner('superAccount15', $super); AccountTestHelper::createAccountByNameForOwner('superAccount16', $super); AccountTestHelper::createAccountByNameForOwner('superAccount17', $super); AccountTestHelper::createAccountByNameForOwner('superAccount18', $super); AccountTestHelper::createAccountByNameForOwner('superAccount19', $super); AccountTestHelper::createAccountByNameForOwner('superAccount20', $super); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); AccountTestHelper::createAccountByNameForOwner('superAccount2', $super); ContactTestHelper::createContactWithAccountByNameForOwner('superContact', $super, $account); ContactTestHelper::createContactWithAccountByNameForOwner('superContact2', $super, $account); OpportunityTestHelper::createOpportunityStagesIfDoesNotExist(); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp2', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp3', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp4', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp5', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp6', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp7', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp8', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp9', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp10', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp11', $super, $account); OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('superOpp12', $super, $account); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; AccountTestHelper::createAccountByNameForOwner('anAccount', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = User::getByUsername('super'); $headquarters = AccountTestHelper::createAccountByNameForOwner('Headquarters', $super); $division1 = AccountTestHelper::createAccountByNameForOwner('Division1', $super); $division2 = AccountTestHelper::createAccountByNameForOwner('Division2', $super); $ceo = ContactTestHelper::createContactWithAccountByNameForOwner('ceo', $super, $headquarters); $div1President = ContactTestHelper::createContactWithAccountByNameForOwner('div1 President', $super, $division1); $div2President = ContactTestHelper::createContactWithAccountByNameForOwner('div2 President', $super, $division2); $opportunity = OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('big opp', $super, $headquarters); $opportunityDiv1 = OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('div1 small opp', $super, $division1); $opportunityDiv2 = OpportunityTestHelper::createOpportunityWithAccountByNameForOwner('div2 small opp', $super, $division2); //attach divisions to headquarters $headquarters->accounts->add($division1); $headquarters->accounts->add($division2); assert($headquarters->save()); // Not Coding Standard //attach opportunities to contacts $opportunity->contacts->add($ceo); assert($opportunity->save()); // Not Coding Standard //Forget models to ensure relations are known on the next retrieval $headquarters->forget(); $division1->forget(); $division2->forget(); $ceo->forget(); }
/** * Walkthrough test for synchronous download */ public function testDownloadDefaultControllerActions() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $accounts = array(); for ($i = 0; $i < 2; $i++) { $accounts[] = AccountTestHelper::createAccountByNameForOwner('superAccount' . $i, $super); } // Check if access is denied if user doesn't have access privileges at all to export actions Yii::app()->user->userModel = User::getByUsername('nobody'); $nobody = $this->logoutCurrentUserLoginNewUserAndGetByUsername('nobody'); // Provide no ids and without selectALl options. // This should be result with error and redirect to module page. $this->runControllerShouldResultInAccessFailureAndGetContent('accounts/default/list'); $this->setGetArray(array('Account_page' => '1', 'export' => '', 'ajax' => '', 'selectAll' => '', 'selectedIds' => '')); $this->runControllerShouldResultInAccessFailureAndGetContent('accounts/default/export'); // Check if user have access to module action, but not to export action //Now test peon with elevated rights to accounts $nobody->setRight('AccountsModule', AccountsModule::RIGHT_ACCESS_ACCOUNTS); $nobody->setRight('AccountsModule', AccountsModule::RIGHT_CREATE_ACCOUNTS); $nobody->setRight('AccountsModule', AccountsModule::RIGHT_DELETE_ACCOUNTS); $nobody->setRight('ExportModule', ExportModule::RIGHT_ACCESS_EXPORT); $this->assertTrue($nobody->save()); // Check if access is denied if user doesn't have access privileges at all to export actions $nobody = $this->logoutCurrentUserLoginNewUserAndGetByUsername('nobody'); Yii::app()->user->userModel = User::getByUsername('nobody'); // Provide no ids and without selectALl options. // This should be result with error and redirect to module page. $this->runControllerWithNoExceptionsAndGetContent('accounts/default/list'); $this->setGetArray(array('Account_page' => '1', 'export' => '', 'ajax' => '', 'selectAll' => '', 'selectedIds' => '')); $response = $this->runControllerWithRedirectExceptionAndGetUrl('accounts/default/export'); $this->assertTrue(strstr($response, 'accounts/default/index') !== false); $this->setGetArray(array('AccountsSearchForm' => array('anyMixedAttributesScope' => array(0 => 'All'), 'anyMixedAttributes' => '', 'name' => 'superAccount', 'officePhone' => ''), 'multiselect_AccountsSearchForm_anyMixedAttributesScope' => 'All', 'selectAll' => '1', 'selectedIds' => '', 'Account_page' => '1', 'export' => '', 'ajax' => '')); $response = $this->runControllerWithRedirectExceptionAndGetUrl('accounts/default/export'); $this->assertTrue(strstr($response, 'accounts/default/index') !== false); $this->setGetArray(array('AccountsSearchForm' => array('anyMixedAttributesScope' => array(0 => 'All'), 'anyMixedAttributes' => '', 'name' => '', 'officePhone' => ''), 'multiselect_AccountsSearchForm_anyMixedAttributesScope' => 'All', 'selectAll' => '', 'selectedIds' => "{$accounts[0]->id}, {$accounts[1]->id}", 'Account_page' => '1', 'export' => '', 'ajax' => '')); $response = $this->runControllerWithRedirectExceptionAndGetUrl('accounts/default/export'); $this->assertTrue(strstr($response, 'accounts/default/index') !== false); $this->assertContains('There is no data to export.', Yii::app()->user->getFlash('notification')); //give nobody access to read and write Yii::app()->user->userModel = $super; foreach ($accounts as $account) { $account->addPermissions($nobody, Permission::READ_WRITE_CHANGE_PERMISSIONS); AllPermissionsOptimizationUtil::securableItemGivenPermissionsForUser($account, $nobody); $this->assertTrue($account->save()); } //Now the nobody user should be able to access the edit view and still the details view. Yii::app()->user->userModel = $nobody; $this->setGetArray(array('AccountsSearchForm' => array('anyMixedAttributesScope' => array(0 => 'All'), 'anyMixedAttributes' => '', 'name' => '', 'officePhone' => ''), 'multiselect_AccountsSearchForm_anyMixedAttributesScope' => 'All', 'selectAll' => '1', 'selectedIds' => '', 'Account_page' => '1', 'export' => '', 'ajax' => '')); $response = $this->runControllerWithExitExceptionAndGetContent('accounts/default/export'); $this->assertEquals('Testing download.', $response); $this->setGetArray(array('AccountsSearchForm' => array('anyMixedAttributesScope' => array(0 => 'All'), 'anyMixedAttributes' => '', 'name' => '', 'officePhone' => ''), 'multiselect_AccountsSearchForm_anyMixedAttributesScope' => 'All', 'selectAll' => '', 'selectedIds' => "{$accounts[0]->id}, {$accounts[1]->id}", 'Account_page' => '1', 'export' => '', 'ajax' => '')); $response = $this->runControllerWithExitExceptionAndGetContent('accounts/default/export'); $this->assertEquals('Testing download.', $response); // No matches $this->setGetArray(array('AccountsSearchForm' => array('anyMixedAttributesScope' => array(0 => 'All'), 'anyMixedAttributes' => '', 'name' => 'missingName', 'officePhone' => ''), 'multiselect_AccountsSearchForm_anyMixedAttributesScope' => 'All', 'Account_page' => '1', 'selectAll' => '1', 'selectedIds' => '', 'export' => '', 'ajax' => '')); $response = $this->runControllerWithRedirectExceptionAndGetUrl('accounts/default/export'); $this->assertTrue(strstr($response, 'accounts/default/index') !== false); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('superAccount', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $account = AccountTestHelper::createAccountByNameForOwner('anAccount', $super); MeetingTestHelper::createCategories(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; TaskTestHelper::createTaskByNameForOwner('My Task', $super); AccountTestHelper::createAccountByNameForOwner('anAccount', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; Currency::makeBaseCurrency(); //Create a account for testing $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); }
public function testMakeStringForMultipleLinks() { $account1 = AccountTestHelper::createAccountByNameForOwner('account1', $this->user); $result = ReportResultsGridUtil::makeStringForMultipleLinks('account1', 'Account', 'AccountsModule'); $this->assertContains('a target="new"', $result); $this->assertNotContains('tooltip', $result); $account2 = AccountTestHelper::createAccountByNameForOwner('account1', $this->user); $result = ReportResultsGridUtil::makeStringForMultipleLinks('account1', 'Account', 'AccountsModule'); $this->assertContains('<span class="tooltip">2</span>', $result); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; ReadPermissionsOptimizationUtil::rebuild(); ContactsModule::loadStartingData(); //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('Dinamite', $super); AccountTestHelper::createAccountByNameForOwner('dino', $super); }
public function testDownCasts() { $possibleDerivationPaths = array(array('SecurableItem', 'OwnedSecurableItem', 'Account'), array('SecurableItem', 'OwnedSecurableItem', 'Person', 'Contact'), array('SecurableItem', 'OwnedSecurableItem', 'Opportunity')); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $account = AccountTestHelper::createAccountByNameForOwner('Waggle', $super); $contact = ContactTestHelper::createContactByNameForOwner('Noddy', $super); $opportunity = OpportunityTestHelper::createOpportunityByNameForOwner('Noddy', $super); $accountItem = Item::getById($account->getClassId('Item')); $contactItem = Item::getById($contact->getClassId('Item')); $opportunityItem = Item::getById($opportunity->getClassId('Item')); $this->assertTrue($accountItem->isSame($account)); $this->assertTrue($contactItem->isSame($contact)); $this->assertTrue($opportunityItem->isSame($opportunity)); $this->assertFalse($accountItem instanceof Account); $this->assertFalse($contactItem instanceof Contact); $this->assertFalse($opportunityItem instanceof Opportunity); $account2 = $accountItem->castDown($possibleDerivationPaths); $this->assertEquals('Account', get_class($account2)); //Demonstrate a single array, making sure it casts down properly. $accountItem2 = Item::getById($account->getClassId('Item')); $account3 = $accountItem2->castDown(array(array('SecurableItem', 'OwnedSecurableItem', 'Account'))); $this->assertEquals('Account', get_class($account3)); $contact2 = $contactItem->castDown($possibleDerivationPaths); $opportunity2 = $opportunityItem->castDown($possibleDerivationPaths); $this->assertTrue($account2->isSame($account)); $this->assertTrue($contact2->isSame($contact)); $this->assertTrue($opportunity2->isSame($opportunity)); $this->assertTrue($account2 instanceof Account); $this->assertTrue($contact2 instanceof Contact); $this->assertTrue($opportunity2 instanceof Opportunity); $account2 = AccountTestHelper::createAccountByNameForOwner('Waggle2', $super); //By adding a second contact with a relation to the account2, we can demonstrate a bug with how castDown works. //Since contacts can in fact be attached to accounts via account_id, if a contact exists connected to the account //we are trying to cast down, then this will cast down even though it shouldn't. $contact2 = ContactTestHelper::createContactWithAccountByNameForOwner('MrWaggle2', $super, $account2); try { $account2CastedDown = $account2->castDown(array(array('SecurableItem', 'OwnedSecurableItem', 'Person', 'Contact'))); $this->fail(); } catch (NotFoundException $e) { //success } //Now try to forget the account and retrieve it. $account2Id = $account2->id; $account2->forget(); unset($account2); $account2 = Account::getById($account2Id); try { $account2CastedDown = $account2->castDown(array(array('SecurableItem', 'OwnedSecurableItem', 'Person', 'Contact'))); $this->fail(); } catch (NotFoundException $e) { //success } }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); self::$super = User::getByUsername('super'); self::$myUser = UserTestHelper::createBasicUser('myuser'); self::$sally = UserTestHelper::createBasicUser('sally'); Yii::app()->user->userModel = self::$super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', self::$super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; Currency::makeBaseCurrency(); //Setup test data owned by the super user. self::$account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); self::$contact = ContactTestHelper::createContactByNameForOwner('superContact2', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('superAccount', $super); AddressGeoCodeTestHelper::createAndRemoveAccountWithAddress($super); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); $opportunity = OpportunityTestHelper::createOpportunityByNameForOwner('superOpportunity', $super); $productTemplate = ProductTemplateTestHelper::createProductTemplateByName('superProductTemplate'); $contactWithNoAccount = ContactTestHelper::createContactByNameForOwner('noAccountContact', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); AccountTestHelper::createAccountByNameForOwner('superAccount2', $super); ContractTestHelper::createContractStagesIfDoesNotExist(); ContractTestHelper::createContractWithAccountByNameForOwner('superOpp', $super, $account); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $account = AccountTestHelper::createAccountByNameForOwner('account', $super); static::$contact = ContactTestHelper::createContactWithAccountByNameForOwner('contact', $super, $account); static::$marketingList = MarketingListTestHelper::createMarketingListByName('marketingList', 'description', 'fromName', '*****@*****.**', true); static::$marketingListMember = MarketingListMemberTestHelper::createMarketingListMember(1, static::$marketingList, static::$contact); AllPermissionsOptimizationUtil::rebuild(); }
public function testGetByAccountAndContact() { $account = AccountTestHelper::createAccountByNameForOwner('secondAccount', Yii::app()->user->userModel); $contact = ContactTestHelper::createContactByNameForOwner('secondContact', Yii::app()->user->userModel); $this->assertEquals(0, count(AccountContactAffiliation::getAll())); $accountContactAffiliation = new AccountContactAffiliation(); $accountContactAffiliation->account = $account; $accountContactAffiliation->contact = $contact; $this->assertTrue($accountContactAffiliation->save()); $accountContactAffiliations = AccountContactAffiliation::getByAccountAndContact($account, $contact); $this->assertEquals(1, count($accountContactAffiliation)); $this->assertTrue($accountContactAffiliation->isSame($accountContactAffiliations[0])); }
public function testResolveLinkMessageToModel() { Yii::app()->user->userModel = User::getByUsername('super'); $account = AccountTestHelper::createAccountByNameForOwner('account', Yii::app()->user->userModel); $content = ImportUtil::resolveLinkMessageToModel($account); $this->assertContains('accounts/default/details?id', $content); $contact = ContactTestHelper::createContactByNameForOwner('contact', Yii::app()->user->userModel); $content = ImportUtil::resolveLinkMessageToModel($contact); $this->assertContains('contacts/default/details?id', $content); $lead = LeadTestHelper::createLeadByNameForOwner('lead', Yii::app()->user->userModel); $content = ImportUtil::resolveLinkMessageToModel($lead); $this->assertContains('leads/default/details?id', $content); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); $contact = ContactTestHelper::createContactWithAccountByNameForOwner('superContact', $super, $account); ProductTestHelper::createProductByNameForOwner("My Product 1", $super); //Setup test data owned by the super user. ProductTemplateTestHelper::createProductTemplateByName('My Product Template'); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); SecurityTestHelper::createUsers(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); for ($i = 0; $i < 10; $i++) { MarketingListTestHelper::createMarketingListByName('test marketing List ' . $i); ContactTestHelper::createContactWithAccountByNameForOwner('superContact' . $i, $super, $account); } }
public function testSimpleUserImportWhereAllRowsSucceed() { Yii::app()->user->userModel = User::getByUsername('super'); $account = AccountTestHelper::createAccountByNameForOwner('Account', Yii::app()->user->userModel); $contact = ContactTestHelper::createContactByNameForOwner('Contact', Yii::app()->user->userModel); $accountContactAffiliations = AccountContactAffiliation::getAll(); $this->assertEquals(0, count($accountContactAffiliations)); $import = new Import(); $serializedData['importRulesType'] = 'AccountContactAffiliations'; $serializedData['firstRowIsHeaderRow'] = true; $import->serializedData = serialize($serializedData); $this->assertTrue($import->save()); ImportTestHelper::createTempTableByFileNameAndTableName('importTest.csv', $import->getTempTableName(), true, Yii::getPathOfAlias('application.modules.accountContactAffiliations.tests.unit.files')); //update the ids of the account column to match the parent account. ZurmoRedBean::exec("update " . $import->getTempTableName() . " set column_2 = " . $account->id . " where id != 1 limit 4"); ZurmoRedBean::exec("update " . $import->getTempTableName() . " set column_1 = " . $contact->id . " where id != 1 limit 4"); $this->assertEquals(4, ImportDatabaseUtil::getCount($import->getTempTableName())); // includes header rows. $mappingData = array('column_0' => ImportMappingUtil::makeDropDownColumnMappingData('role'), 'column_1' => ImportMappingUtil::makeHasOneColumnMappingData('contact'), 'column_2' => ImportMappingUtil::makeHasOneColumnMappingData('account')); $importRules = ImportRulesUtil::makeImportRulesByType('AccountContactAffiliations'); $page = 0; $config = array('pagination' => array('pageSize' => 50)); //This way all rows are processed. $dataProvider = new ImportDataProvider($import->getTempTableName(), true, $config); $dataProvider->getPagination()->setCurrentPage($page); $importResultsUtil = new ImportResultsUtil($import); $messageLogger = new ImportMessageLogger(); ImportUtil::importByDataProvider($dataProvider, $importRules, $mappingData, $importResultsUtil, new ExplicitReadWriteModelPermissions(), $messageLogger); $importResultsUtil->processStatusAndMessagesForEachRow(); //Confirm that 3 models where created. $accountContactAffiliations = AccountContactAffiliation::getAll(); $this->assertEquals(3, count($accountContactAffiliations)); $this->assertEquals('0', $accountContactAffiliations[0]->primary); $this->assertTrue($accountContactAffiliations[0]->account->isSame($account)); $this->assertTrue($accountContactAffiliations[0]->contact->isSame($contact)); $this->assertEquals('', $accountContactAffiliations[0]->role->value); $this->assertEquals('0', $accountContactAffiliations[1]->primary); $this->assertTrue($accountContactAffiliations[1]->account->isSame($account)); $this->assertTrue($accountContactAffiliations[1]->contact->isSame($contact)); $this->assertEquals('Support', $accountContactAffiliations[1]->role->value); $this->assertEquals('0', $accountContactAffiliations[2]->primary); $this->assertTrue($accountContactAffiliations[2]->account->isSame($account)); $this->assertTrue($accountContactAffiliations[2]->contact->isSame($contact)); $this->assertEquals('Technical', $accountContactAffiliations[2]->role->value); //Confirm 3 rows were processed as 'created'. $this->assertEquals(3, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::CREATED)); //Confirm that 0 rows were processed as 'updated'. $this->assertEquals(0, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::UPDATED)); }