Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / media / tests / src / Functional / MediaUiFunctionalTest.php
index c6c1c956be1796fe804760df14cc8023f15521b6..fe39fd828ebfe6d17d90c1a3b40d3a6ae0d6cedd 100644 (file)
@@ -43,8 +43,7 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $page = $session->getPage();
     $assert_session = $this->assertSession();
 
-    $media_type = $this->createMediaType([
-      'new_revision' => FALSE,
+    $media_type = $this->createMediaType('test', [
       'queue_thumbnail_downloads' => FALSE,
     ]);
 
@@ -61,14 +60,18 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $source_field = $this->randomString();
     $page->fillField('field_media_test[0][value]', $source_field);
     $page->pressButton('Save');
-    $media_id = $this->container->get('entity.query')->get('media')->execute();
+    $media_id = $this->container->get('entity_type.manager')
+      ->getStorage('media')
+      ->getQuery()
+      ->execute();
     $media_id = reset($media_id);
     /** @var \Drupal\media\MediaInterface $media */
     $media = $this->container->get('entity_type.manager')
       ->getStorage('media')
       ->loadUnchanged($media_id);
-    $this->assertEquals($media->getRevisionLogMessage(), $revision_log_message);
-    $this->assertEquals($media->getName(), $media_name);
+    $this->assertSame($media->getRevisionLogMessage(), $revision_log_message);
+    $this->assertSame($media->getName(), $media_name);
+    $this->drupalGet('media/' . $media_id);
     $assert_session->titleEquals($media_name . ' | Drupal');
 
     // Tests media edit form.
@@ -84,7 +87,8 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $media = $this->container->get('entity_type.manager')
       ->getStorage('media')
       ->loadUnchanged($media_id);
-    $this->assertEquals($media->getName(), $media_name2);
+    $this->assertSame($media->getName(), $media_name2);
+    $this->drupalGet('media/' . $media_id);
     $assert_session->titleEquals($media_name2 . ' | Drupal');
 
     // Test that there is no empty vertical tabs element, if the container is
@@ -111,12 +115,13 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $page->fillField('name[0][value]', $media_name);
     $page->fillField('revision_log_message[0][value]', $revision_log_message);
     $page->pressButton('Save');
+    $this->drupalGet('media/' . $media_id);
     $assert_session->titleEquals($media_name . ' | Drupal');
     /** @var \Drupal\media\MediaInterface $media */
     $media = $this->container->get('entity_type.manager')
       ->getStorage('media')
       ->loadUnchanged($media_id);
-    $this->assertEquals($media->getRevisionLogMessage(), $revision_log_message);
+    $this->assertSame($media->getRevisionLogMessage(), $revision_log_message);
     $this->assertNotEquals($previous_revision_id, $media->getRevisionId());
 
     // Test the status checkbox.
@@ -148,10 +153,10 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $assert_session = $this->assertSession();
 
     // Tests and creates the first media type.
-    $first_media_type = $this->createMediaType(['description' => $this->randomMachineName(32)]);
+    $first_media_type = $this->createMediaType('test', ['description' => $this->randomMachineName()]);
 
     // Test and create a second media type.
-    $second_media_type = $this->createMediaType(['description' => $this->randomMachineName(32)]);
+    $second_media_type = $this->createMediaType('test', ['description' => $this->randomMachineName()]);
 
     // Test if media/add displays two media type options.
     $this->drupalGet('media/add');
@@ -173,6 +178,7 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $this->drupalGet('media/' . $first_media_item->id());
     $assert_session->statusCodeEquals(200);
     $assert_session->pageTextContains($first_media_item->getName());
+    $assert_session->elementsCount('css', '.media--view-mode-full', 1);
 
     // Go to second media item.
     $this->drupalGet('media/' . $second_media_item->id());
@@ -280,7 +286,10 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
         $create_media_types[] = "media_type_$id";
         $permissions[] = "create media_type_$id media";
       }
-      $this->createMediaType(['bundle' => "media_type_$id"]);
+      $this->createMediaType('test', [
+        'id' => "media_type_$id",
+        'label' => "media_type_$id",
+      ]);
       $media_types["media_type_$id"] = "media_type_$id";
     }
 
@@ -427,6 +436,49 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     }
   }
 
+  /**
+   * Tests the redirect URL after creating a media item.
+   */
+  public function testMediaCreateRedirect() {
+    $session = $this->getSession();
+    $page = $session->getPage();
+    $assert_session = $this->assertSession();
+
+    $this->createMediaType('test', [
+      'queue_thumbnail_downloads' => FALSE,
+    ]);
+
+    // Test a redirect to the media canonical URL for a user without the 'access
+    // media overview' permission.
+    $this->drupalLogin($this->drupalCreateUser([
+      'view media',
+      'create media',
+    ]));
+    $this->drupalGet('media/add');
+    $page->fillField('name[0][value]', $this->randomMachineName());
+    $page->fillField('field_media_test[0][value]', $this->randomString());
+    $page->pressButton('Save');
+    $media_id = $this->container->get('entity_type.manager')
+      ->getStorage('media')
+      ->getQuery()
+      ->execute();
+    $media_id = reset($media_id);
+    $assert_session->addressEquals('media/' . $media_id);
+
+    // Test a redirect to the media overview for a user with the 'access media
+    // overview' permission.
+    $this->drupalLogin($this->drupalCreateUser([
+      'view media',
+      'create media',
+      'access media overview',
+    ]));
+    $this->drupalGet('media/add');
+    $page->fillField('name[0][value]', $this->randomMachineName());
+    $page->fillField('field_media_test[0][value]', $this->randomString());
+    $page->pressButton('Save');
+    $assert_session->addressEquals('admin/content/media');
+  }
+
   /**
    * Asserts that the given texts are present exactly once.
    *
@@ -480,7 +532,7 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
 
     $this->assertNotEmpty($link);
     foreach ($attributes as $attribute => $value) {
-      $this->assertEquals($link->getAttribute($attribute), $value);
+      $this->assertSame($link->getAttribute($attribute), $value);
     }
   }
 
@@ -509,7 +561,7 @@ class MediaUiFunctionalTest extends MediaFunctionalTestBase {
     $this->container->get('module_installer')->uninstall(['views']);
 
     // Create a media type and media item.
-    $media_type = $this->createMediaType();
+    $media_type = $this->createMediaType('test');
     $media = $media_storage->create([
       'bundle' => $media_type->id(),
       'name' => 'Unnamed',