xmlsitemap_engines.test 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * @file
  4. * Tests for the xmlsitemap_engines module.
  5. */
  6. class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
  7. protected $submit_url;
  8. public static function getInfo() {
  9. return array(
  10. 'name' => 'XML sitemap engines functional tests',
  11. 'description' => 'Functional tests for the XML sitemap engines module.',
  12. 'group' => 'XML sitemap',
  13. );
  14. }
  15. function setUp($modules = array()) {
  16. $modules[] = 'xmlsitemap_engines';
  17. $modules[] = 'xmlsitemap_engines_test';
  18. parent::setUp($modules);
  19. $this->admin_user = $this->drupalCreateUser(array('access content', 'administer xmlsitemap'));
  20. $this->drupalLogin($this->admin_user);
  21. // @todo For some reason the test client does not have clean URLs while
  22. // the test runner does, so it causes mismatches in watchdog assertions
  23. // later.
  24. variable_set('clean_url', 0);
  25. $this->submit_url = url('ping', array('absolute' => TRUE, 'query' => array('sitemap' => ''))) . '[sitemap]';
  26. }
  27. function submitEngines() {
  28. variable_set('xmlsitemap_engines_submit_last', REQUEST_TIME - 10000);
  29. variable_set('xmlsitemap_generated_last', REQUEST_TIME - 100);
  30. variable_set('xmlsitemap_engines_minimum_lifetime', 0);
  31. xmlsitemap_engines_cron();
  32. $this->assertTrue(variable_get('xmlsitemap_engines_submit_last', 0) > (REQUEST_TIME - 100), 'Submitted the sitemaps to search engines.');
  33. }
  34. function testPrepareURL() {
  35. $sitemap = 'http://example.com/sitemap.xml';
  36. $input = 'http://example.com/ping?sitemap=[sitemap]&foo=bar';
  37. $output = 'http://example.com/ping?sitemap=http://example.com/sitemap.xml&foo=bar';
  38. $this->assertEqual(xmlsitemap_engines_prepare_url($input, $sitemap), $output);
  39. }
  40. function testSubmitSitemaps() {
  41. $sitemaps = array();
  42. $sitemap = new stdClass();
  43. $sitemap->uri = array(
  44. 'path' => 'http://example.com/sitemap.xml',
  45. 'options' => array(),
  46. );
  47. $sitemaps[] = $sitemap;
  48. $sitemap = new stdClass();
  49. $sitemap->uri = array(
  50. 'path' => 'http://example.com/sitemap-2.xml',
  51. 'options' => array(),
  52. );
  53. $sitemaps[] = $sitemap;
  54. xmlsitemap_engines_submit_sitemaps($this->submit_url, $sitemaps);
  55. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => 'http://example.com/sitemap.xml')));
  56. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => 'http://example.com/sitemap-2.xml')));
  57. }
  58. function testPing() {
  59. $edit = array('xmlsitemap_engines_engines[simpletest]' => TRUE);
  60. $this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
  61. $this->assertText(t('The configuration options have been saved.'));
  62. $this->submitEngines();
  63. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.'));
  64. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.'));
  65. }
  66. function testCustomURL() {
  67. $edit = array('xmlsitemap_engines_custom_urls' => 'an-invalid-url');
  68. $this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
  69. $this->assertText('Invalid URL an-invalid-url.');
  70. $this->assertNoText('The configuration options have been saved.');
  71. $url = url('ping', array('absolute' => TRUE));
  72. $edit = array('xmlsitemap_engines_custom_urls' => $url);
  73. $this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
  74. $this->assertText(t('The configuration options have been saved.'));
  75. $this->submitEngines();
  76. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.', 'variables' => array('%url' => $url, '@code' => '404')));
  77. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'No valid sitemap parameter provided.'));
  78. $this->assertWatchdogMessage(array('type' => 'page not found', 'message' => 'ping'));
  79. $edit = array('xmlsitemap_engines_custom_urls' => $this->submit_url);
  80. $this->drupalPost('admin/config/search/xmlsitemap/engines', $edit, t('Save configuration'));
  81. $this->assertText(t('The configuration options have been saved.'));
  82. $this->submitEngines();
  83. $url = xmlsitemap_engines_prepare_url($this->submit_url, url('sitemap.xml', array('absolute' => TRUE)));
  84. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Submitted the sitemap to %url and received response @code.', 'variables' => array('%url' => $url, '@code' => '200')));
  85. $this->assertWatchdogMessage(array('type' => 'xmlsitemap', 'message' => 'Recieved ping for @sitemap.', 'variables' => array('@sitemap' => url('sitemap.xml', array('absolute' => TRUE)))));
  86. }
  87. }