public function testSendNewUserInProject_PropertiesFromToBodyOk()
 {
     $e = new MongoTestEnvironment();
     $e->clean();
     $toUserId = $e->createUser('touser', 'To Name', '*****@*****.**');
     $toUser = new UserModel($toUserId);
     $newUserName = '******';
     $newUserPassword = '******';
     $project = $e->createProjectSettings(SF_TESTPROJECTCODE);
     $delivery = new MockCommunicateDelivery();
     Communicate::sendNewUserInProject($toUser, $newUserName, $newUserPassword, $project, $e->website, $delivery);
     // What's in the delivery?
     $senderEmail = 'no-reply@' . $e->website->domain;
     $expectedFrom = array($senderEmail => $e->website->name);
     $expectedTo = array($toUser->email => $toUser->name);
     $this->assertEqual($expectedFrom, $delivery->from);
     $this->assertEqual($expectedTo, $delivery->to);
     $this->assertPattern('/To Name/', $delivery->content);
     $this->assertPattern('/' . $newUserName . '/', $delivery->content);
     $this->assertPattern('/' . $newUserPassword . '/', $delivery->content);
 }
Exemplo n.º 2
0
 /**
  * Create a user with only username, add user to project if in context, creating user gets email of new user credentials
  * @param string $userName
  * @param string $projectId
  * @param string $currentUserId
  * @param Website $website
  * @return CreateSimpleDto
  */
 public static function createSimple($userName, $projectId, $currentUserId, $website)
 {
     $user = new UserModel();
     $user->name = $userName;
     $user->username = strtolower(str_replace(' ', '.', $user->name));
     $user->role = SystemRoles::USER;
     $user->siteRole[$website->domain] = $website->userDefaultSiteRole;
     $user->active = true;
     $userId = $user->write();
     // Make 4 digit password
     $characters = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789';
     $password = '';
     while (strlen($password) < 4) {
         $password .= substr($characters, rand() % strlen($characters), 1);
     }
     $userWithPassword = new UserModelWithPassword($userId);
     $userWithPassword->setPassword($password);
     $userWithPassword->write();
     ProjectCommands::updateUserRole($projectId, $userId, ProjectRoles::CONTRIBUTOR);
     $toUser = new UserModel($currentUserId);
     $project = new ProjectModel($projectId);
     Communicate::sendNewUserInProject($toUser, $user->username, $password, $project, $website);
     $dto = new CreateSimpleDto($userId, $password);
     return $dto->encode();
 }