From 05bcc07f74ff2d88460832a3d2a7ea660ea409d5 Mon Sep 17 00:00:00 2001
From: Aaron Bauman <aaron@messageagency.com>
Date: Mon, 6 Jan 2020 12:35:22 -0500
Subject: [PATCH] Add default theme for browser tests

---
 .../SalesforceJwtTest.php                     |  7 ++++++
 .../src/Entity/MappedObject.php               | 23 +++++++++++++++++++
 .../tests/src/Functional/PushParamsTest.php   |  7 ++++++
 .../Tests/SalesforceMappingCrudFormTest.php   |  7 ++++++
 .../SalesforceOAuthTest.php                   |  7 ++++++
 .../tests/src/Functional/PullQueueTest.php    |  7 ++++++
 .../tests/src/Unit/DeleteHandlerTest.php      | 11 +++++----
 .../tests/src/Functional/PushQueueTest.php    |  7 ++++++
 tests/src/Functional/StatusPageTest.php       |  7 ++++++
 9 files changed, 78 insertions(+), 5 deletions(-)

diff --git a/modules/salesforce_jwt/tests/src/FunctionalJavascript/SalesforceJwtTest.php b/modules/salesforce_jwt/tests/src/FunctionalJavascript/SalesforceJwtTest.php
index 2a54a8e6..10e00ef3 100644
--- a/modules/salesforce_jwt/tests/src/FunctionalJavascript/SalesforceJwtTest.php
+++ b/modules/salesforce_jwt/tests/src/FunctionalJavascript/SalesforceJwtTest.php
@@ -13,6 +13,13 @@ use Drupal\Tests\key\Functional\KeyTestTrait;
  */
 class SalesforceJwtTest extends WebDriverTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   use KeyTestTrait;
 
   /**
diff --git a/modules/salesforce_mapping/src/Entity/MappedObject.php b/modules/salesforce_mapping/src/Entity/MappedObject.php
index 822a93a5..d5c3ae53 100644
--- a/modules/salesforce_mapping/src/Entity/MappedObject.php
+++ b/modules/salesforce_mapping/src/Entity/MappedObject.php
@@ -51,6 +51,11 @@ use Drupal\salesforce_mapping\PushParams;
  *      "revision" = "revision_id",
  *      "label" = "salesforce_id"
  *   },
+ *   revision_metadata_keys = {
+ *     "revision_user" = "revision_user",
+ *     "revision_created" = "revision_created",
+ *     "revision_log_message" = "revision_log_message"
+ *   },
  *   constraints = {
  *     "MappingSfid" = {},
  *     "MappingEntity" = {},
@@ -93,6 +98,24 @@ class MappedObject extends RevisionableContentEntityBase implements MappedObject
     parent::__construct($values, 'salesforce_mapped_object');
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function preSaveRevision(EntityStorageInterface $storage, \stdClass $record) {
+    // Revision uid, timestamp, and message are required for D9.
+    if ($this->isNewRevision()) {
+      if (empty($this->getRevisionUserId())) {
+        $this->setRevisionUserId(1);
+      }
+      if (empty($this->getRevisionCreationTime())) {
+        $this->setRevisionCreationTime(time());
+      }
+      if (empty($this->getRevisionLogMessage())) {
+        $this->setRevisionLogMessage('New revision');
+      }
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/modules/salesforce_mapping/tests/src/Functional/PushParamsTest.php b/modules/salesforce_mapping/tests/src/Functional/PushParamsTest.php
index 8135b1c3..8f30d690 100644
--- a/modules/salesforce_mapping/tests/src/Functional/PushParamsTest.php
+++ b/modules/salesforce_mapping/tests/src/Functional/PushParamsTest.php
@@ -18,6 +18,13 @@ use DateTime;
  */
 class PushParamsTest extends BrowserTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Required modules.
    *
