/** * Test if aliases are (not) generated with enabled/disabled patterns. */ function testPatternStatus() { // Create a node to get an alias for. $title = 'Pattern enabled'; $alias = '/content/pattern-enabled'; $node1 = $this->drupalCreateNode(['title' => $title, 'type' => 'page']); $this->assertEntityAlias($node1, $alias); // Disable the pattern, save the node again and make sure the alias is still // working. $this->nodePattern->setStatus(FALSE)->save(); $node1->save(); $this->assertEntityAlias($node1, $alias); // Create a new node with disabled pattern and make sure there is no new // alias created. $title = 'Pattern disabled'; $node2 = $this->drupalCreateNode(['title' => $title, 'type' => 'page']); $this->assertNoEntityAlias($node2); }
function testNoExistingPathAliases() { $this->config('pathauto.settings')->set('punctuation.period', PathautoGeneratorInterface::PUNCTUATION_DO_NOTHING)->save(); $this->nodePattern->setPattern('[node:title]')->save(); // Check that Pathauto does not create an alias of '/admin'. $node = $this->drupalCreateNode(array('title' => 'Admin', 'type' => 'page')); $this->assertEntityAlias($node, '/admin-0'); // Check that Pathauto does not create an alias of '/modules'. $node->setTitle('Modules'); $node->save(); $this->assertEntityAlias($node, '/modules-0'); // Check that Pathauto does not create an alias of '/index.php'. $node->setTitle('index.php'); $node->save(); $this->assertEntityAlias($node, '/index.php-0'); // Check that a safe value gets an automatic alias. This is also a control // to ensure the above tests work properly. $node->setTitle('Safe value'); $node->save(); $this->assertEntityAlias($node, '/safe-value'); }
/** * Add a bundle condition to a pathauto pattern. * * @param \Drupal\pathauto\PathautoPatternInterface $pattern * The pattern. * @param string $entity_type * The entity type ID. * @param string $bundle * The bundle */ protected function addBundleCondition(PathautoPatternInterface $pattern, $entity_type, $bundle) { $pattern->addSelectionCondition(['id' => 'entity_bundle:' . $entity_type, 'bundles' => [$bundle => $bundle], 'negate' => FALSE, 'context_mapping' => [$entity_type => $entity_type]]); }
/** * {@inheritDoc} */ public function save(array $form, FormStateInterface $form_state) { parent::save($form, $form_state); drupal_set_message($this->t('Pattern @label saved.', ['@label' => $this->entity->label()])); $form_state->setRedirectUrl($this->entity->toUrl('collection')); }