home | career | drupal | java | mac | mysql | perl | php | scala | uml | unix

Drupal example source code file (xmlsitemap_engines.test)

This example Drupal source code file (xmlsitemap_engines.test) is included in the DevDaily.com "Drupal Source Code Warehouse" project. The intent of this project is to help you "Learn Drupal by Example".

PHP - Drupal tags/keywords

array, code, configuration, edit, function, message, options, php, ping, sitemap, true, url, variables, xmlsitemap

The xmlsitemap_engines.test Drupal example source code

<?php
// $Id: xmlsitemap_engines.test,v 1.12 2010/11/13 04:41:37 davereid Exp $

/**
 * @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);

    // @todo For some reason the test client does not have clean URLs while
    // the test runner does, so it causes mismatches in watchdog assertions
    // later.
    variable_set('clean_url', 0);

    $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/config/search/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/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('ping', array('absolute' => TRUE));
    $edit = array('xmlsitemap_engines_custom_urls' => $url);
    $this->drupalPost('admin/config/search/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/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('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)))));
  }
}

Other Drupal examples (source code examples)

Here is a short list of links related to this Drupal xmlsitemap_engines.test source code file:

new blog posts

"Drupal" is a registered trademark of Dries Buytaert.

my drupal tutorials and examples  

Copyright 1998-2016 Alvin Alexander, alvinalexander.com
All Rights Reserved.

Beginning in 2016, a portion of the proceeds from pages under the '/drupal-code-examples/' URI will be donated to charity.