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); }
/** * 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(); }