Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / paragraphs / tests / src / FunctionalJavascript / LoginAdminTrait.php
diff --git a/web/modules/contrib/paragraphs/tests/src/FunctionalJavascript/LoginAdminTrait.php b/web/modules/contrib/paragraphs/tests/src/FunctionalJavascript/LoginAdminTrait.php
new file mode 100644 (file)
index 0000000..baf3032
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+namespace Drupal\Tests\paragraphs\FunctionalJavascript;
+
+/**
+ * Test trait for logging admin in JS tests.
+ */
+trait LoginAdminTrait {
+
+  /**
+   * Creates an user with admin permissions and log in.
+   *
+   * @param array $additional_permissions
+   *   Additional permissions that will be granted to admin user.
+   * @param bool $reset_permissions
+   *   Flag to determine if default admin permissions will be replaced by
+   *   $additional_permissions.
+   *
+   * @return object
+   *   Newly created and logged in user object.
+   */
+  public function loginAsAdmin($additional_permissions = [], $reset_permissions = FALSE) {
+
+    $permissions = [
+      'administer content types',
+      'administer node fields',
+      'administer paragraphs types',
+      'administer node form display',
+      'administer paragraph fields',
+      'administer paragraph form display',
+    ];
+
+    if ($reset_permissions) {
+      $permissions = $additional_permissions;
+    }
+    elseif (!empty($additional_permissions)) {
+      $permissions = array_merge($permissions, $additional_permissions);
+    }
+
+    $this->admin_user = $this->drupalCreateUser($permissions);
+    $this->drupalLogin($this->admin_user);
+    return $this->admin_user;
+  }
+}