/** * Check if custom urls are functional. */ public function testCustomURL() { $edit = array('custom_urls' => 'an-invalid-url'); $this->drupalPostForm('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration')); $this->assertText('Invalid URL an-invalid-url.'); $this->assertNoText('The configuration options have been saved.'); $url = Url::fromUri('base://ping', array('absolute' => TRUE)); $edit = array('custom_urls' => $url); $this->drupalPostForm('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration')); $this->assertText(t('The configuration options have been saved.')); $edit = array('custom_urls' => $this->submit_url); $this->drupalPostForm('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration')); $this->assertText(t('The configuration options have been saved.')); $this->submitEngines(); $url = xmlsitemap_engines_prepare_url($this->submit_url, Url::fromRoute('xmlsitemap.sitemap_xml', [], array('absolute' => TRUE))); $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.', 'variables' => array('%url' => $url, '@code' => '200'))); $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => Url::fromRoute('xmlsitemap.sitemap_xml', [], array('absolute' => TRUE))))); }
/** * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { $custom_urls = $form_state->getValue('custom_urls'); $custom_urls = preg_split('/[\\r\\n]+/', $custom_urls, -1, PREG_SPLIT_NO_EMPTY); foreach ($custom_urls as $custom_url) { $url = xmlsitemap_engines_prepare_url($custom_url, ''); if (!UrlHelper::isValid($url, TRUE)) { $form_state->setErrorByName($custom_url, t('Invalid URL %url.', array('%url' => $custom_url))); } } $custom_urls = implode("\n", $custom_urls); $form_state->setValue('custom_urls', $custom_ruls); parent::validateForm($form, $form_state); }