ProfileTestTrait.php in Profile 8
Namespace
Drupal\profileFile
src/ProfileTestTrait.phpView source
<?php
namespace Drupal\profile;
use Drupal\profile\Entity\ProfileTypeInterface;
use Drupal\profile\Entity\ProfileType;
use Drupal\profile\Entity\Profile;
use Drupal\user\UserInterface;
/**
* Provides methods to create additional profiles and profile_types.
*
* This trait is meant to be used only by test classes.
*/
trait ProfileTestTrait {
/**
* Creates a profile type for tests.
*
* @param string $id
* The profile type machine name.
* @param string $label
* The profile type human display name.
* @param bool $registration
* Boolean if profile type shows on registration form.
* @param array $roles
* Array of user role machine names.
*
* @return \Drupal\profile\Entity\ProfileTypeInterface
* Returns a profile type entity.
*/
protected function createProfileType($id = NULL, $label = NULL, $registration = FALSE, array $roles = []) {
$id = !empty($id) ? $id : $this
->randomMachineName();
$label = !empty($label) ? $label : $this
->randomMachineName();
$type = ProfileType::create([
'id' => $id,
'label' => $label,
'display_label' => $label,
'registration' => $registration,
'roles' => $roles,
]);
$type
->save();
return $type;
}
/**
* Create a user, and optionally a profile.
*
* @param \Drupal\profile\Entity\ProfileTypeInterface $profile_type
* A profile type for the created profile entity.
* @param \Drupal\user\UserInterface $user
* A user to create a profile.
*
* @return \Drupal\profile\Entity\ProfileInterface
* A profile for a user.
*/
protected function createProfile(ProfileTypeInterface $profile_type, UserInterface $user) {
$profile = Profile::create([
'type' => $profile_type
->id(),
'uid' => $user
->id(),
]);
$profile
->save();
return $profile;
}
}
Traits
Name![]() |
Description |
---|---|
ProfileTestTrait | Provides methods to create additional profiles and profile_types. |