first import
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?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);
|
||||
|
||||
// @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)))));
|
||||
}
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
name = XML sitemap engines test
|
||||
description = Support module for XML sitemap engines testing.
|
||||
package = Testing
|
||||
core = 7.x
|
||||
files[] = xmlsitemap_engines_test.module
|
||||
version = VERSION
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-12-08
|
||||
version = "7.x-2.0-rc2+0-dev"
|
||||
core = "7.x"
|
||||
project = "xmlsitemap"
|
||||
datestamp = "1354931808"
|
||||
|
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implements hook_menu().
|
||||
*/
|
||||
function xmlsitemap_engines_test_menu() {
|
||||
$items['ping'] = array(
|
||||
'page callback' => 'xmlsitemap_engines_test_pinged',
|
||||
'access callback' => TRUE,
|
||||
'type' => MENU_CALLBACK,
|
||||
);
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_xmlsitemap_engine_info().
|
||||
*/
|
||||
function xmlsitemap_engines_test_xmlsitemap_engine_info() {
|
||||
$engines['simpletest'] = array(
|
||||
'name' => t('SimpleTest'),
|
||||
'url' => 'http://example.com/',
|
||||
);
|
||||
return $engines;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_xmlsitemap_engine_info_alter().
|
||||
*/
|
||||
function xmlsitemap_engines_test_xmlsitemap_engine_info_alter(&$engines) {
|
||||
$engines['simpletest']['url'] = url('ping', array('absolute' => TRUE, 'query' => array('sitemap' => ''))) . '[sitemap]';
|
||||
}
|
||||
|
||||
function xmlsitemap_engines_test_pinged() {
|
||||
if (empty($_GET['sitemap']) || !valid_url($_GET['sitemap'])) {
|
||||
watchdog('xmlsitemap', 'No valid sitemap parameter provided.', array(), WATCHDOG_WARNING);
|
||||
// @todo Remove this? Causes an extra watchdog error to be handled.
|
||||
return MENU_NOT_FOUND;
|
||||
}
|
||||
else {
|
||||
watchdog('xmlsitemap', 'Recieved ping for @sitemap.', array('@sitemap' => $_GET['sitemap']));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user