Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.76
diff -u -p -r1.76 block.admin.inc
--- modules/block/block.admin.inc	28 Mar 2010 11:16:29 -0000	1.76
+++ modules/block/block.admin.inc	4 Apr 2010 23:47:00 -0000
@@ -32,22 +32,65 @@ function block_admin_display($theme = NU
   }
 
   // Fetch and sort blocks.
+  $blocks = block_admin_display_prepare_blocks($theme);
+
+  return drupal_get_form('block_admin_display_form', $blocks, $theme);
+}
+
+/**
+ * Prepares a list of blocks for display on the blocks administration page.
+ *
+ * @param $theme
+ *   The machine-readable name of the theme whose blocks should be returned.
+ *
+ * @return
+ *   An array of blocks, as returned by _block_rehash(), sorted by region in
+ *   preparation for display on the blocks administration page.
+ *
+ * @see block_admin_display_form()
+ */
+function block_admin_display_prepare_blocks($theme) {
   $blocks = _block_rehash($theme);
   $compare_theme = &drupal_static('_block_compare:theme');
   $compare_theme = $theme;
   usort($blocks, '_block_compare');
-
-  return drupal_get_form('block_admin_display_form', $blocks, $theme);
+  return $blocks;
 }
 
 /**
- * Generate main blocks administration form.
+ * Form callback: generates the main blocks administration form.
+ *
+ * @param $form
+ *   An associative array containing the structure of the form.
+ * @param $form_state
+ *   An associative array containing the current state of the form.
+ * @param $blocks
+ *   An array of blocks, as returned by block_admin_display_prepare_blocks().
+ * @param $theme
+ *   The theme whose blocks are being configured.
+ * @param $block_regions
+ *   (optional) An array of regions in which the blocks will be allowed to be
+ *   placed. Defaults to all visible regions for the theme whose blocks are
+ *   being configured. In all cases, a dummy region for disabled blocks will
+ *   also be displayed.
+ *
+ * @return
+ *   An array representing the form definition.
+ *
+ * @ingroup forms
+ * @see block_admin_display_form_submit()
  */
