diff options
-rw-r--r-- | modules/node/node.admin.inc | 7 | ||||
-rw-r--r-- | modules/node/node.test | 54 |
2 files changed, 57 insertions, 4 deletions
diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc index 1960ccbb4..b6b9a9522 100644 --- a/modules/node/node.admin.inc +++ b/modules/node/node.admin.inc @@ -145,7 +145,6 @@ function node_filter_form() { '#title' => t('Show only items where'), '#theme' => 'node_filters', ); - $form['#submit'][] = 'node_filter_form_submit'; foreach ($session as $filter) { list($type, $value) = $filter; if ($type == 'term') { @@ -160,10 +159,10 @@ function node_filter_form() { $value = $filters[$type]['options'][$value]; } if ($i++) { - $form['filters']['current'][] = array('#markup' => t('<em>and</em> where <strong>%a</strong> is <strong>%b</strong>', array('%a' => $filters[$type]['title'], '%b' => $value))); + $form['filters']['current'][] = array('#markup' => t('<em>and</em> where <strong>%type</strong> is <strong>%value</strong>', array('%type' => $filters[$type]['title'], '%value' => $value))); } else { - $form['filters']['current'][] = array('#markup' => t('<strong>%a</strong> is <strong>%b</strong>', array('%a' => $filters[$type]['title'], '%b' => $value))); + $form['filters']['current'][] = array('#markup' => t('<strong>%type</strong> is <strong>%value</strong>', array('%type' => $filters[$type]['title'], '%value' => $value))); } if (in_array($type, array('type', 'language'))) { // Remove the option if it is already being filtered on. @@ -377,7 +376,7 @@ function node_admin_content($form_state) { '#markup' => theme('links', array(array('title' => t('Add new content'), 'href' => 'node/add')), array('class' => array('action-links'))), ); $form[] = node_filter_form(); - + $form['#submit'][] = 'node_filter_form_submit'; $form['#theme'] = 'node_filter_form'; $form['admin'] = node_admin_nodes(); diff --git a/modules/node/node.test b/modules/node/node.test index 8e771282f..a4b30a3b6 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -846,3 +846,57 @@ class NodeAccessRebuildTestCase extends DrupalWebTestCase { $this->assertText(t('Content permissions have been rebuilt.')); } } + +/** + * Test node administration page functionality. + */ +class NodeAdminTestCase extends DrupalWebTestCase { + protected $admin_user; + + public static function getInfo() { + return array( + 'name' => 'Node administration', + 'description' => 'Test node administration page functionality.', + 'group' => 'Node' + ); + } + + function setUp() { + parent::setUp(); + $this->admin_user = $this->drupalCreateUser(array('administer nodes', 'create article content', 'create page content')); + $this->drupalLogin($this->admin_user); + } + + /** + * Create 3 nodes and test if they are listed on the node admistration page. + */ + function testNodeAdmin() { + $node1 = $this->drupalCreateNode(array('type' => 'article', 'status' => 1)); + $node2 = $this->drupalCreateNode(array('type' => 'article', 'status' => 0)); + $node3 = $this->drupalCreateNode(array('type' => 'page')); + + $this->drupalGet('admin/content'); + $this->assertText($node1->title, t('Node appears on the node administration listing.')); + + // Filter the node listing by status. + $edit = array( + 'filter' => 'status', + 'status' => 'status-1', + ); + $this->drupalPost('admin/content', $edit, t('Filter')); + $this->assertRaw(t('<strong>%type</strong> is <strong>%value</strong>', array('%type' => t('status'), '%value' => t('published'))), t('The node administration listing is filtered by status.')); + $this->assertText($node1->title, t('Published node appears on the node administration listing.')); + $this->assertNoText($node2->title, t('Unpublished node does not appear on the node administration listing.')); + + // Filter the node listing by content type. + $edit = array( + 'filter' => 'type', + 'type' => 'article', + ); + $this->drupalPost('admin/content', $edit, t('Refine')); + $this->assertRaw(t('<strong>%type</strong> is <strong>%value</strong>', array('%type' => t('status'), '%value' => t('published'))), t('The node administration listing is filtered by status.')); + $this->assertRaw(t('<strong>%type</strong> is <strong>%value</strong>', array('%type' => t('type'), '%value' => 'Article')), t('The node administration listing is filtered by content type.')); + $this->assertText($node1->title, t('Article node appears on the node administration listing.')); + $this->assertNoText($node3->title, t('Page node does not appear on the node administration listing.')); + } +} |