Commit 0f18ef84 authored by Alex Pott's avatar Alex Pott Committed by Wayne Eaker
Browse files

Issue #3154486 by alexpott: Fix D9 compatibilty: Add revision metadata keys,...

Issue #3154486 by alexpott: Fix D9 compatibilty: Add revision metadata keys, use entity type manager
parent 6c2d7e68
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ class EasyEmailStorage extends SqlContentEntityStorage implements EasyEmailStora
   * @inheritDoc
   */
  public function getEmailTypeStorage() {
    return $this->entityManager->getStorage('easy_email_type');
    return $this->entityTypeManager->getStorage('easy_email_type');
  }

  /**
+5 −0
Original line number Diff line number Diff line
@@ -55,6 +55,11 @@ use Drupal\user\UserInterface;
 *     "langcode" = "langcode",
 *     "status" = "status",
 *   },
 *   revision_metadata_keys = {
 *     "revision_user" = "revision_user",
 *     "revision_created" = "revision_created",
 *     "revision_log_message" = "revision_log_message",
 *   },
 *   links = {
 *     "canonical" = "/admin/content/email/{easy_email}",
 *     "preview" = "/admin/content/email/{easy_email}/preview",
+56 −56
Original line number Diff line number Diff line
@@ -130,8 +130,8 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals($site_config->get('mail'), $email['headers']['Sender']);
    $this->assertArrayNotHasKey('Reply-To', $email['headers']);
    $this->assertEquals('text/html; charset=UTF-8;', $email['headers']['Content-Type']);
    $this->assertContains('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertContains('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertStringContainsString('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertEquals('Test email for ' . $user1->getDisplayName(), $email['subject']);
    $this->assertEquals(1, count($email['params']['files']));
    $attachment = reset($email['params']['files']);
@@ -267,8 +267,8 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals($site_config->get('mail'), $email['headers']['Sender']);
    $this->assertArrayNotHasKey('Reply-To', $email['headers']);
    $this->assertEquals('text/html; charset=UTF-8;', $email['headers']['Content-Type']);
    $this->assertContains('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertContains('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertStringContainsString('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertEquals('Test email for ' . $user1->getDisplayName(), $email['subject']);
    $this->assertEquals(1, count($email['params']['files']));
    $attachment = reset($email['params']['files']);
@@ -407,9 +407,9 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals($site_config->get('mail'), $email['headers']['Sender']);
    $this->assertEquals('override-reply-to@example.com', $email['headers']['Reply-to']);
    $this->assertEquals('text/html; charset=UTF-8;', $email['headers']['Content-Type']);
    $this->assertContains('<p>This is the overridden HTML body for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertContains('This is the overridden inbox preview for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertContains('This is the overridden plain text body for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is the overridden HTML body for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertStringContainsString('This is the overridden inbox preview for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertStringContainsString('This is the overridden plain text body for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertEquals('Overridden subject for ' . $user1->getDisplayName(), $email['subject']);
    $this->assertEquals(2, count($email['params']['files']));
    $attachment = array_shift($email['params']['files']);
@@ -487,8 +487,8 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals(1, count($emails));
    $email = reset($emails);
    $this->assertEquals($template->id(), $email['key']);
    $this->assertContains('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertContains('This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.</p>', (string) $email['body']);
    $this->assertStringContainsString('This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
  }

  /**
@@ -551,8 +551,8 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals(1, count($emails));
    $email = reset($emails);
    $this->assertEquals($template->id(), $email['key']);
    $this->assertNotContains('This is a test email (HTML) for user account', (string) $email['body']);
    $this->assertContains('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertStringNotContainsString('This is a test email (HTML) for user account', (string) $email['body']);
    $this->assertStringContainsString('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertArrayNotHasKey('plain', $email);
  }

@@ -617,8 +617,8 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertEquals(1, count($emails));
    $email = reset($emails);
    $this->assertEquals($template->id(), $email['key']);
    $this->assertNotContains('This is a test email (Plain Text) for user account', (string) $email['body']);
    $this->assertContains('This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertStringNotContainsString('This is a test email (Plain Text) for user account', (string) $email['body']);
    $this->assertStringContainsString('This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertArrayNotHasKey('plain', $email);
  }

@@ -1312,26 +1312,26 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertArrayNotHasKey('Bcc', $email['headers']);

    // Should have standard tokens evaluated, but unsafe tokens always evaluated for the recipient user.
    $this->assertContains('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertContains('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertContains('/user/reset/' . $user1->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user4->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user2->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user3->id() . '/', (string) $email['body']);
    $this->assertContains('This is the inbox preview for user account ' . $user1->getDisplayName() . '.', (string) $email['body']);

    $this->assertContains('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertContains('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertContains('/user/reset/' . $user1->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user4->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user2->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user3->id() . '/', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertStringContainsString('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringContainsString('/user/reset/' . $user1->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user4->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user2->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user3->id() . '/', (string) $email['body']);
    $this->assertStringContainsString('This is the inbox preview for user account ' . $user1->getDisplayName() . '.', (string) $email['body']);

    $this->assertStringContainsString('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringContainsString('/user/reset/' . $user1->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user4->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user2->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user3->id() . '/', (string) $email['plain']);

    // Unsafe tokens skipped in subject
    $this->assertEquals('Test email for ' . $user1->getDisplayName() . ': [easy_email:field_user:0:entity:cancel-url], [easy_email:field_cc_user:0:entity:one-time-login-url]', $email['subject']);
@@ -1347,26 +1347,26 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertArrayNotHasKey('Bcc', $email['headers']);

    // Should have standard tokens evaluated, but unsafe tokens always evaluated for the recipient user.
    $this->assertContains('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertContains('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertContains('/user/reset/' . $user4->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user1->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user2->id() . '/', (string) $email['body']);
    $this->assertNotContains('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertNotContains('/user/reset/' . $user3->id() . '/', (string) $email['body']);
    $this->assertContains('This is the inbox preview for user account ' . $user1->getDisplayName() . '.', (string) $email['body']);

    $this->assertContains('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertContains('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertContains('/user/reset/' . $user4->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user1->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user2->id() . '/', (string) $email['plain']);
    $this->assertNotContains('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertNotContains('/user/reset/' . $user3->id() . '/', (string) $email['plain']);
    $this->assertStringContainsString('<p>This is a test email (HTML) for user account ' . $user1->getAccountName() . '.', (string) $email['body']);
    $this->assertStringContainsString('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringContainsString('/user/reset/' . $user4->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user1->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user2->id() . '/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringNotContainsString('/user/reset/' . $user3->id() . '/', (string) $email['body']);
    $this->assertStringContainsString('This is the inbox preview for user account ' . $user1->getDisplayName() . '.', (string) $email['body']);

    $this->assertStringContainsString('This is a test email (Plain Text) for user account ' . $user1->getAccountName() . '.', (string) $email['plain']);
    $this->assertStringContainsString('/user/' . $user4->id() . '/cancel/confirm/', (string) $email['body']);
    $this->assertStringContainsString('/user/reset/' . $user4->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user1->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user1->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user2->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user2->id() . '/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/' . $user3->id() . '/cancel/confirm/', (string) $email['plain']);
    $this->assertStringNotContainsString('/user/reset/' . $user3->id() . '/', (string) $email['plain']);

    // Unsafe tokens skipped in subject
    $this->assertEquals('Test email for ' . $user1->getDisplayName() . ': [easy_email:field_user:0:entity:cancel-url], [easy_email:field_cc_user:0:entity:one-time-login-url]', $email['subject']);
@@ -1427,7 +1427,7 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertSession()->pageTextNotContains('Created new email.');
    $this->assertSession()->pageTextNotContains('Email sent.');
    $this->assertSession()->pageTextContains('Email matching unique key already exists.');
    $this->assertContains('/admin/content/email/add/' . $template->id(), $this->getSession()->getCurrentUrl());
    $this->assertSession()->addressEquals('admin/content/email/add/' . $template->id());

    $emails = $this->getSentEmails([]);
    $this->assertEquals(1, count($emails));
@@ -1486,7 +1486,7 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertSession()->pageTextContains('Created new email.');
    $this->assertSession()->pageTextContains('Email sent.');;
    $this->assertSession()->pageTextNotContains('Email matching unique key already exists.');
    $this->assertNotContains('/admin/content/email/add/' . $template->id(), $this->getSession()->getCurrentUrl());
    $this->assertSession()->addressNotEquals('admin/content/email/add/' . $template->id());

    $emails = $this->getSentEmails([]);
    $this->assertEquals(2, count($emails));
@@ -1546,7 +1546,7 @@ class EasyEmailSendTest extends EasyEmailTestBase {
    $this->assertSession()->pageTextContains('Created new email.');
    $this->assertSession()->pageTextContains('Email sent.');;
    $this->assertSession()->pageTextNotContains('Email matching unique key already exists.');
    $this->assertNotContains('/admin/content/email/add/' . $template->id(), $this->getSession()->getCurrentUrl());
    $this->assertSession()->addressNotEquals('admin/content/email/add/' . $template->id());

    $emails = $this->getSentEmails([]);
    $this->assertEquals(2, count($emails));
+2 −1
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ abstract class EasyEmailTestBase extends BrowserTestBase {
      'formatter' => 'swiftmailer',
    ])->save();
    $this->config('mailsystem.settings')->set('modules', [])->save();
    $this->config('swiftmailer.message')->set('generate_plain', FALSE)->save();

    $this->adminUser = $this->drupalCreateUser($this->getAdministratorPermissions());
    $this->drupalLogin($this->adminUser);