/**
  * Upgrade an individual media entity.
  *
  * @param \Drupal\media_entity\Entity\Media $media_entity
  *   The media entity.
  * @param array $type_configuration
  *   The media type configuration.
  */
 protected function upgradeEntity(Media $media_entity, $type_configuration)
 {
     // Copy the existing media bundle field value to the new field value.
     $existing_url_field = $media_entity->{$type_configuration['source_field']}->getValue();
     $existing_url = isset($existing_url_field[0]['uri']) ? $existing_url_field[0]['uri'] : $existing_url_field[0]['value'];
     $media_entity->{VideoEmbedField::VIDEO_EMBED_FIELD_DEFAULT_NAME} = [['value' => $existing_url]];
     $media_entity->save();
 }
 /**
  * Test Focal Point change.
  */
 public function testFocalPointChange()
 {
     // Media ID used for testing.
     $mediaId = 9;
     $page = $this->getSession()->getPage();
     $this->drupalGet("media/{$mediaId}/edit");
     $this->createScreenshot($this->getScreenshotFolder() . '/MediaImageModifyTest_BeforeFocalPointChange_' . date('Ymd_His') . '.png');
     $this->getSession()->getDriver()->executeScript('var e = new jQuery.Event("click"); e.offsetX = 48; e.offsetY = 15; jQuery(".focal-point-wrapper img").trigger(e);');
     $this->createScreenshot($this->getScreenshotFolder() . '/MediaImageModifyTest_AfterFocalPointChange_' . date('Ymd_His') . '.png');
     $page->pressButton('Save and keep publish');
     $media = Media::load($mediaId);
     $img = $media->get('field_image')->target_id;
     $file = File::load($img);
     $path = $file->getFileUri();
     $derivativeUri = ImageStyle::load('teaser')->buildUri($path);
     ImageStyle::load('teaser')->createDerivative($path, $derivativeUri);
     $image1 = new Imagick($derivativeUri);
     $image2 = new Imagick(dirname(__FILE__) . '/../../fixtures/reference.jpg');
     $result = $image1->compareImages($image2, \Imagick::METRIC_MEANSQUAREERROR);
     $this->assertTrue($result[1] < 0.01, 'Images are identical');
     $image1->clear();
     $image2->clear();
 }
示例#3
0
 /**
  * Runs basic tests for media_access function.
  */
 public function testMediaAccess()
 {
     // Create users and roles.
     $admin = $this->drupalCreateUser(['administer media'], 'editor');
     $user = $this->drupalCreateUser([], 'user');
     $permissions = ['view media', 'create media', 'update media', 'update any media', 'delete media', 'delete any media'];
     $roles = [];
     foreach ($permissions as $permission) {
         $roles[$permission] = $this->createRole([$permission]);
     }
     // Create media.
     $media = Media::create(['bundle' => $this->testBundle->id(), 'name' => 'Unnamed']);
     $media->save();
     $user_media = Media::create(['bundle' => $this->testBundle->id(), 'name' => 'Unnamed', 'uid' => $user->id()]);
     $user_media->save();
     // Test 'administer media' permission.
     $this->drupalLogin($admin);
     $this->drupalGet('media/' . $user_media->id());
     $this->assertResponse(200);
     $this->drupalGet('media/' . $user_media->id() . '/edit');
     $this->assertResponse(200);
     $this->drupalGet('media/' . $user_media->id() . '/delete');
     $this->assertResponse(200);
     // Test 'view media' permission.
     $this->drupalLogin($user);
     $this->drupalGet('media/' . $media->id());
     $this->assertResponse(403);
     $user->addRole($roles['view media']);
     $user->save();
     $this->drupalGet('media/' . $media->id());
     $this->assertResponse(200);
     // Test 'create media' permissions.
     $this->drupalLogin($user);
     $this->drupalGet('media/add/' . $this->testBundle->id());
     $this->assertResponse(403);
     $user->addRole($roles['create media']);
     $user->save();
     $this->drupalGet('media/add/' . $this->testBundle->id());
     $this->assertResponse(200);
     // Test 'update media' and 'delete media' permissions.
     $this->drupalGet('media/' . $user_media->id() . '/edit');
     $this->assertResponse(403);
     $this->drupalGet('media/' . $user_media->id() . '/delete');
     $this->assertResponse(403);
     $user->addRole($roles['update media']);
     $user->addRole($roles['delete media']);
     $user->save();
     $this->drupalGet('media/' . $user_media->id() . '/edit');
     $this->assertResponse(200);
     $this->drupalGet('media/' . $user_media->id() . '/delete');
     $this->assertResponse(200);
     // Test 'update any media' and 'delete any media' permissions.
     $this->drupalGet('media/' . $media->id() . '/edit');
     $this->assertResponse(403);
     $this->drupalGet('media/' . $media->id() . '/delete');
     $this->assertResponse(403);
     $user->addRole($roles['update any media']);
     $user->addRole($roles['delete any media']);
     $user->save();
     $this->drupalGet('media/' . $media->id() . '/edit');
     $this->assertResponse(200);
     $this->drupalGet('media/' . $media->id() . '/delete');
     $this->assertResponse(200);
 }
 /**
  * Test the fields provided by the integration.
  *
  * @dataProvider providedFieldsTestCases
  */
 public function testProvidedFields($input, $field, $expected)
 {
     $entity = Media::create(['bundle' => 'video', VideoEmbedField::VIDEO_EMBED_FIELD_DEFAULT_NAME => [['value' => $input]]]);
     $actual = $this->mediaVideoPlugin->getField($entity, $field);
     $this->assertEquals($expected, $actual);
 }
示例#5
0
 /**
  * Tests the views wizards provided by the media module.
  */
 public function testMediaViewsWizard()
 {
     $data = ['name' => $this->randomMachineName(), 'bundle' => $this->testBundle->id(), 'type' => 'Unknown', 'uid' => $this->adminUser->id(), 'langcode' => \Drupal::languageManager()->getDefaultLanguage()->getId(), 'status' => Media::PUBLISHED];
     $media = Media::create($data);
     $media->save();
     // Test the Media wizard.
     $this->drupalPostForm('admin/structure/views/add', ['label' => 'media view', 'id' => 'media_test', 'show[wizard_key]' => 'media', 'page[create]' => 1, 'page[title]' => 'media_test', 'page[path]' => 'media_test'], t('Save and edit'));
     $this->drupalGet('media_test');
     $this->assertText($data['name']);
     user_role_revoke_permissions('anonymous', ['access content']);
     $this->drupalLogout();
     $this->drupalGet('media_test');
     $this->assertResponse(403);
     $this->drupalLogin($this->adminUser);
     // Test the MediaRevision wizard.
     $this->drupalPostForm('admin/structure/views/add', ['label' => 'media revision view', 'id' => 'media_revision', 'show[wizard_key]' => 'media_revision', 'page[create]' => 1, 'page[title]' => 'media_revision', 'page[path]' => 'media_revision'], t('Save and edit'));
     $this->drupalGet('media_revision');
     // Check only for the label of the changed field as we want to only test
     // if the field is present and not its value.
     $this->assertText($data['name']);
     user_role_revoke_permissions('anonymous', ['view revisions']);
     $this->drupalLogout();
     $this->drupalGet('media_revision');
     $this->assertResponse(403);
 }