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
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." |
|
); |
|
} |
|
|
|
}
|
|
|