/**
  * {@inheritdoc}
  */
 public function submitForm(array &$form, FormStateInterface $form_state)
 {
     $link = $form_state->getValues();
     $this->linkStorage->save($link);
     drupal_set_message(t('The custom link for %loc was saved.', array('%loc' => $link['loc'])));
     $form_state->setRedirect('xmlsitemap_custom.list');
 }
 /**
  * Test adding files as custom links.
  */
 public function testCustomFileLinks()
 {
     // Test an invalid file.
     $edit['loc'] = $this->randomMachineName();
     $this->drupalPostForm('admin/config/search/xmlsitemap/custom/add', $edit, t('Save'));
     $this->assertText(t('The custom link @link is either invalid or it cannot be accessed by anonymous users.', array('@link' => $edit['loc'])));
     $this->assertNoSitemapLink(array('type' => 'custom', 'loc' => $edit['loc']));
     // Test an unaccessible file .
     $edit['loc'] = '.htaccess';
     $this->drupalPostForm('admin/config/search/xmlsitemap/custom/add', $edit, t('Save'));
     $this->assertText(t('The custom link @link is either invalid or it cannot be accessed by anonymous users.', array('@link' => $edit['loc'])));
     $this->assertNoSitemapLink(array('type' => 'custom', 'loc' => $edit['loc']));
     // Test a valid file.
     $edit['loc'] = 'core/misc/drupal.js';
     $this->drupalPostForm('admin/config/search/xmlsitemap/custom/add', $edit, t('Save'));
     $this->assertText(t('The custom link for @link was saved.', array('@link' => $edit['loc'])));
     $links = $this->linkStorage->loadMultiple(array('type' => 'custom', 'loc' => $edit['loc']));
     $this->assertEqual(count($links), 1, t('Custom link saved in the database.'));
     //Test a duplicate url.
     $edit['loc'] = 'core/misc/drupal.js';
     $this->drupalPostForm('admin/config/search/xmlsitemap/custom/add', $edit, t('Save'));
     $this->assertText(t('There is already an existing link in the sitemap with the path @link.', array('@link' => $edit['loc'])));
     $links = $this->linkStorage->loadMultiple(array('type' => 'custom', 'loc' => $edit['loc']));
     $this->assertEqual(count($links), 1, t('Custom link saved in the database.'));
 }
コード例 #3
0
 protected function addSitemapLink(array $link = array())
 {
     $last_id =& drupal_static(__FUNCTION__, 1);
     $link += array('type' => 'testing', 'id' => $last_id, 'access' => 1, 'status' => 1);
     // Make the default path easier to read than a random string.
     $link += array('loc' => $link['type'] . '-' . $link['id']);
     $last_id = max($last_id, $link['id']) + 1;
     $this->linkStorage->save($link);
     return $link;
 }