/** * 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); }
/** * 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); }
/** * 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); }