diff --git a/modules/salesforce_mapping_ui/src/Tests/SalesforceMappingCrudFormTest.php b/modules/salesforce_mapping_ui/src/Tests/SalesforceMappingCrudFormTest.php
index d0808897..f8bd8b20 100644
--- a/modules/salesforce_mapping_ui/src/Tests/SalesforceMappingCrudFormTest.php
+++ b/modules/salesforce_mapping_ui/src/Tests/SalesforceMappingCrudFormTest.php
@@ -11,6 +11,13 @@ use Drupal\Tests\BrowserTestBase;
  */
 class SalesforceMappingCrudFormTest extends BrowserTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Modules to enable.
    *
diff --git a/modules/salesforce_oauth/tests/src/FunctionalJavascript/SalesforceOAuthTest.php b/modules/salesforce_oauth/tests/src/FunctionalJavascript/SalesforceOAuthTest.php
index c1b48e0d..e1cc9c1f 100644
--- a/modules/salesforce_oauth/tests/src/FunctionalJavascript/SalesforceOAuthTest.php
+++ b/modules/salesforce_oauth/tests/src/FunctionalJavascript/SalesforceOAuthTest.php
@@ -11,6 +11,13 @@ use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
  */
 class SalesforceOAuthTest extends WebDriverTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Required modules.
    *
diff --git a/modules/salesforce_pull/tests/src/Functional/PullQueueTest.php b/modules/salesforce_pull/tests/src/Functional/PullQueueTest.php
index 9fdd27c1..4e36948f 100644
--- a/modules/salesforce_pull/tests/src/Functional/PullQueueTest.php
+++ b/modules/salesforce_pull/tests/src/Functional/PullQueueTest.php
@@ -14,6 +14,13 @@ use Drupal\Tests\BrowserTestBase;
  */
 class PullQueueTest extends BrowserTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Required modules.
    *
diff --git a/modules/salesforce_pull/tests/src/Unit/DeleteHandlerTest.php b/modules/salesforce_pull/tests/src/Unit/DeleteHandlerTest.php
index 54fbbd37..7465e17e 100644
--- a/modules/salesforce_pull/tests/src/Unit/DeleteHandlerTest.php
+++ b/modules/salesforce_pull/tests/src/Unit/DeleteHandlerTest.php
@@ -54,11 +54,12 @@ class DeleteHandlerTest extends UnitTestCase {
     $this->sfapi = $prophecy->reveal();
 
     // Mock an atribtary Drupal entity.
-    $prophecy = $this->prophesize(User::CLASS);
-    $prophecy->delete()->willReturn(TRUE);
-    $prophecy->id()->willReturn(1);
-    $prophecy->label()->willReturn('foo');
-    $this->entity = $prophecy->reveal();
+    $this->entity = $this->getMockBuilder(User::CLASS)
+      ->disableOriginalConstructor()
+      ->getMock();
+    $this->entity->expects($this->any())->method('delete')->willReturn(TRUE);
+    $this->entity->expects($this->any())->method('id')->willReturn(1);
+    $this->entity->expects($this->any())->method('label')->willReturn('foo');
 
     $this->mapping = $this->getMockBuilder(SalesforceMappingInterface::CLASS)->getMock();
     $this->mapping->expects($this->any())
diff --git a/modules/salesforce_push/tests/src/Functional/PushQueueTest.php b/modules/salesforce_push/tests/src/Functional/PushQueueTest.php
index cf6d5c84..76bce7df 100644
--- a/modules/salesforce_push/tests/src/Functional/PushQueueTest.php
+++ b/modules/salesforce_push/tests/src/Functional/PushQueueTest.php
@@ -13,6 +13,13 @@ use Drupal\Tests\BrowserTestBase;
  */
 class PushQueueTest extends BrowserTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Required modules.
    *
diff --git a/tests/src/Functional/StatusPageTest.php b/tests/src/Functional/StatusPageTest.php
index 3f6969e9..fe366e31 100644
--- a/tests/src/Functional/StatusPageTest.php
+++ b/tests/src/Functional/StatusPageTest.php
@@ -12,6 +12,13 @@ use Drupal\Tests\BrowserTestBase;
  */
 class StatusPageTest extends BrowserTestBase {
 
+  /**
+   * Default theme required for D9.
+   *
+   * @var string
+   */
+  protected $defaultTheme  = 'stark';
+
   /**
    * Required modules.
    *
-- 
GitLab