-function block_admin_display_form($form, &$form_state, $blocks, $theme) {
+function block_admin_display_form($form, &$form_state, $blocks, $theme, $block_regions = NULL) {
 
   drupal_add_css(drupal_get_path('module', 'block') . '/block.css', array('preprocess' => FALSE));
 
-  $block_regions = system_region_list($theme, REGIONS_VISIBLE) + array(BLOCK_REGION_NONE => '<' . t('none') . '>');
+  // Get a list of block regions if one was not provided.
+  if (!isset($block_regions)) {
+    $block_regions = system_region_list($theme, REGIONS_VISIBLE);
+  }
+
+  // We always add a region for disabled blocks.
+  $block_regions += array(BLOCK_REGION_NONE => '<' . t('none') . '>');
 
   // Weights range from -delta to +delta, so delta should be at least half
   // of the amount of blocks present. This makes sure all blocks in the same
@@ -55,44 +98,51 @@ function block_admin_display_form($form,
   $weight_delta = round(count($blocks) / 2);
 
   // Build the form tree.
-  $form['edited_theme'] = array('#type' => 'value', '#value' => $theme);
-  $form['#action'] = arg(4) ? url('admin/structure/block/list/' . $theme) : url('admin/structure/block');
+  $form['edited_theme'] = array(
+    '#type' => 'value',
+    '#value' => $theme,
+  );
+  $form['block_regions'] = array(
+    '#type' => 'value',
+    '#value' => $block_regions,
+  );
+  $form['blocks'] = array();
   $form['#tree'] = TRUE;
 
   foreach ($blocks as $i => $block) {
     $key = $block['module'] . '_' . $block['delta'];
-    $form[$key]['module'] = array(
+    $form['blocks'][$key]['module'] = array(
       '#type' => 'value',
       '#value' => $block['module'],
     );
-    $form[$key]['delta'] = array(
+    $form['blocks'][$key]['delta'] = array(
       '#type' => 'value',
       '#value' => $block['delta'],
     );
-    $form[$key]['info'] = array(
+    $form['blocks'][$key]['info'] = array(
       '#markup' => check_plain($block['info']),
     );
-    $form[$key]['theme'] = array(
+    $form['blocks'][$key]['theme'] = array(
       '#type' => 'hidden',
       '#value' => $theme,
     );
-    $form[$key]['weight'] = array(
+    $form['blocks'][$key]['weight'] = array(
       '#type' => 'weight',
       '#default_value' => $block['weight'],
       '#delta' => $weight_delta,
     );
-    $form[$key]['region'] = array(
+    $form['blocks'][$key]['region'] = array(
       '#type' => 'select',
       '#default_value' => $block['region'],
       '#options' => $block_regions,
     );
-    $form[$key]['configure'] = array(
+    $form['blocks'][$key]['configure'] = array(
       '#type' => 'link',
       '#title' => t('configure'),
       '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/configure',
     );
     if ($block['module'] == 'block') {
-      $form[$key]['delete'] = array(
+      $form['blocks'][$key]['delete'] = array(
         '#type' => 'link',
         '#title' => t('delete'),
         '#href' => 'admin/structure/block/manage/' . $block['module'] . '/' . $block['delta'] . '/delete',
@@ -100,7 +150,7 @@ function block_admin_display_form($form,
     }
   }
   // Do not allow disabling the main system content block.
-  unset($form['system_main']['region']['#options'][BLOCK_REGION_NONE]);
+  unset($form['blocks']['system_main']['region']['#options'][BLOCK_REGION_NONE]);
 
   $form['actions'] = array(
     '#tree' => FALSE,
@@ -121,7 +171,7 @@ function block_admin_display_form($form,
 function block_admin_display_form_submit($form, &$form_state) {
   $txn = db_transaction();
 
-  foreach ($form_state['values'] as $block) {
+  foreach ($form_state['values']['blocks'] as $block) {
     $block['status'] = (int) ($block['region'] != BLOCK_REGION_NONE);
     $block['region'] = $block['status'] ? $block['region'] : '';
     db_update('block')
@@ -529,7 +579,7 @@ function block_custom_block_delete_submi
 }
 
 /**
- * Process variables for block-admin-display.tpl.php.
+ * Process variables for block-admin-display-form.tpl.php.
  *
  * The $variables array contains the following arguments:
  * - $form
@@ -538,11 +588,12 @@ function block_custom_block_delete_submi
  * @see theme_block_admin_display()
  */
 function template_preprocess_block_admin_display_form(&$variables) {
+  $variables['block_regions'] = $variables['form']['block_regions']['#value'];
+  if (isset($variables['block_regions'][BLOCK_REGION_NONE])) {
+    $variables['block_regions'][BLOCK_REGION_NONE] = t('Disabled');
+  }
 
-  $block_regions = system_region_list($variables['form']['edited_theme']['#value'], REGIONS_VISIBLE);
-  $variables['block_regions'] = $block_regions + array(BLOCK_REGION_NONE => t('Disabled'));
-
-  foreach ($block_regions as $key => $value) {
+  foreach ($variables['block_regions'] as $key => $value) {
     // Initialize an empty array for the region.
     $variables['block_listing'][$key] = array();
   }
@@ -550,33 +601,28 @@ function template_preprocess_block_admin
   // Initialize disabled blocks array.
   $variables['block_listing'][BLOCK_REGION_NONE] = array();
 
-  // Set up to track previous region in loop.
-  $last_region = '';
-  foreach (element_children($variables['form']) as $i) {
-    $block = &$variables['form'][$i];
-
-    // Only take form elements that are blocks.
-    if (isset($block['info'])) {
-      // Fetch region for current block.
-      $region = $block['region']['#default_value'];
-
-      // Set special classes needed for table drag and drop.
-      $variables['form'][$i]['region']['#attributes']['class'] = array('block-region-select', 'block-region-' . $region);
-      $variables['form'][$i]['weight']['#attributes']['class'] = array('block-weight', 'block-weight-' . $region);
-
-      $variables['block_listing'][$region][$i] = new stdClass();
-      $variables['block_listing'][$region][$i]->row_class = !empty($block['#attributes']['class']) ? implode(' ', $block['#attributes']['class']) : '';
-      $variables['block_listing'][$region][$i]->block_modified = !empty($block['#attributes']['class']) && in_array('block-modified', $block['#attributes']['class']);
-      $variables['block_listing'][$region][$i]->block_title =  drupal_render($block['info']);
-      $variables['block_listing'][$region][$i]->region_select = drupal_render($block['region']) . drupal_render($block['theme']);
-      $variables['block_listing'][$region][$i]->weight_select = drupal_render($block['weight']);
-      $variables['block_listing'][$region][$i]->configure_link = drupal_render($block['configure']);
-      $variables['block_listing'][$region][$i]->delete_link = !empty($block['delete']) ? drupal_render($block['delete']) : '';
-      $variables['block_listing'][$region][$i]->printed = FALSE;
-
-      $last_region = $region;
-    }
+  // Add each block in the form to the appropriate place in the block listing.
+  foreach (element_children($variables['form']['blocks']) as $i) {
+    $block = &$variables['form']['blocks'][$i];
+
+    // Fetch the region for the current block.
+    $region = $block['region']['#default_value'];
+
+    // Set special classes needed for table drag and drop.
+    $block['region']['#attributes']['class'] = array('block-region-select', 'block-region-' . $region);
+    $block['weight']['#attributes']['class'] = array('block-weight', 'block-weight-' . $region);
+
+    $variables['block_listing'][$region][$i] = new stdClass();
+    $variables['block_listing'][$region][$i]->row_class = !empty($block['#attributes']['class']) ? implode(' ', $block['#attributes']['class']) : '';
+    $variables['block_listing'][$region][$i]->block_modified = !empty($block['#attributes']['class']) && in_array('block-modified', $block['#attributes']['class']);
+    $variables['block_listing'][$region][$i]->block_title = drupal_render($block['info']);
+    $variables['block_listing'][$region][$i]->region_select = drupal_render($block['region']) . drupal_render($block['theme']);
+    $variables['block_listing'][$region][$i]->weight_select = drupal_render($block['weight']);
+    $variables['block_listing'][$region][$i]->configure_link = drupal_render($block['configure']);
+    $variables['block_listing'][$region][$i]->delete_link = !empty($block['delete']) ? drupal_render($block['delete']) : '';
+    $variables['block_listing'][$region][$i]->printed = FALSE;
   }
 
   $variables['form_submit'] = drupal_render_children($variables['form']);
 }
+
Index: modules/block/block.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.test,v
retrieving revision 1.48
diff -u -p -r1.48 block.test
--- modules/block/block.test	31 Mar 2010 20:05:06 -0000	1.48
+++ modules/block/block.test	4 Apr 2010 23:47:00 -0000
@@ -120,7 +120,7 @@ class BlockTestCase extends DrupalWebTes
     // Set the created custom block to a specific region.
     $bid = db_query("SELECT bid FROM {block_custom} WHERE info = :info", array(':info' => $custom_block['info']))->fetchField();
     $edit = array();
-    $edit['block_' . $bid . '[region]'] = $this->regions[1]['name'];
+    $edit['blocks[block_' . $bid . '][region]'] = $this->regions[1]['name'];
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Confirm that the custom block is being displayed using configured text format.
@@ -212,7 +212,7 @@ class BlockTestCase extends DrupalWebTes
 
     // Set the block to the disabled region.
     $edit = array();
-    $edit[$block['module'] . '_' . $block['delta'] . '[region]'] = '-1';
+    $edit['blocks[' . $block['module'] . '_' . $block['delta'] . '][region]'] = '-1';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Confirm that the block was moved to the proper region.
@@ -225,7 +225,7 @@ class BlockTestCase extends DrupalWebTes
 
     // For convenience of developers, put the navigation block back.
     $edit = array();
-    $edit[$block['module'] . '_' . $block['delta'] . '[region]'] = $this->regions[1]['name'];
+    $edit['blocks[' . $block['module'] . '_' . $block['delta'] . '][region]'] = $this->regions[1]['name'];
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to first sidebar region.'));
 
@@ -241,7 +241,7 @@ class BlockTestCase extends DrupalWebTes
 
     // Set the created block to a specific region.
     $edit = array();
-    $edit[$block['module'] . '_' . $block['delta'] . '[region]'] = $region['name'];
+    $edit['blocks[' . $block['module'] . '_' . $block['delta'] . '][region]'] = $region['name'];
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Confirm that the block was moved to the proper region.
@@ -392,7 +392,7 @@ class BlockCacheTestCase extends DrupalW
     variable_set('block_cache', TRUE);
 
     // Enable our test block.
-    $edit['block_test_test_cache[region]'] = 'sidebar_first';
+    $edit['blocks[block_test_test_cache][region]'] = 'sidebar_first';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
   }
 
Index: modules/blog/blog.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/blog/blog.test,v
retrieving revision 1.26
diff -u -p -r1.26 blog.test
--- modules/blog/blog.test	18 Mar 2010 06:26:36 -0000	1.26
+++ modules/blog/blog.test	4 Apr 2010 23:47:00 -0000
@@ -62,7 +62,7 @@ class BlogTestCase extends DrupalWebTest
     $this->drupalLogin($this->big_user);
     // Enable the recent blog block.
     $edit = array();
-    $edit['blog_recent[region]'] = 'sidebar_second';
+    $edit['blocks[blog_recent][region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     // Verify ability to change number of recent blog posts in block.
Index: modules/book/book.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/book/book.test,v
retrieving revision 1.23
diff -u -p -r1.23 book.test
--- modules/book/book.test	31 Mar 2010 20:05:06 -0000	1.23
+++ modules/book/book.test	4 Apr 2010 23:47:00 -0000
@@ -220,7 +220,7 @@ class BookBlockTestCase extends DrupalWe
 
     // Set the block to a region to confirm block is availble.
     $edit = array();
-    $edit['book_navigation[region]'] = 'footer';
+    $edit['blocks[book_navigation][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.'));
   }
Index: modules/comment/comment.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.test,v
retrieving revision 1.73
diff -u -p -r1.73 comment.test
--- modules/comment/comment.test	31 Mar 2010 20:05:06 -0000	1.73
+++ modules/comment/comment.test	4 Apr 2010 23:47:00 -0000
@@ -987,7 +987,7 @@ class CommentBlockFunctionalTest extends
 
     // Set the block to a region to confirm block is available.
     $edit = array(
-      'comment_recent[region]' => 'sidebar_first',
+      'blocks[comment_recent][region]' => 'sidebar_first',
     );
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block saved to first sidebar region.'));
Index: modules/dashboard/dashboard.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/dashboard/dashboard.module,v
retrieving revision 1.24
diff -u -p -r1.24 dashboard.module
--- modules/dashboard/dashboard.module	28 Mar 2010 11:29:27 -0000	1.24
+++ modules/dashboard/dashboard.module	4 Apr 2010 23:47:00 -0000
@@ -18,6 +18,10 @@ function dashboard_help($path, $arg) {
       $output .= '<dd>' . t('By enabling blocks such as <em>Recent blog posts</em>, <em>New forum topics</em> and <em>Recent comments</em>, site users can view newly added site content at a glance.') . '</dd>';
       $output .= '</dl>';
       return $output;
+    case 'admin/structure/dashboard':
+      // @todo: Fill this in.
+      $output = t('Some help text about making more blocks available... (with a link to the main blocks administration page).');
+      return $output;
   }
 }
 
@@ -25,6 +29,12 @@ function dashboard_help($path, $arg) {
  * Implements hook_menu().
  */
 function dashboard_menu() {
+  $items['admin/structure/dashboard'] = array(
+    'title' => 'Dashboard',
+    'description' => "Configure what block content is available for your site's dashboard.",
+    'page callback' => 'dashboard_admin_blocks',
+    'access arguments' => array('administer blocks'),
+  );
   $items['admin/dashboard'] = array(
     'title' => 'Dashboard',
     'description' => 'View and customize your dashboard',
@@ -58,6 +68,7 @@ function dashboard_menu() {
     'access arguments' => array('administer blocks'),
     'type' => MENU_CALLBACK,
   );
+
   return $items;
 }
 
@@ -200,7 +211,28 @@ function dashboard_theme() {
     'dashboard_disabled_block' => array(
       'variables' => array('block' => NULL),
     ),
+    'dashboard_admin_display_form' => array(
+      // When building the form for configuring dashboard blocks, reuse the
+      // Block module's template for the main block configuration form.
+      'template' => 'block-admin-display-form',
+      'path' => drupal_get_path('module', 'block'),
+      'file' => 'block.admin.inc',
+      'render element' => 'form',
+    ),
+  );
+}
+
+/**
+ * Implements hook_forms().
+ */
+function dashboard_forms() {
+  // Reroute the dashboard configuration form to the main blocks administration
+  // form. This allows us to distinguish them by form ID in hook_form_alter().
+  $forms['dashboard_admin_display_form'] = array(
+    'callback' => 'block_admin_display_form',
   );
+
+  return $forms;
 }
 
 /**
@@ -225,7 +257,7 @@ function dashboard_admin($launch_customi
   );
   $build = array(
     '#theme' => 'dashboard_admin',
-    '#message' => t('To customize the dashboard page, move blocks to the dashboard regions on the <a href="@blocks">Blocks administration page</a>, or enable JavaScript on this page to use the drag-and-drop interface.', array('@blocks' => url('admin/structure/block'))),
+    '#message' => t('To customize the dashboard page, move blocks to the dashboard regions on the <a href="@dashboard">Dashboard administration page</a>, or enable JavaScript on this page to use the drag-and-drop interface.', array('@dashboard' => url('admin/structure/dashboard'))),
     '#access' => user_access('administer blocks'),
     '#attached' => array(
       'js' => array(
@@ -239,6 +271,86 @@ function dashboard_admin($launch_customi
 }
 
 /**
+ * Menu page callback: builds the page for administering dashboard blocks.
+ *
+ * This page reuses the Block module's administration form but limits editing
+ * to blocks that are available to appear on the dashboard.
+ *
+ * @see block_admin_display()
+ * @see block_admin_display_form()
+ * @see dashboard_form_dashboard_admin_display_form_alter()
+ * @see template_preprocess_dashboard_admin_display_form()
+ */
+function dashboard_admin_blocks() {
+  global $theme_key;
+  drupal_theme_initialize();
+  drupal_set_title(t('Configure dashboard'));
+  require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'block') . '/block.admin.inc';
+
+  // Prepare the blocks for the current theme, and remove those that are
+  // currently displayed in non-dashboard regions.
+  // @todo: This assumes the current page is being displayed using the same
+  // theme that the dashboard is displayed in.
+  $blocks = block_admin_display_prepare_blocks($theme_key);
+  $dashboard_regions = dashboard_region_descriptions();
+  $regions_to_remove = array_keys(array_diff_key(system_region_list($theme_key, REGIONS_VISIBLE), $dashboard_regions));
+  foreach ($blocks as $id => $block) {
+    if (in_array($block['region'], $regions_to_remove)) {
+      unset($blocks[$id]);
+    }
+  }
+
+  // Pass in the above blocks and dashboard regions to the form, so that only
+  // dashboard-related regions will be displayed.
+  return drupal_get_form('dashboard_admin_display_form', $blocks, $theme_key, $dashboard_regions);
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function dashboard_form_block_admin_display_form_alter(&$form, &$form_state) {
+  // Hide dashboard regions (and any blocks placed within them) from the block
+  // administration form and from the options list on that form.
+  $dashboard_regions = dashboard_region_descriptions();
+  $form['block_regions']['#value'] = array_diff_key($form['block_regions']['#value'], $dashboard_regions);
+  foreach (element_children($form['blocks']) as $i) {
+    $block = &$form['blocks'][$i];
+    if (isset($block['region']['#default_value']) && in_array($block['region']['#default_value'], array_keys($dashboard_regions))) {
+      $block['#access'] = FALSE;
+    }
+    elseif (isset($block['region']['#options'])) {
+      $block['region']['#options'] = array_diff_key($block['region']['#options'], $dashboard_regions);
+    }
+  }
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function dashboard_form_dashboard_admin_display_form_alter(&$form, &$form_state) {
+  // Inherit the submit handler from the main block administration form.
+  $form['#submit'][] = 'block_admin_display_form_submit';
+
+  // Redirect the 'configure' and 'delete' links on each block back to the
+  // dashboard blocks administration page.
+  foreach ($form['blocks'] as &$block) {
+    if (isset($block['configure']['#href'])) {
+      $block['configure']['#options']['query']['destination'] = 'admin/structure/dashboard';
+    }
+    if (isset($block['delete']['#href'])) {
+      $block['delete']['#options']['query']['destination'] = 'admin/structure/dashboard';
+    }
+  }
+}
+
+/**
+ * Preprocess variables for block-admin-display-form.tpl.php.
+ */
+function template_preprocess_dashboard_admin_display_form(&$variables) {
+  template_preprocess_block_admin_display_form($variables);
+}
+
+/**
  * Returns TRUE if the user is currently viewing the dashboard.
  */
 function dashboard_is_visible() {
Index: modules/forum/forum.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.test,v
retrieving revision 1.50
diff -u -p -r1.50 forum.test
--- modules/forum/forum.test	25 Mar 2010 11:53:25 -0000	1.50
+++ modules/forum/forum.test	4 Apr 2010 23:47:00 -0000
@@ -100,14 +100,14 @@ class ForumTestCase extends DrupalWebTes
 
     // Enable the active forum block.
     $edit = array();
-    $edit['forum_active[region]'] = 'sidebar_second';
+    $edit['blocks[forum_active][region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('Active forum topics forum block was enabled'));
 
     // Enable the new forum block.
     $edit = array();
-    $edit['forum_new[region]'] = 'sidebar_second';
+    $edit['blocks[forum_new][region]'] = 'sidebar_second';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('[New forum topics] Forum block was enabled'));
Index: modules/locale/locale.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.test,v
retrieving revision 1.69
diff -u -p -r1.69 locale.test
--- modules/locale/locale.test	31 Mar 2010 20:05:06 -0000	1.69
+++ modules/locale/locale.test	4 Apr 2010 23:47:01 -0000
@@ -1131,7 +1131,7 @@ class LanguageSwitchingFunctionalTest ex
     // Enable the language switching block.
     $language_type = LANGUAGE_TYPE_INTERFACE;
     $edit = array(
-      "locale_{$language_type}[region]" => 'sidebar_first',
+      "blocks[locale_{$language_type}][region]" => 'sidebar_first',
     );
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
Index: modules/menu/menu.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/menu/menu.test,v
retrieving revision 1.34
diff -u -p -r1.34 menu.test
--- modules/menu/menu.test	17 Feb 2010 05:46:16 -0000	1.34
+++ modules/menu/menu.test	4 Apr 2010 23:47:01 -0000
@@ -157,7 +157,7 @@ class MenuTestCase extends DrupalWebTest
     // Enable the custom menu block.
     $menu_name = 'menu-' . $menu_name; // Drupal prepends the name with 'menu-'.
     $edit = array();
-    $edit['menu_' . $menu_name . '[region]'] = 'sidebar_first';
+    $edit['blocks[menu_' . $menu_name . '][region]'] = 'sidebar_first';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('Custom menu block was enabled'));
Index: modules/node/node.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.test,v
retrieving revision 1.78
diff -u -p -r1.78 node.test
--- modules/node/node.test	31 Mar 2010 20:05:06 -0000	1.78
+++ modules/node/node.test	4 Apr 2010 23:47:01 -0000
@@ -624,7 +624,7 @@ class NodeBlockTestCase extends DrupalWe
 
     // Set the block to a region to confirm block is available.
     $edit = array();
-    $edit['node_syndicate[region]'] = 'footer';
+    $edit['blocks[node_syndicate][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.'));
   }
@@ -1308,7 +1308,7 @@ class NodeBlockFunctionalTest extends Dr
 
     // Set the block to a region to confirm block is available.
     $edit = array(
-      'node_recent[region]' => 'sidebar_first',
+      'blocks[node_recent][region]' => 'sidebar_first',
     );
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block saved to first sidebar region.'));
Index: modules/poll/poll.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.test,v
retrieving revision 1.31
diff -u -p -r1.31 poll.test
--- modules/poll/poll.test	26 Mar 2010 18:58:12 -0000	1.31
+++ modules/poll/poll.test	4 Apr 2010 23:47:01 -0000
@@ -265,7 +265,7 @@ class PollBlockTestCase extends PollTest
 
     // Set the block to a region to confirm block is available.
     $edit = array();
-    $edit['poll_recent[region]'] = 'footer';
+    $edit['blocks[poll_recent][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.'));
 
Index: modules/profile/profile.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/profile/profile.test,v
retrieving revision 1.24
diff -u -p -r1.24 profile.test
--- modules/profile/profile.test	8 Mar 2010 15:46:58 -0000	1.24
+++ modules/profile/profile.test	4 Apr 2010 23:47:01 -0000
@@ -388,7 +388,7 @@ class ProfileBlockTestCase extends Drupa
 
     // Set the block to a region to confirm block is availble.
     $edit = array();
-    $edit['profile_author-information[region]'] = 'footer';
+    $edit['blocks[profile_author-information][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.'));
   }
Index: modules/search/search.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.test,v
retrieving revision 1.57
diff -u -p -r1.57 search.test
--- modules/search/search.test	7 Mar 2010 23:14:20 -0000	1.57
+++ modules/search/search.test	4 Apr 2010 23:47:01 -0000
@@ -438,7 +438,7 @@ class SearchBlockTestCase extends Drupal
 
     // Set the block to a region to confirm block is availble.
     $edit = array();
-    $edit['search_form[region]'] = 'footer';
+    $edit['blocks[search_form][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully move to footer region.'));
   }
@@ -449,7 +449,7 @@ class SearchBlockTestCase extends Drupal
   function testBlock() {
     // Enable the block, and place it in the 'content' region so that it isn't
     // hidden on 404 pages.
-    $edit = array('search_form[region]' => 'content');
+    $edit = array('blocks[search_form][region]' => 'content');
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Test a normal search via the block form, from the front page.
Index: modules/system/system.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.test,v
retrieving revision 1.118
diff -u -p -r1.118 system.test
--- modules/system/system.test	31 Mar 2010 19:10:39 -0000	1.118
+++ modules/system/system.test	4 Apr 2010 23:47:01 -0000
@@ -591,7 +591,7 @@ class AccessDeniedTestCase extends Drupa
     // Log back in, set the custom 403 page to /user and remove the block
     $this->drupalLogin($this->admin_user);
     variable_set('site_403', 'user');
-    $this->drupalPost('admin/structure/block', array('user_login[region]' => '-1'), t('Save blocks'));
+    $this->drupalPost('admin/structure/block', array('blocks[user_login][region]' => '-1'), t('Save blocks'));
 
     // Check that we can log in from the 403 page.
     $this->drupalLogout();
@@ -1046,7 +1046,7 @@ class SystemBlockTestCase extends Drupal
 
     // Set the powered-by block to the footer region.
     $edit = array();
-    $edit['system_powered-by[region]'] = 'footer';
+    $edit['blocks[system_powered-by][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->assertText(t('The block settings have been updated.'), t('Block successfully moved to footer region.'));
 
@@ -1056,7 +1056,7 @@ class SystemBlockTestCase extends Drupal
 
     // Set the block to the disabled region.
     $edit = array();
-    $edit['system_powered-by[region]'] = '-1';
+    $edit['blocks[system_powered-by][region]'] = '-1';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
 
     // Confirm that the block is hidden.
@@ -1064,7 +1064,7 @@ class SystemBlockTestCase extends Drupal
 
     // For convenience of developers, set the block to it's default settings.
     $edit = array();
-    $edit['system_powered-by[region]'] = 'footer';
+    $edit['blocks[system_powered-by][region]'] = 'footer';
     $this->drupalPost('admin/structure/block', $edit, t('Save blocks'));
     $this->drupalPost('admin/structure/block/manage/system/powered-by/configure', array('title' => ''), t('Save block'));
   }
