Drupal modules for browsing and managing Fedora-based digital repositories.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

60 lines
1.7 KiB

<?php
namespace Drupal\Tests\islandora\Functional;
/**
* Tests the ManageMembersController.
*
* @group islandora
*/
class AddChildTest extends IslandoraFunctionalTestBase {
/**
* {@inheritdoc}
*/
public function setUp() {
parent::setUp();
$this->parent =
$this->collectionTerm = $this->container->get('entity_type.manager')->getStorage('taxonomy_term')->create([
'name' => 'Collection',
'vid' => $this->testVocabulary->id(),
'field_external_uri' => [['uri' => "http://purl.org/dc/dcmitype/Collection"]],
]);
$this->collectionTerm->save();
}
/**
* @covers \Drupal\islandora\Controller\ManageMembersController::addToNodePage
* @covers \Drupal\islandora\Controller\ManageMediaController::access
* @covers \Drupal\islandora\IslandoraUtils::isIslandoraType
*/
public function testAddChild() {
$account = $this->drupalCreateUser([
'bypass node access',
]);
$this->drupalLogin($account);
$parent = $this->container->get('entity_type.manager')->getStorage('node')->create([
'type' => 'test_type',
'title' => 'Parent',
]);
$parent->save();
// Visit the add member page.
$this->drupalGet("/node/{$parent->id()}/members/add");
// Assert that test_type is on the list.
$this->assertSession()->pageTextContains($this->testType->label());
$this->clickLink($this->testType->label());
$url = $this->getUrl();
// Assert that the link creates the correct prepopulate query param.
$substring = 'node/add/test_type?edit%5Bfield_member_of%5D%5Bwidget%5D%5B0%5D%5Btarget_id%5D=1';
$this->assertTrue(
strpos($url, $substring) !== FALSE,
"Malformed URL, could not find $substring in $url."
);
}
}