From 745b5b034c70ceceb77eba2be992d9ea5e4e7a32 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 30 Oct 2009 22:33:35 +0000 Subject: - Patch #618938 by pwolanin: fixed Drupal version is not being available until the end of bootstrap. --- modules/node/node.module | 7 +++++-- modules/node/node.test | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) (limited to 'modules/node') diff --git a/modules/node/node.module b/modules/node/node.module index 3e7a5ad01..faa3684a4 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1993,7 +1993,9 @@ function node_block_view($delta = '') { * generated with passing an empty array, if no items are to be added * to the feed. * @param $channel - * An associative array containing title, link, description and other keys. + * An associative array containing title, link, description and other keys, + * to be parsed by format_rss_channel() and format_xml_elements(). + * A list of channel elements can be found at the @link http://cyber.law.harvard.edu/rss/rss.html RSS 2.0 Specification. @endlink * The link should be an absolute URL. */ function node_feed($nids = FALSE, $channel = array()) { @@ -2053,11 +2055,12 @@ function node_feed($nids = FALSE, $channel = array()) { 'description' => variable_get('feed_description', ''), 'language' => $language->language ); + $channel_extras = array_diff_key($channel, $channel_defaults); $channel = array_merge($channel_defaults, $channel); $output = "\n"; $output .= "\n"; - $output .= format_rss_channel($channel['title'], $channel['link'], $channel['description'], $items, $channel['language']); + $output .= format_rss_channel($channel['title'], $channel['link'], $channel['description'], $items, $channel['language'], $channel_extras); $output .= "\n"; drupal_add_http_header('Content-Type', 'application/rss+xml; charset=utf-8'); diff --git a/modules/node/node.test b/modules/node/node.test index 016ce5619..3c4a74040 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -1048,3 +1048,27 @@ class NodeTitleTestCase extends DrupalWebTestCase { $this->assertEqual(current($this->xpath($xpath)), $node->title[FIELD_LANGUAGE_NONE][0]['value'], 'Node preview title is equal to node title.', 'Node'); } } + +/** + * Test the node_feed() functionality + */ +class NodeFeedTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Node feed', + 'description' => 'Ensures that node_feed() functions correctly.', + 'group' => 'Node', + ); + } + + /** + * Ensure that node_feed accepts and prints extra channel elements. + */ + function testNodeFeedExtraChannelElements() { + ob_start(); + node_feed(array(), array('copyright' => 'Drupal is a registered trademark of Dries Buytaert.')); + $output = ob_get_clean(); + + $this->assertTrue(strpos($output, 'Drupal is a registered trademark of Dries Buytaert.') !== FALSE); + } +} -- cgit v1.2.3