public function UploadBrowseAliasPathautoTest::testUploadAndBrowsingAlias in Mini site 8
Tests ZIP file upload and browsing minisite pages with Pathauto alias.
This is a simple UI test using archive fixture in default format. If this test does not pass - the module definitely does not work as required.
File
- tests/
src/ Functional/ UploadBrowseAliasPathautoTest.php, line 41
Class
- UploadBrowseAliasPathautoTest
- Tests the minisite file upload and browsing with alias set in pathauto.
Namespace
Drupal\Tests\minisite\FunctionalCode
public function testUploadAndBrowsingAlias() {
// Create test values.
$test_archive_assets = array_keys($this
->getTestFilesStubValid());
$node_title = $this
->randomMachineName();
$minisite_description = 'D' . $this
->randomMachineName();
// Create pathauto pattern.
$this
->createPattern('node', mb_strtolower($this
->randomMachineName()) . '/' . '[node:title]');
// Create a field and a node with Pathauto enabled.
$edit = [
'path[0][pathauto]' => TRUE,
];
$field_name = $this
->createFieldAndNode($this->contentType, $node_title, $minisite_description, $edit);
$node = $this
->drupalGetNodeByTitle($node_title);
$nid = $node
->id();
// Assert that an alias was created for a node.
$this
->assertEntityAliasExists($node);
// Assert that minisite archive file was uploaded.
$this
->assertMinisiteUploaded($node, $field_name, $test_archive_assets);
// Browse fixture minisite using Pathauto-generated alias.
$node_alias = $node->path
->get(0)
->getValue()['alias'];
$this
->browseFixtureMinisiteAliased($node_alias, $minisite_description, $test_archive_assets);
// Disable pathauto alias generation, manually update node's alias and
// assert that update has been applied to the paths of the minisite.
$node_alias_updated = '/a' . $this
->randomMachineName();
$edit = [
'path[0][pathauto]' => FALSE,
'path[0][alias]' => $node_alias_updated,
];
$this
->drupalPostForm("node/{$nid}/edit", $edit, $this
->t('Save'));
// Browse fixture minisite using updated manual alias.
$this
->browseFixtureMinisiteAliased($node_alias_updated, $minisite_description, $test_archive_assets);
// Enable pathauto and assert that re-generated path alias has been
// applied.
$edit = [
'path[0][pathauto]' => TRUE,
];
$this
->drupalPostForm("node/{$nid}/edit", $edit, $this
->t('Save'));
$node = Node::load($nid);
$this
->assertEntityAliasExists($node);
// Browse fixture minisite using updated Pathauto-generated alias.
$this
->browseFixtureMinisiteAliased($node_alias, $minisite_description, $test_archive_assets);
// Delete node.
$this
->drupalPostForm("node/{$nid}/delete", [], $this
->t('Delete'));
$this
->assertResponse(200);
// Assert that Minisite assets were removed.
$this
->assertMinisiteRemoved($node, $field_name, $test_archive_assets);
}