You are here

xmlsitemap_engines.test in XML sitemap 6.2

Same filename and directory in other branches
  1. 7.2 xmlsitemap_engines/tests/xmlsitemap_engines.test

Tests for the xmlsitemap_engines module.

File

xmlsitemap_engines/tests/xmlsitemap_engines.test
View source
<?php

/**
 * @file
 * Tests for the xmlsitemap_engines module.
 */
class XMLSitemapEnginesFunctionalTest extends XMLSitemapTestHelper {
  protected $submit_url;
  public static function getInfo() {
    return array(
      'name' => 'XML sitemap engines functional tests',
      'description' => 'Functional tests for the XML sitemap engines module.',
      'group' => 'XML sitemap',
    );
  }
  function setUp($modules = array()) {
    $modules[] = 'xmlsitemap_engines';
    $modules[] = 'xmlsitemap_engines_test';
    parent::setUp($modules);
    $this->admin_user = $this
      ->drupalCreateUser(array(
      'access content',
      'administer xmlsitemap',
    ));
    $this
      ->drupalLogin($this->admin_user);
    $this->submit_url = url('ping', array(
      'absolute' => TRUE,
      'query' => array(
        'sitemap' => '',
      ),
    )) . '[sitemap]';
  }
  function submitEngines() {
    variable_set('xmlsitemap_engines_submit_last', REQUEST_TIME - 10000);
    variable_set('xmlsitemap_generated_last', REQUEST_TIME - 100);
    variable_set('xmlsitemap_engines_minimum_lifetime', 0);
    xmlsitemap_engines_cron();
    $this
      ->assertTrue(variable_get('xmlsitemap_engines_submit_last', 0) > REQUEST_TIME - 100, 'Submitted the sitemaps to search engines.');
  }
  function testPrepareURL() {
    $sitemap = 'http://example.com/sitemap.xml';
    $input = 'http://example.com/ping?sitemap=[sitemap]&foo=bar';
    $output = 'http://example.com/ping?sitemap=http://example.com/sitemap.xml&foo=bar';
    $this
      ->assertEqual(xmlsitemap_engines_prepare_url($input, $sitemap), $output);
  }
  function testSubmitSitemaps() {
    $sitemaps = array();
    $sitemap = new stdClass();
    $sitemap->uri = array(
      'path' => 'http://example.com/sitemap.xml',
      'options' => array(),
    );
    $sitemaps[] = $sitemap;
    $sitemap = new stdClass();
    $sitemap->uri = array(
      'path' => 'http://example.com/sitemap-2.xml',
      'options' => array(),
    );
    $sitemaps[] = $sitemap;
    xmlsitemap_engines_submit_sitemaps($this->submit_url, $sitemaps);
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'Recieved ping for @sitemap.',
      'variables' => array(
        '@sitemap' => 'http://example.com/sitemap.xml',
      ),
    ));
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'Recieved ping for @sitemap.',
      'variables' => array(
        '@sitemap' => 'http://example.com/sitemap-2.xml',
      ),
    ));
  }
  function testPing() {
    $edit = array(
      'xmlsitemap_engines_engines[simpletest]' => TRUE,
    );
    $this
      ->drupalPost('admin/settings/xmlsitemap/engines', $edit, t('Save configuration'));
    $this
      ->assertText(t('The configuration options have been saved.'));
    $this
      ->submitEngines();
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'Submitted the sitemap to %url and received response @code.',
    ));
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'Recieved ping for @sitemap.',
    ));
  }
  function testCustomURL() {
    $edit = array(
      'xmlsitemap_engines_custom_urls' => 'an-invalid-url',
    );
    $this
      ->drupalPost('admin/settings/xmlsitemap/engines', $edit, t('Save configuration'));
    $this
      ->assertText('Invalid URL an-invalid-url.');
    $this
      ->assertNoText('The configuration options have been saved.');
    $url = url('ping', array(
      'absolute' => TRUE,
    ));
    $edit = array(
      'xmlsitemap_engines_custom_urls' => $url,
    );
    $this
      ->drupalPost('admin/settings/xmlsitemap/engines', $edit, t('Save configuration'));
    $this
      ->assertText(t('The configuration options have been saved.'));
    $this
      ->submitEngines();
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'Submitted the sitemap to %url and received response @code.',
      'variables' => array(
        '%url' => $url,
        '@code' => '404',
      ),
    ));
    $this
      ->assertWatchdogMessage(array(
      'type' => 'xmlsitemap',
      'message' => 'No valid sitemap parameter provided.',
    ));
    $this
      ->assertWatchdogMessage(array(
      'type' => 'page not found',
      'message' => 'ping',
    ));
    $edit = array(
      'xmlsitemap_engines_custom_urls' => $this->submit_url,
    );
    $this
      ->drupalPost('admin/settings/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('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('sitemap.xml', array(
          'absolute' => TRUE,
        )),
      ),
    ));
  }

}

Classes

Namesort descending Description
XMLSitemapEnginesFunctionalTest @file Tests for the xmlsitemap_engines module.