function DashboardBlocksTestCase::testBlockAvailability

Tests that administrative blocks are available for the dashboard.

File

drupal/modules/dashboard/dashboard.test, line 120
Tests for dashboard.module.

Class

DashboardBlocksTestCase
Tests the Dashboard module blocks.

Code

function testBlockAvailability() {

  // Test "Recent comments", which should be available (defined as
  // "administrative") but not enabled.
  $this
    ->drupalGet('admin/dashboard');
  $this
    ->assertNoText(t('Recent comments'), '"Recent comments" not on dashboard.');
  $this
    ->drupalGet('admin/dashboard/drawer');
  $this
    ->assertText(t('Recent comments'), 'Drawer of disabled blocks includes a block defined as "administrative".');
  $this
    ->assertNoText(t('Syndicate'), 'Drawer of disabled blocks excludes a block not defined as "administrative".');
  $this
    ->drupalGet('admin/dashboard/configure');
  $elements = $this
    ->xpath('//select[@id=:id]//option[@selected="selected"]', array(
    ':id' => 'edit-blocks-comment-recent-region',
  ));
  $this
    ->assertTrue($elements[0]['value'] == 'dashboard_inactive', 'A block defined as "administrative" defaults to dashboard_inactive.');

  // Now enable the block on the dashboard.
  $values = array();
  $values['blocks[comment_recent][region]'] = 'dashboard_main';
  $this
    ->drupalPost('admin/dashboard/configure', $values, t('Save blocks'));
  $this
    ->drupalGet('admin/dashboard');
  $this
    ->assertText(t('Recent comments'), '"Recent comments" was placed on dashboard.');
  $this
    ->drupalGet('admin/dashboard/drawer');
  $this
    ->assertNoText(t('Recent comments'), 'Drawer of disabled blocks excludes enabled blocks.');
}