/** * Tests for xmlsitemap_get_chunk_count(). */ public function testGetChunkCount() { // Set a low chunk size for testing. $this->config->set('chunk_size', 4)->save(); // Make the total number of links just equal to the chunk size. $count = db_query("SELECT COUNT(id) FROM {xmlsitemap}")->fetchField(); for ($i = $count; $i < 4; $i++) { $this->addSitemapLink(); $this->assertEqual(xmlsitemap_get_chunk_count(TRUE), 1); } $this->assertEqual(db_query("SELECT COUNT(id) FROM {xmlsitemap}")->fetchField(), 4); // Add a disabled link, should not change the chunk count. $this->addSitemapLink(array('status' => FALSE)); $this->assertEqual(xmlsitemap_get_chunk_count(TRUE), 1); // Add a visible link, should finally bump up the chunk count. $this->addSitemapLink(); $this->assertEqual(xmlsitemap_get_chunk_count(TRUE), 2); // Change all links to disabled. The chunk count should be 1 not 0. db_query("UPDATE {xmlsitemap} SET status = 0"); $this->assertEqual(xmlsitemap_get_chunk_count(TRUE), 1); $this->assertEqual(xmlsitemap_get_link_count(), 0); // Delete all links. The chunk count should be 1 not 0. db_query("DELETE FROM {xmlsitemap}"); $this->assertEqual(db_query("SELECT COUNT(id) FROM {xmlsitemap}")->fetchField(), 0); $this->assertEqual(xmlsitemap_get_chunk_count(TRUE), 1); }
/** * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { // Check that the chunk size will not create more than 1000 chunks. $chunk_size = $form_state->getValue('chunk_size'); if ($chunk_size != 'auto' && $chunk_size != 50000 && xmlsitemap_get_link_count() / $chunk_size > 1000) { $form_state->setErrorByName('chunk_size', t('The sitemap page link count of @size will create more than 1,000 sitemap pages. Please increase the link count.', array('@size' => $chunk_size))); } $base_url = $form_state->getValue('xmlsitemap_base_url'); $base_url = rtrim($base_url, '/'); $form_state->setValue('xmlsitemap_base_url', $base_url); if ($base_url != '' && !UrlHelper::isValid($base_url, TRUE)) { $form_state->setErrorByName('xmlsitemap_base_url', t('Invalid base URL.')); } parent::validateForm($form, $form_state); }