Commit aa18305d authored by Nikolay Lobachev's avatar Nikolay Lobachev
Browse files

Issue #3298919 by LOBsTerr: Missing account's displayName from testRequestWithMemberAsUser

parent 64440de7
Loading
Loading
Loading
Loading
+1 −1
Changes for tests/src/Functional/GroupMembershipRequestFormTest.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ class GroupMembershipRequestFormTest extends GroupBrowserTestBase {
  /**
   * {@inheritdoc}
   */
  protected function setUp() {
  protected function setUp(): void {
    parent::setUp();
    $this->group = $this->createGroup();
    $this->membershipRequestManager = $this->container->get('grequest.membership_request_manager');
+70 −21
Changes for tests/src/Kernel/GroupMembershipRequestTest.php: 70 added lines, 21 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Drupal\Tests\grequest\Kernel;

use Drupal\grequest\Plugin\GroupContentEnabler\GroupMembershipRequest;
use Drupal\group\Entity\GroupContent;
use Drupal\group\GroupMembership;
use Drupal\Tests\group\Kernel\GroupKernelTestBase;

@@ -40,15 +41,23 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
   *
   * @var array
   */
  public static $modules = ['grequest', 'state_machine', 'user', 'system'];
  public static $modules = [
    'grequest',
    'state_machine',
    'user',
    'system',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
  protected function setUp(): void {
    parent::setUp();

    $this->installConfig(['grequest', 'state_machine']);
    $this->installConfig([
      'grequest',
      'state_machine',
    ]);

    $this->membershipRequestManager = $this->container->get('grequest.membership_request_manager');
    $this->entityTypeManager = $this->container->get('entity_type.manager');
@@ -75,8 +84,7 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
   */
  public function testRequestWithMemberAsUser() {
    $account = $this->createUser();

    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request = $this->createRequestMembership($account);
    $this->group->addMember($account);

    $violations = $group_membership_request->validate();
@@ -91,21 +99,50 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
  }

  /**
   * Test status update.
   * Test approval.
   */
  public function testRequestStatusUpdate() {
  public function testRequestApproval() {
    $account = $this->createUser();
    $group_membership_request = $this->createRequestMembership($account);
    $this->membershipRequestManager->approve($group_membership_request);
    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_APPROVED);
  }

  /**
   * Test rejection.
   */
  public function testRequestRejection() {
    $account = $this->createUser();
    $group_membership_request = $this->createRequestMembership($account);
    $this->membershipRequestManager->reject($group_membership_request);
    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_REJECTED);
  }

  /**
   * Test wrong status update workflow.
   */
  public function testWrongRequestWorkflow() {
    $account = $this->createUser();
    $group_membership_request = $this->createRequestMembership($account);
    $this->membershipRequestManager->approve($group_membership_request);
    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_APPROVED);
    $this->expectExceptionMessage('Transition "reject" is not allowed.');
    $this->membershipRequestManager->reject($group_membership_request);
  }

  /**
   * Create group membership request.
   *
   * @return \Drupal\group\Entity\GroupContentInterface
   *   Group membership request.
   */
  public function createRequestMembership($account) {
    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request->save();

    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_PENDING);

    $this->membershipRequestManager->approve($group_membership_request);
    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_APPROVED);

    $this->membershipRequestManager->reject($group_membership_request);
    $this->assertEquals($group_membership_request->grequest_status->value, GroupMembershipRequest::REQUEST_REJECTED);
    return $group_membership_request;
  }

  /**
@@ -115,8 +152,7 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
    $account = $this->createUser();
    $role_name = 'default-custom';

    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request->save();
    $group_membership_request = $this->createRequestMembership($account);

    $this->membershipRequestManager->approve($group_membership_request, [$role_name]);

@@ -134,8 +170,7 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
    $this->installEntitySchema('user');

    $account = $this->createUser();
    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request->save();
    $this->createRequestMembership($account);

    $this->entityTypeManager->getStorage('user')->delete([$account]);

@@ -152,8 +187,7 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {

    $account = $this->createUser();

    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request->save();
    $this->createRequestMembership($account);

    $this->group->addMember($account);

@@ -172,9 +206,6 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {

    $account = $this->createUser();

    $group_membership_request = $this->membershipRequestManager->create($this->group, $account);
    $group_membership_request->save();

    $this->group->addMember($account);

    $this->group->removeMember($account);
@@ -183,4 +214,22 @@ class GroupMembershipRequestTest extends GroupKernelTestBase {
    $this->assertNull($membership_request);
  }

  /**
   * Test wrong group content.
   */
  public function testWrongGroupContent() {
    $account = $this->createUser();
    $group_membership_group_content = GroupContent::create([
      'type' => $this->group
        ->getGroupType()
        ->getContentPlugin('group_membership')
        ->getContentTypeConfigId(),
      'gid' => $this->group->id(),
      'entity_id' => $account->id(),
    ]);

    $this->expectExceptionMessage('Only group content of "Group membership request" is allowed.');
    $this->membershipRequestManager->approve($group_membership_group_content);
  }

}