
| Current Path : /var/www/html/store/web/modules/contrib/profile/src/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/store/web/modules/contrib/profile/src/ProfileTestTrait.php |
<?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;
}
}