[Pkg-drupal-commits] r2244 - in /branches/upstream/current-7: ./ includes/ misc/ modules/aggregator/ modules/aggregator/tests/ modules/block/ modules/block/tests/ modules/blog/ modules/book/ modules/color/ modules/comment/ modules/contact/ modules/contextual/ modules/dashboard/ modules/dblog/ modules/field/ modules/field/modules/field_sql_storage/ modules/field/modules/list/ modules/field/modules/list/tests/ modules/field/modules/number/ modules/field/modules/options/ modules/field/modules/text/ modules/field/tests/ modules/field_ui/ modules/file/ modules/file/tests/ modules/filter/ modules/forum/ modules/help/ modules/image/ modules/image/tests/ modules/locale/ modules/locale/tests/ modules/menu/ modules/node/ modules/node/tests/ modules/openid/ modules/openid/tests/ modules/overlay/ modules/path/ modules/php/ modules/poll/ modules/profile/ modules/rdf/ modules/rdf/tests/ modules/search/ modules/search/tests/ modules/shortcut/ modules/simpletest/ modules/simpletest/tests/ modules/simpletest/tests/drupal_system_listing_compatible_test/ modules/simpletest/tests/drupal_system_listing_incompatible_test/ modules/simpletest/tests/upgrade/ modules/statistics/ modules/syslog/ modules/system/ modules/taxonomy/ modules/toolbar/ modules/tracker/ modules/translation/ modules/translation/tests/ modules/trigger/ modules/trigger/tests/ modules/update/ modules/update/tests/ modules/user/ modules/user/tests/ profiles/minimal/ profiles/standard/ profiles/testing/ profiles/testing/modules/drupal_system_listing_compatible_test/ profiles/testing/modules/drupal_system_listing_incompatible_test/ scripts/ themes/bartik/ themes/garland/ themes/seven/ themes/stark/ themes/tests/block_test_theme/ themes/tests/test_theme/ themes/tests/update_test_basetheme/ themes/tests/update_test_subtheme/

luigi at users.alioth.debian.org luigi at users.alioth.debian.org
Mon Dec 26 16:49:45 UTC 2011


Author: luigi
Date: Mon Dec 26 16:49:44 2011
New Revision: 2244

URL: http://svn.debian.org/wsvn/pkg-drupal/?sc=1&rev=2244
Log:
[svn-upgrade] new version drupal7 (7.10)

Added:
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.module
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.module
    branches/upstream/current-7/modules/simpletest/tests/update_script_test.info
    branches/upstream/current-7/modules/simpletest/tests/update_script_test.install
    branches/upstream/current-7/modules/simpletest/tests/update_script_test.module
    branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz   (with props)
    branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz   (with props)
    branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz   (with props)
    branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz   (with props)
    branches/upstream/current-7/scripts/dump-database-d7.sh
    branches/upstream/current-7/scripts/generate-d7-content.sh
    branches/upstream/current-7/scripts/test.script
    branches/upstream/current-7/themes/tests/block_test_theme/
    branches/upstream/current-7/themes/tests/block_test_theme/block_test_theme.info
    branches/upstream/current-7/themes/tests/block_test_theme/page.tpl.php
Modified:
    branches/upstream/current-7/CHANGELOG.txt
    branches/upstream/current-7/MAINTAINERS.txt
    branches/upstream/current-7/includes/ajax.inc
    branches/upstream/current-7/includes/bootstrap.inc
    branches/upstream/current-7/includes/common.inc
    branches/upstream/current-7/includes/install.core.inc
    branches/upstream/current-7/includes/install.inc
    branches/upstream/current-7/includes/iso.inc
    branches/upstream/current-7/includes/locale.inc
    branches/upstream/current-7/includes/module.inc
    branches/upstream/current-7/includes/path.inc
    branches/upstream/current-7/includes/theme.inc
    branches/upstream/current-7/includes/utility.inc
    branches/upstream/current-7/misc/authorize.js
    branches/upstream/current-7/misc/drupal.js
    branches/upstream/current-7/modules/aggregator/aggregator.api.php
    branches/upstream/current-7/modules/aggregator/aggregator.info
    branches/upstream/current-7/modules/aggregator/tests/aggregator_test.info
    branches/upstream/current-7/modules/block/block.info
    branches/upstream/current-7/modules/block/block.test
    branches/upstream/current-7/modules/block/tests/block_test.info
    branches/upstream/current-7/modules/blog/blog.info
    branches/upstream/current-7/modules/book/book.info
    branches/upstream/current-7/modules/color/color.info
    branches/upstream/current-7/modules/comment/comment.info
    branches/upstream/current-7/modules/contact/contact.info
    branches/upstream/current-7/modules/contextual/contextual-rtl.css
    branches/upstream/current-7/modules/contextual/contextual.css
    branches/upstream/current-7/modules/contextual/contextual.info
    branches/upstream/current-7/modules/contextual/contextual.js
    branches/upstream/current-7/modules/contextual/contextual.module
    branches/upstream/current-7/modules/dashboard/dashboard.info
    branches/upstream/current-7/modules/dblog/dblog.info
    branches/upstream/current-7/modules/field/field.api.php
    branches/upstream/current-7/modules/field/field.info
    branches/upstream/current-7/modules/field/modules/field_sql_storage/field_sql_storage.info
    branches/upstream/current-7/modules/field/modules/list/list.info
    branches/upstream/current-7/modules/field/modules/list/tests/list_test.info
    branches/upstream/current-7/modules/field/modules/number/number.info
    branches/upstream/current-7/modules/field/modules/options/options.info
    branches/upstream/current-7/modules/field/modules/text/text.info
    branches/upstream/current-7/modules/field/tests/field_test.info
    branches/upstream/current-7/modules/field_ui/field_ui.admin.inc
    branches/upstream/current-7/modules/field_ui/field_ui.info
    branches/upstream/current-7/modules/file/file.css
    branches/upstream/current-7/modules/file/file.field.inc
    branches/upstream/current-7/modules/file/file.info
    branches/upstream/current-7/modules/file/file.module
    branches/upstream/current-7/modules/file/tests/file_module_test.info
    branches/upstream/current-7/modules/filter/filter.info
    branches/upstream/current-7/modules/forum/forum.info
    branches/upstream/current-7/modules/forum/forum.module
    branches/upstream/current-7/modules/help/help.info
    branches/upstream/current-7/modules/image/image.info
    branches/upstream/current-7/modules/image/tests/image_module_test.info
    branches/upstream/current-7/modules/locale/locale.info
    branches/upstream/current-7/modules/locale/locale.test
    branches/upstream/current-7/modules/locale/tests/locale_test.info
    branches/upstream/current-7/modules/locale/tests/locale_test.js
    branches/upstream/current-7/modules/menu/menu.admin.inc
    branches/upstream/current-7/modules/menu/menu.info
    branches/upstream/current-7/modules/node/node.api.php
    branches/upstream/current-7/modules/node/node.info
    branches/upstream/current-7/modules/node/node.test
    branches/upstream/current-7/modules/node/tests/node_access_test.info
    branches/upstream/current-7/modules/node/tests/node_test.info
    branches/upstream/current-7/modules/node/tests/node_test_exception.info
    branches/upstream/current-7/modules/openid/openid.info
    branches/upstream/current-7/modules/openid/tests/openid_test.info
    branches/upstream/current-7/modules/overlay/overlay-child-rtl.css
    branches/upstream/current-7/modules/overlay/overlay.info
    branches/upstream/current-7/modules/overlay/overlay.module
    branches/upstream/current-7/modules/path/path.info
    branches/upstream/current-7/modules/php/php.info
    branches/upstream/current-7/modules/poll/poll.info
    branches/upstream/current-7/modules/profile/profile.info
    branches/upstream/current-7/modules/profile/profile.module
    branches/upstream/current-7/modules/profile/profile.test
    branches/upstream/current-7/modules/rdf/rdf.info
    branches/upstream/current-7/modules/rdf/tests/rdf_test.info
    branches/upstream/current-7/modules/search/search.info
    branches/upstream/current-7/modules/search/search.test
    branches/upstream/current-7/modules/search/tests/search_embedded_form.info
    branches/upstream/current-7/modules/search/tests/search_extra_type.info
    branches/upstream/current-7/modules/shortcut/shortcut.info
    branches/upstream/current-7/modules/simpletest/drupal_web_test_case.php
    branches/upstream/current-7/modules/simpletest/simpletest.info
    branches/upstream/current-7/modules/simpletest/tests/actions_loop_test.info
    branches/upstream/current-7/modules/simpletest/tests/ajax.test
    branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.info
    branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.module
    branches/upstream/current-7/modules/simpletest/tests/ajax_test.info
    branches/upstream/current-7/modules/simpletest/tests/batch_test.info
    branches/upstream/current-7/modules/simpletest/tests/bootstrap.test
    branches/upstream/current-7/modules/simpletest/tests/common.test
    branches/upstream/current-7/modules/simpletest/tests/common_test.info
    branches/upstream/current-7/modules/simpletest/tests/common_test.module
    branches/upstream/current-7/modules/simpletest/tests/common_test_cron_helper.info
    branches/upstream/current-7/modules/simpletest/tests/database_test.info
    branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
    branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
    branches/upstream/current-7/modules/simpletest/tests/entity_cache_test.info
    branches/upstream/current-7/modules/simpletest/tests/entity_cache_test_dependency.info
    branches/upstream/current-7/modules/simpletest/tests/entity_crud_hook_test.info
    branches/upstream/current-7/modules/simpletest/tests/error_test.info
    branches/upstream/current-7/modules/simpletest/tests/file_test.info
    branches/upstream/current-7/modules/simpletest/tests/filter_test.info
    branches/upstream/current-7/modules/simpletest/tests/form_test.info
    branches/upstream/current-7/modules/simpletest/tests/image_test.info
    branches/upstream/current-7/modules/simpletest/tests/menu_test.info
    branches/upstream/current-7/modules/simpletest/tests/module_test.info
    branches/upstream/current-7/modules/simpletest/tests/path.test
    branches/upstream/current-7/modules/simpletest/tests/requirements1_test.info
    branches/upstream/current-7/modules/simpletest/tests/requirements2_test.info
    branches/upstream/current-7/modules/simpletest/tests/session_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_dependencies_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_test.info
    branches/upstream/current-7/modules/simpletest/tests/system_test.module
    branches/upstream/current-7/modules/simpletest/tests/taxonomy_test.info
    branches/upstream/current-7/modules/simpletest/tests/theme.test
    branches/upstream/current-7/modules/simpletest/tests/theme_test.info
    branches/upstream/current-7/modules/simpletest/tests/update_test_1.info
    branches/upstream/current-7/modules/simpletest/tests/update_test_2.info
    branches/upstream/current-7/modules/simpletest/tests/update_test_3.info
    branches/upstream/current-7/modules/simpletest/tests/upgrade/upgrade.test
    branches/upstream/current-7/modules/simpletest/tests/url_alter_test.info
    branches/upstream/current-7/modules/simpletest/tests/url_alter_test.module
    branches/upstream/current-7/modules/simpletest/tests/xmlrpc_test.info
    branches/upstream/current-7/modules/statistics/statistics.info
    branches/upstream/current-7/modules/statistics/statistics.module
    branches/upstream/current-7/modules/statistics/statistics.test
    branches/upstream/current-7/modules/syslog/syslog.info
    branches/upstream/current-7/modules/system/system.admin.inc
    branches/upstream/current-7/modules/system/system.api.php
    branches/upstream/current-7/modules/system/system.base.css
    branches/upstream/current-7/modules/system/system.info
    branches/upstream/current-7/modules/system/system.install
    branches/upstream/current-7/modules/system/system.test
    branches/upstream/current-7/modules/taxonomy/taxonomy.info
    branches/upstream/current-7/modules/taxonomy/taxonomy.module
    branches/upstream/current-7/modules/taxonomy/taxonomy.pages.inc
    branches/upstream/current-7/modules/toolbar/toolbar.info
    branches/upstream/current-7/modules/tracker/tracker.info
    branches/upstream/current-7/modules/translation/tests/translation_test.info
    branches/upstream/current-7/modules/translation/translation.info
    branches/upstream/current-7/modules/trigger/tests/trigger_test.info
    branches/upstream/current-7/modules/trigger/trigger.info
    branches/upstream/current-7/modules/update/tests/aaa_update_test.info
    branches/upstream/current-7/modules/update/tests/bbb_update_test.info
    branches/upstream/current-7/modules/update/tests/ccc_update_test.info
    branches/upstream/current-7/modules/update/tests/update_test.info
    branches/upstream/current-7/modules/update/update.info
    branches/upstream/current-7/modules/user/tests/user_form_test.info
    branches/upstream/current-7/modules/user/user.info
    branches/upstream/current-7/profiles/minimal/minimal.info
    branches/upstream/current-7/profiles/standard/standard.info
    branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
    branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
    branches/upstream/current-7/profiles/testing/testing.info
    branches/upstream/current-7/themes/bartik/bartik.info
    branches/upstream/current-7/themes/garland/garland.info
    branches/upstream/current-7/themes/seven/seven.info
    branches/upstream/current-7/themes/seven/style.css
    branches/upstream/current-7/themes/stark/stark.info
    branches/upstream/current-7/themes/tests/test_theme/test_theme.info
    branches/upstream/current-7/themes/tests/update_test_basetheme/update_test_basetheme.info
    branches/upstream/current-7/themes/tests/update_test_subtheme/update_test_subtheme.info
    branches/upstream/current-7/update.php

Modified: branches/upstream/current-7/CHANGELOG.txt
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/CHANGELOG.txt?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/CHANGELOG.txt (original)
+++ branches/upstream/current-7/CHANGELOG.txt Mon Dec 26 16:49:44 2011
@@ -1,3 +1,23 @@
+
+Drupal 7.10, 2011-12-05
+----------------------
+- Fixed Content-Language HTTP header to not cause issues with Drush 5.x.
+- Reduce memory usage of theme registry (performance).
+- Fixed PECL upload progress bar for FileField
+- Fixed running update.php doesn't always clear the cache.
+- Fixed PDO exceptions on long titles.
+- Fixed Overlay redirect does not include query string.
+- Fixed D6 modules satisfy D7 module dependencies.
+- Fixed the ordering of module hooks when using module_implements_alter().
+- Fixed "floating" submit buttons during AJAX requests.
+- Fixed timezone selected on install not propogating to admin account.
+- Added msgctx context to JS translation functions, for feature parity with t().
+- Profiles' .install files now available during hook_install_tasks().
+- Added test coverage of 7.0 -> 7.x upgrade path.
+- Numerous notice fixes.
+- Numerous documentation improvements.
+- Additional automated test coverage.
+
 
 Drupal 7.9, 2011-10-26
 ----------------------

Modified: branches/upstream/current-7/MAINTAINERS.txt
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/MAINTAINERS.txt?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/MAINTAINERS.txt (original)
+++ branches/upstream/current-7/MAINTAINERS.txt Mon Dec 26 16:49:44 2011
@@ -1,22 +1,25 @@
 
-Drupal core is maintained by the community.  To participate, go to
-
-  http://drupal.org/contribute
-
-The people listed here have agreed to do more quality assurance work for
-particular areas of Drupal.  All of them are subject to change.
-
+Drupal core is built and maintained by the Drupal project community. Everyone is
+encouraged to submit issues and changes (patches) to improve Drupal, and to
+contribute in other ways -- see http://drupal.org/contribute to find out how.
 
 Branch maintainers
 ------------------
 
-Drupal 7
+The Drupal Core branch maintainers oversee the development of Drupal as a whole.
+The branch mainainers for Drupal 7 are:
+
 - Dries Buytaert 'dries' <http://drupal.org/user/1>
 - Angela Byron 'webchick' <http://drupal.org/user/24967>
 
 
 Component maintainers
 ---------------------
+
+The Drupal Core component maintainers oversee the development of Drupal
+subsystems. See http://drupal.org/contribute/core-maintainers for more
+information on their responsibilities, and to find out how to become a component
+maintainer. Current component maintainers for Drupal 7:
 
 Ajax system
 - Alex Bronstein 'effulgentsia' <http://drupal.org/user/78040>

Modified: branches/upstream/current-7/includes/ajax.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/ajax.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/ajax.inc (original)
+++ branches/upstream/current-7/includes/ajax.inc Mon Dec 26 16:49:44 2011
@@ -262,19 +262,13 @@
     }
   }
 
-  // Settings are handled separately, later in this function, so that changes to
-  // the ajaxPageState setting that occur during drupal_get_css() and
-  // drupal_get_js() get included, and because the jQuery.extend() code produced
-  // by drupal_get_js() for adding settings isn't appropriate during an Ajax
-  // response, because it does not pass TRUE for the "deep" parameter, and
-  // therefore, can clobber existing settings on the page.
+  // Render the HTML to load these files, and add AJAX commands to insert this
+  // HTML in the page. We pass TRUE as the $skip_alter argument to prevent the
+  // data from being altered again, as we already altered it above. Settings are
+  // handled separately, afterwards.
   if (isset($items['js']['settings'])) {
     unset($items['js']['settings']);
   }
-
-  // Render the HTML to load these files, and add Ajax commands to insert this
-  // HTML in the page. We pass TRUE as the $skip_alter argument to prevent the
-  // data from being altered again, as we already altered it above.
   $styles = drupal_get_css($items['css'], TRUE);
   $scripts_footer = drupal_get_js('footer', $items['js'], TRUE);
   $scripts_header = drupal_get_js('header', $items['js'], TRUE);
@@ -293,11 +287,10 @@
     $commands = array_merge($extra_commands, $commands);
   }
 
+  // Now add a command to merge changes and additions to Drupal.settings.
   $scripts = drupal_add_js();
   if (!empty($scripts['settings'])) {
     $settings = $scripts['settings'];
-    // Automatically extract any settings added via drupal_add_js() and make
-    // them the first command.
     array_unshift($commands, ajax_command_settings(call_user_func_array('array_merge_recursive', $settings['data']), TRUE));
   }
 

Modified: branches/upstream/current-7/includes/bootstrap.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/bootstrap.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/bootstrap.inc (original)
+++ branches/upstream/current-7/includes/bootstrap.inc Mon Dec 26 16:49:44 2011
@@ -8,7 +8,7 @@
 /**
  * The current system version.
  */
-define('VERSION', '7.9');
+define('VERSION', '7.10');
 
 /**
  * Core API compatibility.
@@ -191,10 +191,14 @@
 define('LANGUAGE_RTL', 1);
 
 /**
- * For convenience, define a short form of the request time global.
- *
- * REQUEST_TIME is a float with microseconds since PHP 5.4.0, but float
- * timestamps confuses most of the PHP functions (including date_create()).
+ * Time of the current request in seconds elapsed since the Unix Epoch.
+ *
+ * This differs from $_SERVER['REQUEST_TIME'], which is stored as a float
+ * since PHP 5.4.0. Float timestamps confuse most PHP functions
+ * (including date_create()).
+ *
+ * @see http://php.net/manual/reserved.variables.server.php
+ * @see http://php.net/manual/function.time.php
  */
 define('REQUEST_TIME', (int) $_SERVER['REQUEST_TIME']);
 
@@ -828,6 +832,11 @@
   // drupal_static().
   static $files = array(), $dirs = array();
 
+  // Profiles are a special case: they have a fixed location and naming.
+  if ($type == 'profile') {
+    $profile_filename = "profiles/$name/$name.profile";
+    $files[$type][$name] = file_exists($profile_filename) ? $profile_filename : FALSE;
+  }
   if (!isset($files[$type])) {
     $files[$type] = array();
   }
@@ -2498,7 +2507,6 @@
  * Initialize all the defined language types.
  */
 function drupal_language_initialize() {
-  global $language;
   $types = language_types();
 
   // Ensure the language is correctly returned, even without multilanguage
@@ -2518,9 +2526,6 @@
     // environments.
     bootstrap_invoke_all('language_init');
   }
-
-  // Send appropriate HTTP-Header for browsers and search engines.
-  header('Content-Language: ' . $language->language);
 }
 
 /**

Modified: branches/upstream/current-7/includes/common.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/common.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/common.inc (original)
+++ branches/upstream/current-7/includes/common.inc Mon Dec 26 16:49:44 2011
@@ -832,7 +832,7 @@
     // Mark that this request failed. This will trigger a check of the web
     // server's ability to make outgoing HTTP requests the next time that
     // requirements checking is performed.
-    // See system_requirements()
+    // See system_requirements().
     variable_set('drupal_http_request_fails', TRUE);
 
     return $result;
@@ -1331,21 +1331,21 @@
   if (!drupal_validate_utf8($string)) {
     return '';
   }
-  // Store the text format
+  // Store the text format.
   _filter_xss_split($allowed_tags, TRUE);
-  // Remove NULL characters (ignored by some browsers)
+  // Remove NULL characters (ignored by some browsers).
   $string = str_replace(chr(0), '', $string);
-  // Remove Netscape 4 JS entities
+  // Remove Netscape 4 JS entities.
   $string = preg_replace('%&\s*\{[^}]*(\}\s*;?|$)%', '', $string);
 
-  // Defuse all HTML entities
+  // Defuse all HTML entities.
   $string = str_replace('&', '&', $string);
-  // Change back only well-formed entities in our whitelist
-  // Decimal numeric entities
+  // Change back only well-formed entities in our whitelist:
+  // Decimal numeric entities.
   $string = preg_replace('/&#([0-9]+;)/', '&#\1', $string);
-  // Hexadecimal numeric entities
+  // Hexadecimal numeric entities.
   $string = preg_replace('/&#[Xx]0*((?:[0-9A-Fa-f]{2})+;)/', '&#x\1', $string);
-  // Named entities
+  // Named entities.
   $string = preg_replace('/&([A-Za-z][A-Za-z0-9]*;)/', '&\1', $string);
 
   return preg_replace_callback('%
@@ -1384,16 +1384,16 @@
   $string = $m[1];
 
   if (substr($string, 0, 1) != '<') {
-    // We matched a lone ">" character
+    // We matched a lone ">" character.
     return '>';
   }
   elseif (strlen($string) == 1) {
-    // We matched a lone "<" character
+    // We matched a lone "<" character.
     return '<';
   }
 
   if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?|(<!--.*?-->)$%', $string, $matches)) {
-    // Seriously malformed
+    // Seriously malformed.
     return '';
   }
 
@@ -1407,7 +1407,7 @@
   }
 
   if (!isset($allowed_html[strtolower($elem)])) {
-    // Disallowed HTML element
+    // Disallowed HTML element.
     return '';
   }
 
@@ -1423,7 +1423,7 @@
   $attrlist = preg_replace('%(\s?)/\s*$%', '\1', $attrlist, -1, $count);
   $xhtml_slash = $count ? ' /' : '';
 
-  // Clean up attributes
+  // Clean up attributes.
   $attr2 = implode(' ', _filter_xss_attributes($attrlist));
   $attr2 = preg_replace('/[<>]/', '', $attr2);
   $attr2 = strlen($attr2) ? ' ' . $attr2 : '';
@@ -1448,7 +1448,7 @@
 
     switch ($mode) {
       case 0:
-        // Attribute name, href for instance
+        // Attribute name, href for instance.
         if (preg_match('/^([-a-zA-Z]+)/', $attr, $match)) {
           $attrname = strtolower($match[1]);
           $skip = ($attrname == 'style' || substr($attrname, 0, 2) == 'on');
@@ -1458,7 +1458,7 @@
         break;
 
       case 1:
-        // Equals sign or valueless ("selected")
+        // Equals sign or valueless ("selected").
         if (preg_match('/^\s*=\s*/', $attr)) {
           $working = 1; $mode = 2;
           $attr = preg_replace('/^\s*=\s*/', '', $attr);
@@ -1475,7 +1475,7 @@
         break;
 
       case 2:
-        // Attribute value, a URL after href= for instance
+        // Attribute value, a URL after href= for instance.
         if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match)) {
           $thisval = filter_xss_bad_protocol($match[1]);
 
@@ -1512,7 +1512,7 @@
     }
 
     if ($working == 0) {
-      // not well formed, remove and try again
+      // Not well formed; remove and try again.
       $attr = preg_replace('/
         ^
         (
@@ -2465,6 +2465,10 @@
   if (isset($page_callback_result) && is_null(drupal_get_http_header('Content-Type'))) {
     drupal_add_http_header('Content-Type', 'text/html; charset=utf-8');
   }
+
+  // Send appropriate HTTP-Header for browsers and search engines.
+  global $language;
+  drupal_add_http_header('Content-Language', $language->language);
 
   // Menu status constants are integers; page content is a string or array.
   if (is_int($page_callback_result)) {
@@ -5040,7 +5044,7 @@
     foreach ($queues as $queue_name => $info) {
       DrupalQueue::get($queue_name)->createQueue();
     }
-    // Register shutdown callback
+    // Register shutdown callback.
     drupal_register_shutdown_function('drupal_cron_cleanup');
 
     // Iterate through the modules calling their cron handlers (if any):
@@ -5054,7 +5058,7 @@
       }
     }
 
-    // Record cron time
+    // Record cron time.
     variable_set('cron_last', REQUEST_TIME);
     watchdog('cron', 'Cron run completed.', array(), WATCHDOG_NOTICE);
 
@@ -5089,7 +5093,7 @@
   if (variable_get('cron_semaphore', FALSE)) {
     watchdog('cron', 'Cron run exceeded the time limit and was aborted.', array(), WATCHDOG_WARNING);
 
-    // Release cron semaphore
+    // Release cron semaphore.
     variable_del('cron_semaphore');
   }
 }
@@ -5158,14 +5162,14 @@
     $searchdir[] = "profiles/$profile/$directory";
   }
 
-  // Always search sites/all/* as well as the global directories
+  // Always search sites/all/* as well as the global directories.
   $searchdir[] = 'sites/all/' . $directory;
 
   if (file_exists("$config/$directory")) {
     $searchdir[] = "$config/$directory";
   }
 
-  // Get current list of items
+  // Get current list of items.
   if (!function_exists('file_scan_directory')) {
     require_once DRUPAL_ROOT . '/includes/file.inc';
   }
@@ -6417,7 +6421,7 @@
  */
 function drupal_common_theme() {
   return array(
-    // theme.inc
+    // From theme.inc.
     'html' => array(
       'render element' => 'page',
       'template' => 'html',
@@ -6493,7 +6497,7 @@
     'html_tag' => array(
       'render element' => 'element',
     ),
-    // from theme.maintenance.inc
+    // From theme.maintenance.inc.
     'maintenance_page' => array(
       'variables' => array('content' => NULL, 'show_messages' => TRUE),
       'template' => 'maintenance-page',
@@ -6513,7 +6517,7 @@
     'authorize_report' => array(
       'variables' => array('messages' => array()),
     ),
-    // from pager.inc
+    // From pager.inc.
     'pager' => array(
       'variables' => array('tags' => array(), 'element' => 0, 'parameters' => array(), 'quantity' => 9),
     ),
@@ -6532,7 +6536,7 @@
     'pager_link' => array(
       'variables' => array('text' => NULL, 'page_new' => NULL, 'element' => NULL, 'parameters' => array(), 'attributes' => array()),
     ),
-    // from menu.inc
+    // From menu.inc.
     'menu_link' => array(
       'render element' => 'element',
     ),
@@ -6548,7 +6552,7 @@
     'menu_local_tasks' => array(
       'variables' => array('primary' => array(), 'secondary' => array()),
     ),
-    // from form.inc
+    // From form.inc.
     'select' => array(
       'render element' => 'element',
     ),
@@ -7026,19 +7030,19 @@
     )\s*$                           # Stop at the next end of a line, ignoring trailing whitespace
     @msx', $data, $matches, PREG_SET_ORDER)) {
     foreach ($matches as $match) {
-      // Fetch the key and value string
+      // Fetch the key and value string.
       $i = 0;
       foreach (array('key', 'value1', 'value2', 'value3') as $var) {
         $$var = isset($match[++$i]) ? $match[$i] : '';
       }
       $value = stripslashes(substr($value1, 1, -1)) . stripslashes(substr($value2, 1, -1)) . $value3;
 
-      // Parse array syntax
+      // Parse array syntax.
       $keys = preg_split('/\]?\[/', rtrim($key, ']'));
       $last = array_pop($keys);
       $parent = &$info;
 
-      // Create nested arrays
+      // Create nested arrays.
       foreach ($keys as $key) {
         if ($key == '') {
           $key = count($parent);
@@ -7054,7 +7058,7 @@
         $value = $constants[$value];
       }
 
-      // Insert actual value
+      // Insert actual value.
       if ($last == '') {
         $last = count($parent);
       }

Modified: branches/upstream/current-7/includes/install.core.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/install.core.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/install.core.inc (original)
+++ branches/upstream/current-7/includes/install.core.inc Mon Dec 26 16:49:44 2011
@@ -570,6 +570,12 @@
 
   // Now add any tasks defined by the installation profile.
   if (!empty($install_state['parameters']['profile'])) {
+    // Load the profile install file, because it is not always loaded when
+    // hook_install_tasks() is invoked (e.g. batch processing).
+    $profile_install_file = DRUPAL_ROOT . '/profiles/' . $install_state['parameters']['profile'] . '/' . $install_state['parameters']['profile'] . '.install';
+    if (file_exists($profile_install_file)) {
+      include_once $profile_install_file;
+    }
     $function = $install_state['parameters']['profile'] . '_install_tasks';
     if (function_exists($function)) {
       $result = $function($install_state);
@@ -595,7 +601,7 @@
   // Allow the installation profile to modify the full list of tasks.
   if (!empty($install_state['parameters']['profile'])) {
     $profile_file = DRUPAL_ROOT . '/profiles/' . $install_state['parameters']['profile'] . '/' . $install_state['parameters']['profile'] . '.profile';
-    if (is_file($profile_file)) {
+    if (file_exists($profile_file)) {
       include_once $profile_file;
       $function = $install_state['parameters']['profile'] . '_install_tasks_alter';
       if (function_exists($function)) {
@@ -710,8 +716,10 @@
  *
  * @return
  *   A themed status report, or an exception if there are requirement errors.
- *   Otherwise, no output is returned, so that the next task can be run
- *   in the same page request.
+ *   If there are only requirement warnings, a themed status report is shown
+ *   initially, but the user is allowed to bypass it by providing 'continue=1'
+ *   in the URL. Otherwise, no output is returned, so that the next task can be
+ *   run in the same page request.
  */
 function install_verify_requirements(&$install_state) {
   // Check the installation requirements for Drupal and this profile.
@@ -723,22 +731,30 @@
   // Check the severity of the requirements reported.
   $severity = drupal_requirements_severity($requirements);
 
-  if ($severity == REQUIREMENT_ERROR) {
+  // If there are errors, always display them. If there are only warnings, skip
+  // them if the user has provided a URL parameter acknowledging the warnings
+  // and indicating a desire to continue anyway. See drupal_requirements_url().
+  if ($severity == REQUIREMENT_ERROR || ($severity == REQUIREMENT_WARNING && empty($install_state['parameters']['continue']))) {
     if ($install_state['interactive']) {
       drupal_set_title(st('Requirements problem'));
       $status_report = theme('status_report', array('requirements' => $requirements));
-      $status_report .= st('Check the error messages and <a href="!url">proceed with the installation</a>.', array('!url' => check_url(request_uri())));
+      $status_report .= st('Check the error messages and <a href="!url">proceed with the installation</a>.', array('!url' => check_url(drupal_requirements_url($severity))));
       return $status_report;
     }
     else {
-      // Throw an exception showing all unmet requirements.
+      // Throw an exception showing any unmet requirements.
       $failures = array();
       foreach ($requirements as $requirement) {
+        // Skip warnings altogether for non-interactive installations; these
+        // proceed in a single request so there is no good opportunity (and no
+        // good method) to warn the user anyway.
         if (isset($requirement['severity']) && $requirement['severity'] == REQUIREMENT_ERROR) {
           $failures[] = $requirement['title'] . ': ' . $requirement['value'] . "\n\n" . $requirement['description'];
         }
       }
-      throw new Exception(implode("\n\n", $failures));
+      if (!empty($failures)) {
+        throw new Exception(implode("\n\n", $failures));
+      }
     }
   }
 }
@@ -1290,7 +1306,7 @@
  */
 function install_load_profile(&$install_state) {
   $profile_file = DRUPAL_ROOT . '/profiles/' . $install_state['parameters']['profile'] . '/' . $install_state['parameters']['profile'] . '.profile';
-  if (is_file($profile_file)) {
+  if (file_exists($profile_file)) {
     include_once $profile_file;
     $install_state['profile_info'] = install_profile_info($install_state['parameters']['profile'], $install_state['parameters']['locale']);
   }
@@ -1408,13 +1424,6 @@
  *   The form API definition for the site configuration form.
  */
 function install_configure_form($form, &$form_state, &$install_state) {
-  if (variable_get('site_name', FALSE) || variable_get('site_mail', FALSE)) {
-    // Site already configured: This should never happen, means re-running the
-    // installer, possibly by an attacker after the 'install_task' variable got
-    // accidentally blown somewhere. Stop it now.
-    throw new Exception(install_already_done_error());
-  }
-
   drupal_set_title(st('Configure site'));
 
   // Warn about settings.php permissions risk
@@ -1816,7 +1825,7 @@
 
   // We precreated user 1 with placeholder values. Let's save the real values.
   $account = user_load(1);
-  $merge_data = array('init' => $form_state['values']['account']['mail'], 'roles' => !empty($account->roles) ? $account->roles : array(), 'status' => 1);
+  $merge_data = array('init' => $form_state['values']['account']['mail'], 'roles' => !empty($account->roles) ? $account->roles : array(), 'status' => 1, 'timezone' => $form_state['values']['date_default_timezone']);
   user_save($account, array_merge($form_state['values']['account'], $merge_data));
   // Load global $user and perform final login tasks.
   $user = user_load(1);

Modified: branches/upstream/current-7/includes/install.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/install.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/install.inc (original)
+++ branches/upstream/current-7/includes/install.inc Mon Dec 26 16:49:44 2011
@@ -999,7 +999,6 @@
   }
 }
 
-
 /**
  * Send the user to a different installer page.
  *
@@ -1014,6 +1013,68 @@
   header('Location: ' . $base_url . '/' . $path);
   header('Cache-Control: no-cache'); // Not a permanent redirect.
   drupal_exit();
+}
+
+/**
+ * Returns the URL of the current script, with modified query parameters.
+ *
+ * This function can be called by low-level scripts (such as install.php and
+ * update.php) and returns the URL of the current script. Existing query
+ * parameters are preserved by default, but new ones can optionally be merged
+ * in.
+ *
+ * This function is used when the script must maintain certain query parameters
+ * over multiple page requests in order to work correctly. In such cases (for
+ * example, update.php, which requires the 'continue=1' parameter to remain in
+ * the URL throughout the update process if there are any requirement warnings
+ * that need to be bypassed), using this function to generate the URL for links
+ * to the next steps of the script ensures that the links will work correctly.
+ *
+ * @param $query
+ *   (optional) An array of query parameters to merge in to the existing ones.
+ *
+ * @return
+ *   The URL of the current script, with query parameters modified by the
+ *   passed-in $query. The URL is not sanitized, so it still needs to be run
+ *   through check_url() if it will be used as an HTML attribute value.
+ *
+ * @see drupal_requirements_url()
+ */
+function drupal_current_script_url($query = array()) {
+  $uri = $_SERVER['SCRIPT_NAME'];
+  $query = array_merge(drupal_get_query_parameters(), $query);
+  if (!empty($query)) {
+    $uri .= '?' . drupal_http_build_query($query);
+  }
+  return $uri;
+}
+
+/**
+ * Returns a URL for proceeding to the next page after a requirements problem.
+ *
+ * This function can be called by low-level scripts (such as install.php and
+ * update.php) and returns a URL that can be used to attempt to proceed to the
+ * next step of the script.
+ *
+ * @param $severity
+ *   The severity of the requirements problem, as returned by
+ *   drupal_requirements_severity().
+ *
+ * @return
+ *   A URL for attempting to proceed to the next step of the script. The URL is
+ *   not sanitized, so it still needs to be run through check_url() if it will
+ *   be used as an HTML attribute value.
+ *
+ * @see drupal_current_script_url()
+ */
+function drupal_requirements_url($severity) {
+  $query = array();
+  // If there are no errors, only warnings, append 'continue=1' to the URL so
+  // the user can bypass this screen on the next page load.
+  if ($severity == REQUIREMENT_WARNING) {
+    $query['continue'] = 1;
+  }
+  return drupal_current_script_url($query);
 }
 
 /**

Modified: branches/upstream/current-7/includes/iso.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/iso.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/iso.inc (original)
+++ branches/upstream/current-7/includes/iso.inc Mon Dec 26 16:49:44 2011
@@ -74,6 +74,7 @@
     'CO' => $t('Colombia'),
     'CR' => $t('Costa Rica'),
     'CU' => $t('Cuba'),
+    'CW' => $t('Curaçao'),
     'CV' => $t('Cape Verde'),
     'CX' => $t('Christmas Island'),
     'CY' => $t('Cyprus'),

Modified: branches/upstream/current-7/includes/locale.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/locale.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/locale.inc (original)
+++ branches/upstream/current-7/includes/locale.inc Mon Dec 26 16:49:44 2011
@@ -41,6 +41,36 @@
  * Regular expression pattern used to localize JavaScript strings.
  */
 define('LOCALE_JS_STRING', '(?:(?:\'(?:\\\\\'|[^\'])*\'|"(?:\\\\"|[^"])*")(?:\s*\+\s*)?)+');
+
+/**
+ * Regular expression pattern used to match simple JS object literal.
+ *
+ * This pattern matches a basic JS object, but will fail on an object with
+ * nested objects. Used in JS file parsing for string arg processing.
+ */
+define('LOCALE_JS_OBJECT', '\{.*?\}');
+
+/**
+ * Regular expression to match an object containing a key 'context'.
+ *
+ * Pattern to match a JS object containing a 'context key' with a string value,
+ * which is captured. Will fail if there are nested objects.
+ */
+define('LOCALE_JS_OBJECT_CONTEXT', '
+  \{              # match object literal start
+  .*?             # match anything, non-greedy
+  (?:             # match a form of "context"
+    \'context\'
+    |
+    "context"
+    |
+    context
+  )
+  \s*:\s*         # match key-value separator ":"
+  (' . LOCALE_JS_STRING . ')  # match context string
+  .*?             # match anything, non-greedy
+  \}              # match end of object literal
+');
 
 /**
  * Translation import mode overwriting all existing translations
@@ -1447,6 +1477,9 @@
     [^\w]Drupal\s*\.\s*t\s*                       # match "Drupal.t" with whitespace
     \(\s*                                         # match "(" argument list start
     (' . LOCALE_JS_STRING . ')\s*                 # capture string argument
+    (?:,\s*' . LOCALE_JS_OBJECT . '\s*            # optionally capture str args
+      (?:,\s*' . LOCALE_JS_OBJECT_CONTEXT . '\s*) # optionally capture context
+    ?)?                                           # close optional args
     [,\)]                                         # match ")" or "," to finish
     ~sx', $file, $t_matches);
 
@@ -1474,54 +1507,72 @@
         (?:\s*\+\s*)?             # match "+" with possible whitespace, for str concat
       )+                          # match multiple because we supports concatenating strs
     )\s*                          # end capturing of plural string argument
+    (?:,\s*' . LOCALE_JS_OBJECT . '\s*          # optionally capture string args
+      (?:,\s*' . LOCALE_JS_OBJECT_CONTEXT . '\s*)?  # optionally capture context
+    )?
     [,\)]
     ~sx', $file, $plural_matches);
 
-
-  // Loop through all matches and process them.
-  $all_matches = array_merge($plural_matches[1], $t_matches[1]);
-  foreach ($all_matches as $key => $string) {
-    $strings = array($string);
+  $matches = array();
+
+  // Add strings from Drupal.t().
+  foreach ($t_matches[1] as $key => $string) {
+    $matches[] = array(
+      'string'  => $string,
+      'context' => $t_matches[2][$key],
+    );
+  }
+
+  // Add string from Drupal.formatPlural().
+  foreach ($plural_matches[1] as $key => $string) {
+    $matches[] = array(
+      'string'  => $string,
+      'context' => $plural_matches[3][$key],
+    );
 
     // If there is also a plural version of this string, add it to the strings array.
     if (isset($plural_matches[2][$key])) {
-      $strings[] = $plural_matches[2][$key];
-    }
-
-    foreach ($strings as $key => $string) {
-      // Remove the quotes and string concatenations from the string.
-      $string = implode('', preg_split('~(?<!\\\\)[\'"]\s*\+\s*[\'"]~s', substr($string, 1, -1)));
-
-      $source = db_query("SELECT lid, location FROM {locales_source} WHERE source = :source AND textgroup = 'default'", array(':source' => $string))->fetchObject();
-      if ($source) {
-        // We already have this source string and now have to add the location
-        // to the location column, if this file is not yet present in there.
-        $locations = preg_split('~\s*;\s*~', $source->location);
-
-        if (!in_array($filepath, $locations)) {
-          $locations[] = $filepath;
-          $locations = implode('; ', $locations);
-
-          // Save the new locations string to the database.
-          db_update('locales_source')
-            ->fields(array(
-              'location' => $locations,
-            ))
-            ->condition('lid', $source->lid)
-            ->execute();
-        }
-      }
-      else {
-        // We don't have the source string yet, thus we insert it into the database.
-        db_insert('locales_source')
+      $matches[] = array(
+        'string'  => $plural_matches[2][$key],
+        'context' => $plural_matches[3][$key],
+      );
+    }
+  }
+
+  foreach ($matches as $key => $match) {
+    // Remove the quotes and string concatenations from the string.
+    $string = implode('', preg_split('~(?<!\\\\)[\'"]\s*\+\s*[\'"]~s', substr($match['string'], 1, -1)));
+    $context = implode('', preg_split('~(?<!\\\\)[\'"]\s*\+\s*[\'"]~s', substr($match['context'], 1, -1)));
+
+    $source = db_query("SELECT lid, location FROM {locales_source} WHERE source = :source AND context = :context AND textgroup = 'default'", array(':source' => $string, ':context' => $context))->fetchObject();
+    if ($source) {
+      // We already have this source string and now have to add the location
+      // to the location column, if this file is not yet present in there.
+      $locations = preg_split('~\s*;\s*~', $source->location);
+
+      if (!in_array($filepath, $locations)) {
+        $locations[] = $filepath;
+        $locations = implode('; ', $locations);
+
+        // Save the new locations string to the database.
+        db_update('locales_source')
           ->fields(array(
-            'location' => $filepath,
-            'source' => $string,
-            'context' => '',
-            'textgroup' => 'default',
+            'location' => $locations,
           ))
+          ->condition('lid', $source->lid)
           ->execute();
       }
+    }
+    else {
+      // We don't have the source string yet, thus we insert it into the database.
+      db_insert('locales_source')
+        ->fields(array(
+          'location' => $filepath,
+          'source' => $string,
+          'context' => $context,
+          'textgroup' => 'default',
+        ))
+        ->execute();
     }
   }
 }
@@ -1942,11 +1993,11 @@
 
   // Construct the array for JavaScript translations.
   // Only add strings with a translation to the translations array.
-  $result = db_query("SELECT s.lid, s.source, t.translation FROM {locales_source} s INNER JOIN {locales_target} t ON s.lid = t.lid AND t.language = :language WHERE s.location LIKE '%.js%' AND s.textgroup = :textgroup", array(':language' => $language->language, ':textgroup' => 'default'));
+  $result = db_query("SELECT s.lid, s.source, s.context, t.translation FROM {locales_source} s INNER JOIN {locales_target} t ON s.lid = t.lid AND t.language = :language WHERE s.location LIKE '%.js%' AND s.textgroup = :textgroup", array(':language' => $language->language, ':textgroup' => 'default'));
 
   $translations = array();
   foreach ($result as $data) {
-    $translations[$data->source] = $data->translation;
+    $translations[$data->context][$data->source] = $data->translation;
   }
 
   // Construct the JavaScript file, if there are translations.

Modified: branches/upstream/current-7/includes/module.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/module.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/module.inc (original)
+++ branches/upstream/current-7/includes/module.inc Mon Dec 26 16:49:44 2011
@@ -952,10 +952,24 @@
       }
       // If any modules implement one of the extra hooks that do not implement
       // the primary hook, we need to add them to the $modules array in their
-      // appropriate order.
+      // appropriate order. module_implements() can only return ordered
+      // implementations of a single hook. To get the ordered implementations
+      // of multiple hooks, we mimic the module_implements() logic of first
+      // ordering by module_list(), and then calling
+      // drupal_alter('module_implements').
       if (array_diff($extra_modules, $modules)) {
-        // Order the modules by the order returned by module_list().
+        // Merge the arrays and order by module_list().
         $modules = array_intersect(module_list(), array_merge($modules, $extra_modules));
+        // Since module_implements() already took care of loading the necessary
+        // include files, we can safely pass FALSE for the array values.
+        $implementations = array_fill_keys($modules, FALSE);
+        // Let modules adjust the order solely based on the primary hook. This
+        // ensures the same module order regardless of whether this if block
+        // runs. Calling drupal_alter() recursively in this way does not result
+        // in an infinite loop, because this call is for a single $type, so we
+        // won't end up in this code block again.
+        drupal_alter('module_implements', $implementations, $hook);
+        $modules = array_keys($implementations);
       }
       foreach ($modules as $module) {
         // Since $modules is a merged array, for any given module, we do not

Modified: branches/upstream/current-7/includes/path.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/path.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/path.inc (original)
+++ branches/upstream/current-7/includes/path.inc Mon Dec 26 16:49:44 2011
@@ -13,12 +13,12 @@
  * Initialize the $_GET['q'] variable to the proper normal path.
  */
 function drupal_path_initialize() {
-  if (!empty($_GET['q'])) {
-    $_GET['q'] = drupal_get_normal_path($_GET['q']);
-  }
-  else {
-    $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
-  }
+  // Ensure $_GET['q'] is set before calling drupal_normal_path(), to support
+  // path caching with hook_url_inbound_alter().
+  if (empty($_GET['q'])) {
+    $_GET['q'] = variable_get('site_frontpage', 'node');
+  }
+  $_GET['q'] = drupal_get_normal_path($_GET['q']);
 }
 
 /**

Modified: branches/upstream/current-7/includes/theme.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/theme.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/theme.inc (original)
+++ branches/upstream/current-7/includes/theme.inc Mon Dec 26 16:49:44 2011
@@ -237,18 +237,33 @@
 /**
  * Get the theme registry.
  *
+ * @param $complete
+ *   Optional boolean to indicate whether to return the complete theme registry
+ *   array or an instance of the ThemeRegistry class. If TRUE, the complete
+ *   theme registry array will be returned. This is useful if you want to
+ *   foreach over the whole registry, use array_* functions or inspect it in a
+ *   debugger. If FALSE, an instance of the ThemeRegistry class will be
+ *   returned, this provides an ArrayObject which allows it to be accessed
+ *   with array syntax and  isset(), and should be more lightweight
+ *   than the full registry. Defaults to TRUE.
+ *
  * @return
- *   The theme registry array if it has been stored in memory, NULL otherwise.
- */
-function theme_get_registry() {
-  static $theme_registry = NULL;
-
-  if (!isset($theme_registry)) {
+ *   The complete theme registry array, or an instance of the ThemeRegistry
+ *   class.
+ */
+function theme_get_registry($complete = TRUE) {
+  static $theme_registry = array();
+  $key = (int) $complete;
+
+  if (!isset($theme_registry[$key])) {
     list($callback, $arguments) = _theme_registry_callback();
-    $theme_registry = call_user_func_array($callback, $arguments);
-  }
-
-  return $theme_registry;
+    if (!$complete) {
+      $arguments[] = FALSE;
+    }
+    $theme_registry[$key] = call_user_func_array($callback, $arguments);
+  }
+
+  return $theme_registry[$key];
 }
 
 /**
@@ -268,7 +283,7 @@
 }
 
 /**
- * Get the theme_registry cache from the database; if it doesn't exist, build it.
+ * Get the theme_registry cache; if it doesn't exist, build it.
  *
  * @param $theme
  *   The loaded $theme object as returned by list_themes().
@@ -277,23 +292,34 @@
  *   oldest first order.
  * @param $theme_engine
  *   The name of the theme engine.
- */
-function _theme_load_registry($theme, $base_theme = NULL, $theme_engine = NULL) {
-  // Check the theme registry cache; if it exists, use it.
-  $cache = cache_get("theme_registry:$theme->name", 'cache');
-  if (isset($cache->data)) {
-    $registry = $cache->data;
+ * @param $complete
+ *   Whether to load the complete theme registry or an instance of the
+ *   ThemeRegistry class.
+ *
+ * @return
+ *   The theme registry array, or an instance of the ThemeRegistry class.
+ */
+function _theme_load_registry($theme, $base_theme = NULL, $theme_engine = NULL, $complete = TRUE) {
+  if ($complete) {
+    // Check the theme registry cache; if it exists, use it.
+    $cached = cache_get("theme_registry:$theme->name");
+    if (isset($cached->data)) {
+      $registry = $cached->data;
+    }
+    else {
+      // If not, build one and cache it.
+      $registry = _theme_build_registry($theme, $base_theme, $theme_engine);
+      // Only persist this registry if all modules are loaded. This assures a
+      // complete set of theme hooks.
+      if (module_load_all(NULL)) {
+        _theme_save_registry($theme, $registry);
+      }
+    }
+    return $registry;
   }
   else {
-    // If not, build one and cache it.
-    $registry = _theme_build_registry($theme, $base_theme, $theme_engine);
-   // Only persist this registry if all modules are loaded. This assures a
-   // complete set of theme hooks.
-    if (module_load_all(NULL)) {
-      _theme_save_registry($theme, $registry);
-    }
-  }
-  return $registry;
+    return new ThemeRegistry('theme_registry:runtime:' . $theme->name, 'cache');
+  }
 }
 
 /**
@@ -310,6 +336,104 @@
  */
 function drupal_theme_rebuild() {
   cache_clear_all('theme_registry', 'cache', TRUE);
+}
+
+/**
+ * Builds the run-time theme registry.
+ *
+ * Extends DrupalCacheArray to allow the theme registry to be accessed as a
+ * complete registry, while internally caching only the parts of the registry
+ * that are actually in use on the site. On cache misses the complete
+ * theme registry is loaded and used to update the run-time cache.
+ */
+class ThemeRegistry Extends DrupalCacheArray {
+
+  /**
+   * Whether the partial registry can be persisted to the cache.
+   *
+   * This is only allowed if all modules and the request method is GET. theme()
+   * should be very rarely called on POST requests and this avoids polluting
+   * the runtime cache.
+   */
+  protected $persistable;
+
+  /**
+   * The complete theme registry array.
+   */
+  protected $completeRegistry;
+
+  function __construct($cid, $bin) {
+    $this->cid = $cid;
+    $this->bin = $bin;
+    $this->persistable = module_load_all(NULL) && $_SERVER['REQUEST_METHOD'] == 'GET';
+
+    $data = array();
+    if ($this->persistable && $cached = cache_get($this->cid, $this->bin)) {
+      $data = $cached->data;
+    }
+    else {
+      $complete_registry = theme_get_registry();
+      if ($this->persistable) {
+        // If there is no runtime cache stored, fetch the full theme registry,
+        // but then initialize each value to NULL. This allows
+        // offsetExists() to function correctly on non-registered theme hooks
+        // without triggering a call to resolveCacheMiss().
+        $data = array_fill_keys(array_keys($complete_registry), NULL);
+        $this->set($this->cid, $data, $this->bin);
+        $this->completeRegistry = $complete_registry;
+      }
+      else {
+        $data = $complete_registry;
+      }
+    }
+    $this->storage = $data;
+  }
+
+  public function offsetExists($offset) {
+    // Since the theme registry allows for theme hooks to be requested that
+    // are not registered, just check the existence of the key in the registry.
+    // Use array_key_exists() here since a NULL value indicates that the theme
+    // hook exists but has not yet been requested.
+    return array_key_exists($offset, $this->storage);
+  }
+
+  public function offsetGet($offset) {
+    // If the offset is set but empty, it is a registered theme hook that has
+    // not yet been requested. Offsets that do not exist at all were not
+    // registered in hook_theme().
+    if (isset($this->storage[$offset])) {
+      return $this->storage[$offset];
+    }
+    elseif (array_key_exists($offset, $this->storage)) {
+      return $this->resolveCacheMiss($offset);
+    }
+  }
+
+  public function resolveCacheMiss($offset) {
+    if (!isset($this->completeRegistry)) {
+      $this->completeRegistry = theme_get_registry();
+    }
+    $this->storage[$offset] = $this->completeRegistry[$offset];
+    if ($this->persistable) {
+      $this->persist($offset);
+    }
+    return $this->storage[$offset];
+  }
+
+  public function set($cid, $data, $bin, $lock = TRUE) {
+    $lock_name = $cid . ':' . $bin;
+    if (!$lock || lock_acquire($lock_name)) {
+      if ($cached = cache_get($cid, $this->bin)) {
+        // Use array merge instead of union so that filled in values in $data
+        // overwrite empty values in the current cache.
+        $data = array_merge($cached->data, $data);
+      }
+      cache_set($cid, $data, $bin);
+      if ($lock) {
+        lock_release($lock_name);
+      }
+    }
+  }
 }
 
 /**
@@ -771,7 +895,7 @@
 
   if (!isset($hooks)) {
     drupal_theme_initialize();
-    $hooks = theme_get_registry();
+    $hooks = theme_get_registry(FALSE);
   }
 
   // If an array of hook candidates were passed, use the first one that has an

Modified: branches/upstream/current-7/includes/utility.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/includes/utility.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/includes/utility.inc (original)
+++ branches/upstream/current-7/includes/utility.inc Mon Dec 26 16:49:44 2011
@@ -46,6 +46,13 @@
       $output = "'" . $var . "'";
     }
   }
+  elseif (is_object($var) && get_class($var) === 'stdClass') {
+    // var_export() will export stdClass objects using an undefined
+    // magic method __set_state() leaving the export broken. This
+    // workaround avoids this by casting the object as an array for
+    // export and casting it back to an object when evaluated.
+    $output .= '(object) ' . drupal_var_export((array) $var, $prefix);
+  }
   else {
     $output = var_export($var, TRUE);
   }

Modified: branches/upstream/current-7/misc/authorize.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/misc/authorize.js?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/misc/authorize.js (original)
+++ branches/upstream/current-7/misc/authorize.js Mon Dec 26 16:49:44 2011
@@ -16,7 +16,6 @@
 
     // Removes the float on the select box (used for non-JS interface).
     if ($('.connection-settings-update-filetransfer-default-wrapper').length > 0) {
-      console.log($('.connection-settings-update-filetransfer-default-wrapper'));
       $('.connection-settings-update-filetransfer-default-wrapper').css('float', 'none');
     }
     // Hides the submit button for non-js users.

Modified: branches/upstream/current-7/misc/drupal.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/misc/drupal.js?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/misc/drupal.js (original)
+++ branches/upstream/current-7/misc/drupal.js Mon Dec 26 16:49:44 2011
@@ -177,13 +177,21 @@
  *   An object of replacements pairs to make after translation. Incidences
  *   of any key in this array are replaced with the corresponding value.
  *   See Drupal.formatString().
+ *
+ * @param options
+ *   - 'context' (defaults to the empty context): The context the source string
+ *     belongs to.
+ *
  * @return
  *   The translated string.
  */
-Drupal.t = function (str, args) {
+Drupal.t = function (str, args, options) {
+  options = options || {};
+  options.context = options.context || '';
+
   // Fetch the localized version of the string.
-  if (Drupal.locale.strings && Drupal.locale.strings[str]) {
-    str = Drupal.locale.strings[str];
+  if (Drupal.locale.strings && Drupal.locale.strings[options.context] && Drupal.locale.strings[options.context][str]) {
+    str = Drupal.locale.strings[options.context][str];
   }
 
   if (args) {
@@ -216,25 +224,27 @@
  *   See Drupal.formatString().
  *   Note that you do not need to include @count in this array.
  *   This replacement is done automatically for the plural case.
+ * @param options
+ *   The options to pass to the Drupal.t() function.
  * @return
  *   A translated string.
  */
-Drupal.formatPlural = function (count, singular, plural, args) {
+Drupal.formatPlural = function (count, singular, plural, args, options) {
   var args = args || {};
   args['@count'] = count;
   // Determine the index of the plural form.
   var index = Drupal.locale.pluralFormula ? Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] == 1) ? 0 : 1);
 
   if (index == 0) {
-    return Drupal.t(singular, args);
+    return Drupal.t(singular, args, options);
   }
   else if (index == 1) {
-    return Drupal.t(plural, args);
+    return Drupal.t(plural, args, options);
   }
   else {
     args['@count[' + index + ']'] = args['@count'];
     delete args['@count'];
-    return Drupal.t(plural.replace('@count', '@count[' + index + ']'), args);
+    return Drupal.t(plural.replace('@count', '@count[' + index + ']'), args, options);
   }
 };
 

Modified: branches/upstream/current-7/modules/aggregator/aggregator.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/aggregator/aggregator.api.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/aggregator/aggregator.api.php (original)
+++ branches/upstream/current-7/modules/aggregator/aggregator.api.php Mon Dec 26 16:49:44 2011
@@ -76,33 +76,29 @@
  * finally, it is passed to all active processors which manipulate or store the
  * data.
  *
- * Modules that define this hook can be set as active parser on
+ * Modules that define this hook can be set as the active parser on
  * admin/config/services/aggregator. Only one parser can be active at a time.
  *
  * @param $feed
- *   The $feed object that describes the resource to be parsed.
- *   $feed->source_string contains the raw feed data as a string. Parse data
- *   from $feed->source_string and expose it to other modules as an array of
- *   data items on $feed->items.
- *
- *   Feed format:
- *   - $feed->description (string) - description of the feed
- *   - $feed->image (string) - image for the feed
- *   - $feed->etag (string) - value of feed's entity tag header field
- *   - $feed->modified (UNIX timestamp) - value of feed's last modified header
- *     field
- *   - $feed->items (Array) - array of feed items.
- *
- *   By convention, the common format for a single feed item is:
- *   $item[key-name] = value;
- *
- *   Recognized keys:
- *   TITLE (string) - the title of a feed item
- *   DESCRIPTION (string) - the description (body text) of a feed item
- *   TIMESTAMP (UNIX timestamp) - the feed item's published time as UNIX timestamp
- *   AUTHOR (string) - the feed item's author
- *   GUID (string) - RSS/Atom global unique identifier
- *   LINK (string) - the feed item's URL
+ *   An object describing the resource to be parsed: $feed->source_string
+ *   contains the raw feed data. The hook implementation should parse this data
+ *   and add the following properties to the $feed object:
+ *   - description: The human-readable description of the feed.
+ *   - link: A full URL that directly relates to the feed.
+ *   - image: An image URL used to display an image of the feed.
+ *   - etag: An entity tag from the HTTP header used for cache validation to
+ *     determine if the content has been changed.
+ *   - modified: The UNIX timestamp when the feed was last modified.
+ *   - items: An array of feed items. The common format for a single feed item
+ *     is an associative array containing:
+ *     - title: The human-readable title of the feed item.
+ *     - description: The full body text of the item or a summary.
+ *     - timestamp: The UNIX timestamp when the feed item was last published.
+ *     - author: The author of the feed item.
+ *     - guid: The global unique identifier (GUID) string that uniquely
+ *       identifies the item. If not available, the link is used to identify
+ *       the item.
+ *     - link: A full URL to the individual feed item.
  *
  * @return
  *   TRUE if parsing was successful, FALSE otherwise.

Modified: branches/upstream/current-7/modules/aggregator/aggregator.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/aggregator/aggregator.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/aggregator/aggregator.info (original)
+++ branches/upstream/current-7/modules/aggregator/aggregator.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 configure = admin/config/services/aggregator/settings
 stylesheets[all][] = aggregator.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/aggregator/tests/aggregator_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/aggregator/tests/aggregator_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/aggregator/tests/aggregator_test.info (original)
+++ branches/upstream/current-7/modules/aggregator/tests/aggregator_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/block/block.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/block/block.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/block/block.info (original)
+++ branches/upstream/current-7/modules/block/block.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = block.test
 configure = admin/structure/block
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/block/block.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/block/block.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/block/block.test (original)
+++ branches/upstream/current-7/modules/block/block.test Mon Dec 26 16:49:44 2011
@@ -751,3 +751,39 @@
     $this->assertEqual($variables2['theme_hook_suggestions'], array('block__footer', 'block__block', 'block__block__hyphen_test'), t('Hyphens (-) in block delta were replaced by underscore (_)'));
   }
 }
+
+/**
+ * Tests that hidden regions do not inherit blocks when a theme is enabled.
+ */
+class BlockHiddenRegionTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Blocks not in hidden region',
+      'description' => 'Checks that a newly enabled theme does not inherit blocks to its hidden regions.',
+      'group' => 'Block',
+    );
+  }
+
+  /**
+   * Tests that hidden regions do not inherit blocks when a theme is enabled.
+   */
+  function testBlockNotInHiddenRegion() {
+    // Create administrative user.
+    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer themes', 'search content'));
+    $this->drupalLogin($admin_user);
+
+    // Enable "block_test_theme" and set it as the default theme.
+    $theme = 'block_test_theme';
+    theme_enable(array($theme));
+    variable_set('theme_default', $theme);
+    menu_rebuild();
+
+    // Ensure that "block_test_theme" is set as the default theme.
+    $this->drupalGet('admin/structure/block');
+    $this->assertText('Block test theme(' . t('active tab') . ')', t('Default local task on blocks admin page is the block test theme.'));
+
+    // Ensure that the search form block is displayed.
+    $this->drupalGet('');
+    $this->assertText('Search form', t('Block was displayed on the front page.'));
+  }
+}

Modified: branches/upstream/current-7/modules/block/tests/block_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/block/tests/block_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/block/tests/block_test.info (original)
+++ branches/upstream/current-7/modules/block/tests/block_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/blog/blog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/blog/blog.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/blog/blog.info (original)
+++ branches/upstream/current-7/modules/blog/blog.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = blog.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/book/book.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/book/book.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/book/book.info (original)
+++ branches/upstream/current-7/modules/book/book.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 configure = admin/content/book/settings
 stylesheets[all][] = book.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/color/color.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/color/color.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/color/color.info (original)
+++ branches/upstream/current-7/modules/color/color.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = color.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/comment/comment.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/comment/comment.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/comment/comment.info (original)
+++ branches/upstream/current-7/modules/comment/comment.info Mon Dec 26 16:49:44 2011
@@ -9,8 +9,8 @@
 configure = admin/content/comment
 stylesheets[all][] = comment.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/contact/contact.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contact/contact.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contact/contact.info (original)
+++ branches/upstream/current-7/modules/contact/contact.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = contact.test
 configure = admin/structure/contact
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/contextual/contextual-rtl.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contextual/contextual-rtl.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contextual/contextual-rtl.css (original)
+++ branches/upstream/current-7/modules/contextual/contextual-rtl.css Mon Dec 26 16:49:44 2011
@@ -1,3 +1,7 @@
+/**
+ * @file
+ * Stylesheet specific to right-to-left languages.
+ */
 
 div.contextual-links-wrapper {
   left: 5px;

Modified: branches/upstream/current-7/modules/contextual/contextual.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contextual/contextual.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contextual/contextual.css (original)
+++ branches/upstream/current-7/modules/contextual/contextual.css Mon Dec 26 16:49:44 2011
@@ -1,3 +1,7 @@
+/**
+ * @file
+ * Stylesheet for the Contextual module.
+ */
 
 /**
  * Contextual links regions.

Modified: branches/upstream/current-7/modules/contextual/contextual.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contextual/contextual.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contextual/contextual.info (original)
+++ branches/upstream/current-7/modules/contextual/contextual.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 version = VERSION
 core = 7.x
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/contextual/contextual.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contextual/contextual.js?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contextual/contextual.js (original)
+++ branches/upstream/current-7/modules/contextual/contextual.js Mon Dec 26 16:49:44 2011
@@ -1,9 +1,14 @@
+/**
+ * @file
+ * Attaches behaviors for the Contextual module.
+ */
+
 (function ($) {
 
 Drupal.contextualLinks = Drupal.contextualLinks || {};
 
 /**
- * Attach outline behavior for regions associated with contextual links.
+ * Attaches outline behavior for regions associated with contextual links.
  */
 Drupal.behaviors.contextualLinks = {
   attach: function (context) {

Modified: branches/upstream/current-7/modules/contextual/contextual.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/contextual/contextual.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/contextual/contextual.module (original)
+++ branches/upstream/current-7/modules/contextual/contextual.module Mon Dec 26 16:49:44 2011
@@ -77,21 +77,17 @@
 }
 
 /**
- * Template variable preprocessor for contextual links.
+ * Implements hook_preprocess().
  *
  * @see contextual_pre_render_links()
  */
 function contextual_preprocess(&$variables, $hook) {
-  static $hooks;
-
   // Nothing to do here if the user is not permitted to access contextual links.
   if (!user_access('access contextual links')) {
     return;
   }
 
-  if (!isset($hooks)) {
-    $hooks = theme_get_registry();
-  }
+  $hooks = theme_get_registry(FALSE);
 
   // Determine the primary theme function argument.
   if (!empty($hooks[$hook]['variables'])) {
@@ -136,6 +132,7 @@
  *   A renderable array representing contextual links.
  *
  * @see menu_contextual_links()
+ * @see contextual_element_info()
  */
 function contextual_pre_render_links($element) {
   // Retrieve contextual menu links.

Modified: branches/upstream/current-7/modules/dashboard/dashboard.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/dashboard/dashboard.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/dashboard/dashboard.info (original)
+++ branches/upstream/current-7/modules/dashboard/dashboard.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 dependencies[] = block
 configure = admin/dashboard/customize
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/dblog/dblog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/dblog/dblog.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/dblog/dblog.info (original)
+++ branches/upstream/current-7/modules/dblog/dblog.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = dblog.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/field.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/field.api.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/field.api.php (original)
+++ branches/upstream/current-7/modules/field/field.api.php Mon Dec 26 16:49:44 2011
@@ -74,8 +74,8 @@
 function hook_field_extra_fields_alter(&$info) {
   // Force node title to always be at the top of the list by default.
   foreach (node_type_get_types() as $bundle) {
-    if (isset($info['node'][$bundle->type]['title'])) {
-      $info['node'][$bundle->type]['title']['weight'] = -20;
+    if (isset($info['node'][$bundle->type]['form']['title'])) {
+      $info['node'][$bundle->type]['form']['title']['weight'] = -20;
     }
   }
 }

Modified: branches/upstream/current-7/modules/field/field.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/field.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/field.info (original)
+++ branches/upstream/current-7/modules/field/field.info Mon Dec 26 16:49:44 2011
@@ -10,8 +10,8 @@
 required = TRUE
 stylesheets[all][] = theme/field.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/field_sql_storage/field_sql_storage.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/field_sql_storage/field_sql_storage.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/field_sql_storage/field_sql_storage.info (original)
+++ branches/upstream/current-7/modules/field/modules/field_sql_storage/field_sql_storage.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 files[] = field_sql_storage.test
 required = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/list/list.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/list/list.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/list/list.info (original)
+++ branches/upstream/current-7/modules/field/modules/list/list.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 dependencies[] = options
 files[] = tests/list.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/list/tests/list_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/list/tests/list_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/list/tests/list_test.info (original)
+++ branches/upstream/current-7/modules/field/modules/list/tests/list_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/number/number.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/number/number.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/number/number.info (original)
+++ branches/upstream/current-7/modules/field/modules/number/number.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = number.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/options/options.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/options/options.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/options/options.info (original)
+++ branches/upstream/current-7/modules/field/modules/options/options.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = options.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/modules/text/text.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/modules/text/text.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/modules/text/text.info (original)
+++ branches/upstream/current-7/modules/field/modules/text/text.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 files[] = text.test
 required = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field/tests/field_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field/tests/field_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field/tests/field_test.info (original)
+++ branches/upstream/current-7/modules/field/tests/field_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/field_ui/field_ui.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field_ui/field_ui.admin.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field_ui/field_ui.admin.inc (original)
+++ branches/upstream/current-7/modules/field_ui/field_ui.admin.inc Mon Dec 26 16:49:44 2011
@@ -799,7 +799,7 @@
       $form_state['fields_added']['_add_new_field'] = $field['field_name'];
     }
     catch (Exception $e) {
-      drupal_set_message(t('There was a problem creating field %label: @message.', array('%label' => $instance['label'], '@message' => $e->getMessage())), 'error');
+      drupal_set_message(t('There was a problem creating field %label: !message', array('%label' => $instance['label'], '!message' => $e->getMessage())), 'error');
     }
   }
 
@@ -808,7 +808,7 @@
     $values = $form_values['_add_existing_field'];
     $field = field_info_field($values['field_name']);
     if (!empty($field['locked'])) {
-      drupal_set_message(t('The field %label cannot be added because it is locked.', array('%label' => $values['label'])));
+      drupal_set_message(t('The field %label cannot be added because it is locked.', array('%label' => $values['label'])), 'error');
     }
     else {
       $instance = array(
@@ -1670,7 +1670,7 @@
     drupal_set_message(t('Changed the widget for field %label.', array('%label' => $instance['label'])));
   }
   catch (Exception $e) {
-    drupal_set_message(t('There was a problem changing the widget for field %label.', array('%label' => $instance['label'])));
+    drupal_set_message(t('There was a problem changing the widget for field %label.', array('%label' => $instance['label'])), 'error');
   }
 
   $form_state['redirect'] = field_ui_next_destination($entity_type, $bundle);
@@ -1727,7 +1727,7 @@
     drupal_set_message(t('The field %field has been deleted from the %type content type.', array('%field' => $instance['label'], '%type' => $bundle_label)));
   }
   else {
-    drupal_set_message(t('There was a problem removing the %field from the %type content type.', array('%field' => $instance['label'], '%type' => $bundle_label)));
+    drupal_set_message(t('There was a problem removing the %field from the %type content type.', array('%field' => $instance['label'], '%type' => $bundle_label)), 'error');
   }
 
   $admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);

Modified: branches/upstream/current-7/modules/field_ui/field_ui.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/field_ui/field_ui.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/field_ui/field_ui.info (original)
+++ branches/upstream/current-7/modules/field_ui/field_ui.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = field_ui.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/file/file.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/file/file.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/file/file.css (original)
+++ branches/upstream/current-7/modules/file/file.css Mon Dec 26 16:49:44 2011
@@ -19,10 +19,6 @@
   padding: 1px 5px 2px 5px;
 }
 
-.form-managed-file div.ajax-progress div {
-  display: inline;
-}
-
 .form-managed-file div.ajax-progress-bar {
   display: none;
   margin-top: 4px;

Modified: branches/upstream/current-7/modules/file/file.field.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/file/file.field.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/file/file.field.inc (original)
+++ branches/upstream/current-7/modules/file/file.field.inc Mon Dec 26 16:49:44 2011
@@ -463,6 +463,7 @@
     '#upload_validators' => file_field_widget_upload_validators($field, $instance),
     '#value_callback' => 'file_field_widget_value',
     '#process' => array_merge($element_info['#process'], array('file_field_widget_process')),
+    '#progress_indicator' => $instance['widget']['settings']['progress_indicator'],
     // Allows this field to return an array instead of a single value.
     '#extended' => TRUE,
   );

Modified: branches/upstream/current-7/modules/file/file.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/file/file.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/file/file.info (original)
+++ branches/upstream/current-7/modules/file/file.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = field
 files[] = tests/file.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/file/file.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/file/file.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/file/file.module (original)
+++ branches/upstream/current-7/modules/file/file.module Mon Dec 26 16:49:44 2011
@@ -45,7 +45,6 @@
   );
   $items['file/progress'] = array(
     'page callback' => 'file_ajax_progress',
-    'delivery callback' => 'ajax_deliver',
     'access arguments' => array('access content'),
     'theme callback' => 'ajax_base_page_theme',
     'type' => MENU_CALLBACK,
@@ -384,7 +383,9 @@
     '#weight' => -5,
   );
 
-  $ajax_settings['progress']['type'] ? $ajax_settings['progress']['type'] == 'bar' : 'throbber';
+  // Force the progress indicator for the remove button to be either 'none' or
+  // 'throbber', even if the upload button is using something else.
+  $ajax_settings['progress']['type'] = ($element['#progress_indicator'] == 'none') ? 'none' : 'throbber';
   $ajax_settings['progress']['message'] = NULL;
   $ajax_settings['effect'] = 'none';
   $element['remove_button'] = array(
@@ -412,6 +413,9 @@
         '#type' => 'hidden',
         '#value' => $upload_progress_key,
         '#attributes' => array('class' => array('file-progress')),
+        // Uploadprogress extension requires this field to be at the top of the
+        // form.
+        '#weight' => -20,
       );
     }
     elseif ($implementation == 'apc') {
@@ -419,6 +423,9 @@
         '#type' => 'hidden',
         '#value' => $upload_progress_key,
         '#attributes' => array('class' => array('file-progress')),
+        // Uploadprogress extension requires this field to be at the top of the
+        // form.
+        '#weight' => -20,
       );
     }
 

Modified: branches/upstream/current-7/modules/file/tests/file_module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/file/tests/file_module_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/file/tests/file_module_test.info (original)
+++ branches/upstream/current-7/modules/file/tests/file_module_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/filter/filter.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/filter/filter.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/filter/filter.info (original)
+++ branches/upstream/current-7/modules/filter/filter.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 required = TRUE
 configure = admin/config/content/formats
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/forum/forum.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/forum/forum.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/forum/forum.info (original)
+++ branches/upstream/current-7/modules/forum/forum.info Mon Dec 26 16:49:44 2011
@@ -9,8 +9,8 @@
 configure = admin/structure/forum
 stylesheets[all][] = forum.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/forum/forum.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/forum/forum.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/forum/forum.module (original)
+++ branches/upstream/current-7/modules/forum/forum.module Mon Dec 26 16:49:44 2011
@@ -553,27 +553,24 @@
       $first_call[$entity->nid] = FALSE;
       db_delete('forum_index')->condition('nid', $entity->nid)->execute();
     }
-    // Only save data to the table if the node is published.
-    if ($entity->status) {
-      $query = db_insert('forum_index')->fields(array('nid', 'title', 'tid', 'sticky', 'created', 'comment_count', 'last_comment_timestamp'));
-      foreach ($entity->taxonomy_forums as $language) {
-        foreach ($language as $item) {
-          $query->values(array(
-            'nid' => $entity->nid,
-            'title' => $entity->title,
-            'tid' => $item['tid'],
-            'sticky' => $entity->sticky,
-            'created' => $entity->created,
-            'comment_count' => 0,
-            'last_comment_timestamp' => $entity->created,
-          ));
-        }
-      }
-      $query->execute();
-      // The logic for determining last_comment_count is fairly complex, so
-      // call _forum_update_forum_index() too.
-      _forum_update_forum_index($entity->nid);
-    }
+    $query = db_insert('forum_index')->fields(array('nid', 'title', 'tid', 'sticky', 'created', 'comment_count', 'last_comment_timestamp'));
+    foreach ($entity->taxonomy_forums as $language) {
+      foreach ($language as $item) {
+        $query->values(array(
+          'nid' => $entity->nid,
+          'title' => $entity->title,
+          'tid' => $item['tid'],
+          'sticky' => $entity->sticky,
+          'created' => $entity->created,
+          'comment_count' => 0,
+          'last_comment_timestamp' => $entity->created,
+        ));
+      }
+    }
+    $query->execute();
+    // The logic for determining last_comment_count is fairly complex, so
+    // call _forum_update_forum_index() too.
+    _forum_update_forum_index($entity->nid);
   }
 }
 

Modified: branches/upstream/current-7/modules/help/help.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/help/help.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/help/help.info (original)
+++ branches/upstream/current-7/modules/help/help.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = help.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/image/image.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/image/image.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/image/image.info (original)
+++ branches/upstream/current-7/modules/image/image.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 files[] = image.test
 configure = admin/config/media/image-styles
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/image/tests/image_module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/image/tests/image_module_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/image/tests/image_module_test.info (original)
+++ branches/upstream/current-7/modules/image/tests/image_module_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = image_module_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/locale/locale.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/locale/locale.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/locale/locale.info (original)
+++ branches/upstream/current-7/modules/locale/locale.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = locale.test
 configure = admin/config/regional/language
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/locale/locale.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/locale/locale.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/locale/locale.test (original)
+++ branches/upstream/current-7/modules/locale/locale.test Mon Dec 26 16:49:44 2011
@@ -204,43 +204,65 @@
 
     // Get all of the source strings that were found.
     $source_strings = db_select('locales_source', 's')
-      ->fields('s', array('source', 'lid'))
+      ->fields('s', array('source', 'context'))
       ->condition('s.location', $filename)
       ->execute()
       ->fetchAllKeyed();
 
     // List of all strings that should be in the file.
     $test_strings = array(
-      "Standard Call t",
-      "Whitespace Call t",
-
-      "Single Quote t",
-      "Single Quote \\'Escaped\\' t",
-      "Single Quote Concat strings t",
-
-      "Double Quote t",
-      "Double Quote \\\"Escaped\\\" t",
-      "Double Quote Concat strings t",
-
-      "Standard Call plural",
-      "Standard Call @count plural",
-      "Whitespace Call plural",
-      "Whitespace Call @count plural",
-
-      "Single Quote plural",
-      "Single Quote @count plural",
-      "Single Quote \\'Escaped\\' plural",
-      "Single Quote \\'Escaped\\' @count plural",
-
-      "Double Quote plural",
-      "Double Quote @count plural",
-      "Double Quote \\\"Escaped\\\" plural",
-      "Double Quote \\\"Escaped\\\" @count plural",
+      "Standard Call t" => '',
+      "Whitespace Call t" => '',
+
+      "Single Quote t" => '',
+      "Single Quote \\'Escaped\\' t" => '',
+      "Single Quote Concat strings t" => '',
+
+      "Double Quote t" => '',
+      "Double Quote \\\"Escaped\\\" t" => '',
+      "Double Quote Concat strings t" => '',
+
+      "Context !key Args t" => "Context string",
+
+      "Context Unquoted t" => "Context string unquoted",
+      "Context Single Quoted t" => "Context string single quoted",
+      "Context Double Quoted t" => "Context string double quoted",
+
+      "Standard Call plural" => '',
+      "Standard Call @count plural" => '',
+      "Whitespace Call plural" => '',
+      "Whitespace Call @count plural" => '',
+
+      "Single Quote plural" => '',
+      "Single Quote @count plural" => '',
+      "Single Quote \\'Escaped\\' plural" => '',
+      "Single Quote \\'Escaped\\' @count plural" => '',
+
+      "Double Quote plural" => '',
+      "Double Quote @count plural" => '',
+      "Double Quote \\\"Escaped\\\" plural" => '',
+      "Double Quote \\\"Escaped\\\" @count plural" => '',
+
+      "Context !key Args plural" => "Context string",
+      "Context !key Args @count plural" => "Context string",
+
+      "Context Unquoted plural" => "Context string unquoted",
+      "Context Unquoted @count plural" => "Context string unquoted",
+      "Context Single Quoted plural" => "Context string single quoted",
+      "Context Single Quoted @count plural" => "Context string single quoted",
+      "Context Double Quoted plural" => "Context string double quoted",
+      "Context Double Quoted @count plural" => "Context string double quoted",
     );
 
     // Assert that all strings were found properly.
-    foreach ($test_strings as $str) {
-      $this->assertTrue(isset($source_strings[$str]), t("Found source string: %source", array('%source' => $str)));
+    foreach ($test_strings as $str => $context) {
+      $args = array('%source' => $str, '%context' => $context);
+
+      // Make sure that the string was found in the file.
+      $this->assertTrue(isset($source_strings[$str]), t("Found source string: %source", $args));
+
+      // Make sure that the proper context was matched.
+      $this->assertTrue(isset($source_strings[$str]) && $source_strings[$str] === $context, strlen($context) > 0 ? t("Context for %source is %context", $args) : t("Context for %source is blank", $args));
     }
 
     $this->assertEqual(count($source_strings), count($test_strings), t("Found correct number of source strings."));

Modified: branches/upstream/current-7/modules/locale/tests/locale_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/locale/tests/locale_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/locale/tests/locale_test.info (original)
+++ branches/upstream/current-7/modules/locale/tests/locale_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/locale/tests/locale_test.js
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/locale/tests/locale_test.js?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/locale/tests/locale_test.js (original)
+++ branches/upstream/current-7/modules/locale/tests/locale_test.js Mon Dec 26 16:49:44 2011
@@ -16,6 +16,11 @@
 Drupal.t("Double Quote \"Escaped\" t");
 Drupal.t("Double Quote " + "Concat " + "strings " + "t");
 
+Drupal.t("Context Unquoted t", {}, {context: "Context string unquoted"});
+Drupal.t("Context Single Quoted t", {}, {'context': "Context string single quoted"});
+Drupal.t("Context Double Quoted t", {}, {"context": "Context string double quoted"});
+
+Drupal.t("Context !key Args t", {'!key': 'value'}, {context: "Context string"});
 
 Drupal.formatPlural(1, "Standard Call plural", "Standard Call @count plural");
 Drupal
@@ -24,7 +29,7 @@
 (
 1,
 "Whitespace Call plural",
-"Whitespace Call @count plural",
+"Whitespace Call @count plural"
 )
 ;
 
@@ -33,3 +38,9 @@
 
 Drupal.formatPlural(1, "Double Quote plural", "Double Quote @count plural");
 Drupal.formatPlural(1, "Double Quote \"Escaped\" plural", "Double Quote \"Escaped\" @count plural");
+
+Drupal.formatPlural(1, "Context Unquoted plural", "Context Unquoted @count plural", {}, {context: "Context string unquoted"});
+Drupal.formatPlural(1, "Context Single Quoted plural", "Context Single Quoted @count plural", {}, {'context': "Context string single quoted"});
+Drupal.formatPlural(1, "Context Double Quoted plural", "Context Double Quoted @count plural", {}, {"context": "Context string double quoted"});
+
+Drupal.formatPlural(1, "Context !key Args plural", "Context !key Args @count plural", {'!key': 'value'}, {context: "Context string"});

Modified: branches/upstream/current-7/modules/menu/menu.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/menu/menu.admin.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/menu/menu.admin.inc (original)
+++ branches/upstream/current-7/modules/menu/menu.admin.inc Mon Dec 26 16:49:44 2011
@@ -679,7 +679,7 @@
     '#empty_option' => t('No Secondary links'),
     '#options' => $menu_options,
     '#tree' => FALSE,
-    '#description' => t('Select the source for the Secondary links. An advanced option allows you to use the same source for both Main links (currently %main) and Secondary links: if your source menu has two levels of hierarchy, the top level menu links will appear in the Main links, and the children of the active link will appear in the Secondary links.', array('%main' => $main ? $menu_options[$main] : 'none')),
+    '#description' => t('Select the source for the Secondary links. An advanced option allows you to use the same source for both Main links (currently %main) and Secondary links: if your source menu has two levels of hierarchy, the top level menu links will appear in the Main links, and the children of the active link will appear in the Secondary links.', array('%main' => $main ? $menu_options[$main] : t('none'))),
   );
 
   return system_settings_form($form);

Modified: branches/upstream/current-7/modules/menu/menu.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/menu/menu.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/menu/menu.info (original)
+++ branches/upstream/current-7/modules/menu/menu.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = menu.test
 configure = admin/structure/menu
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/node/node.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/node.api.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/node.api.php (original)
+++ branches/upstream/current-7/modules/node/node.api.php Mon Dec 26 16:49:44 2011
@@ -571,7 +571,7 @@
  * Blindly returning FALSE will break other node access modules.
  *
  * @param $node
- *   Either a node object or a (machine-readable) content type on which to
+ *   Either a node object or the machine name of the content type on which to
  *   perform the access check.
  * @param $op
  *   The operation to be performed. Possible values:
@@ -583,9 +583,9 @@
  *   The user object to perform the access check operation on.
  *
  * @return
- *   NODE_ACCESS_ALLOW if the operation is to be allowed;
- *   NODE_ACCESS_DENY if the operation is to be denied;
- *   NODE_ACCESS_IGNORE to not affect this operation at all.
+ *   - NODE_ACCESS_ALLOW: if the operation is to be allowed.
+ *   - NODE_ACCESS_DENY: if the operation is to be denied.
+ *   - NODE_ACCESS_IGNORE: to not affect this operation at all.
  *
  * @ingroup node_access
  */

Modified: branches/upstream/current-7/modules/node/node.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/node.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/node.info (original)
+++ branches/upstream/current-7/modules/node/node.info Mon Dec 26 16:49:44 2011
@@ -9,8 +9,8 @@
 configure = admin/structure/types
 stylesheets[all][] = node.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/node/node.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/node.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/node.test (original)
+++ branches/upstream/current-7/modules/node/node.test Mon Dec 26 16:49:44 2011
@@ -1088,7 +1088,15 @@
     $this->assertTaxonomyPage(TRUE);
   }
 
-  protected function assertTaxonomyPage($super) {
+  /**
+   * Checks taxonomy/term listings to ensure only accessible nodes are listed.
+   *
+   * @param $is_admin
+   *   A boolean indicating whether the current user is an administrator. If
+   *   TRUE, all nodes should be listed. If FALSE, only public nodes and the
+   *   user's own private nodes should be listed.
+   */
+  protected function assertTaxonomyPage($is_admin) {
     foreach (array($this->publicTid, $this->privateTid) as $tid_is_private => $tid) {
       $this->drupalGet("taxonomy/term/$tid");
       $this->nids_visible = array();
@@ -1101,8 +1109,9 @@
           // Private nodes should be visible on the private term page,
           // public nodes should be visible on the public term page.
           $should_be_visible = $tid_is_private == $is_private;
-          // Non-superusers on the private page can only see their own nodes.
-          if (!$super && $tid_is_private) {
+          // Non-administrators can only see their own nodes on the private
+          // term page.
+          if (!$is_admin && $tid_is_private) {
             $should_be_visible = $should_be_visible && $uid == $this->webUser->uid;
           }
           $this->assertIdentical(isset($this->nids_visible[$nid]), $should_be_visible, strtr('A %private node by user %uid is %visible for user %current_uid on the %tid_is_private page.', array(

Modified: branches/upstream/current-7/modules/node/tests/node_access_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/tests/node_access_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/tests/node_access_test.info (original)
+++ branches/upstream/current-7/modules/node/tests/node_access_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/node/tests/node_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/tests/node_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/tests/node_test.info (original)
+++ branches/upstream/current-7/modules/node/tests/node_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/node/tests/node_test_exception.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/node/tests/node_test_exception.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/node/tests/node_test_exception.info (original)
+++ branches/upstream/current-7/modules/node/tests/node_test_exception.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/openid/openid.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/openid/openid.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/openid/openid.info (original)
+++ branches/upstream/current-7/modules/openid/openid.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = openid.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/openid/tests/openid_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/openid/tests/openid_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/openid/tests/openid_test.info (original)
+++ branches/upstream/current-7/modules/openid/tests/openid_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = openid
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/overlay/overlay-child-rtl.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/overlay/overlay-child-rtl.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/overlay/overlay-child-rtl.css (original)
+++ branches/upstream/current-7/modules/overlay/overlay-child-rtl.css Mon Dec 26 16:49:44 2011
@@ -31,5 +31,5 @@
   right: auto;
 }
 #overlay-tabs li {
-  margin: 0 -3px 0 O;
+  margin: 0 -3px 0 0;
 }

Modified: branches/upstream/current-7/modules/overlay/overlay.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/overlay/overlay.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/overlay/overlay.info (original)
+++ branches/upstream/current-7/modules/overlay/overlay.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 version = VERSION
 core = 7.x
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/overlay/overlay.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/overlay/overlay.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/overlay/overlay.module (original)
+++ branches/upstream/current-7/modules/overlay/overlay.module Mon Dec 26 16:49:44 2011
@@ -146,7 +146,7 @@
       // If this page shouldn't be rendered inside the overlay, redirect to the
       // parent.
       elseif (!path_is_admin($current_path)) {
-        overlay_close_dialog($current_path);
+        overlay_close_dialog($current_path, array('query' => drupal_get_query_parameters(NULL, array('q', 'render'))));
       }
 
       // Indicate that we are viewing an overlay child page.

Modified: branches/upstream/current-7/modules/path/path.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/path/path.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/path/path.info (original)
+++ branches/upstream/current-7/modules/path/path.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = path.test
 configure = admin/config/search/path
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/php/php.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/php/php.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/php/php.info (original)
+++ branches/upstream/current-7/modules/php/php.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = php.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/poll/poll.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/poll/poll.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/poll/poll.info (original)
+++ branches/upstream/current-7/modules/poll/poll.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = poll.test
 stylesheets[all][] = poll.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/profile/profile.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/profile/profile.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/profile/profile.info (original)
+++ branches/upstream/current-7/modules/profile/profile.info Mon Dec 26 16:49:44 2011
@@ -11,8 +11,8 @@
 ; See user_system_info_alter().
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/profile/profile.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/profile/profile.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/profile/profile.module (original)
+++ branches/upstream/current-7/modules/profile/profile.module Mon Dec 26 16:49:44 2011
@@ -214,7 +214,7 @@
  * Implements hook_user_presave().
  */
 function profile_user_presave(&$edit, $account, $category) {
-  if ($account->uid) {
+  if (!empty($account->uid)) {
     profile_save_profile($edit, $account, $category);
   }
 }

Modified: branches/upstream/current-7/modules/profile/profile.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/profile/profile.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/profile/profile.test (original)
+++ branches/upstream/current-7/modules/profile/profile.test Mon Dec 26 16:49:44 2011
@@ -481,6 +481,46 @@
   }
 }
 
+/**
+ * Test profile integration with user CRUD operations.
+ */
+class ProfileCrudTestCase extends ProfileTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Profile CRUD tests',
+      'description' => 'Test profile integration with user create, read, update, delete.',
+      'group' => 'Profile',
+    );
+  }
+
+  /**
+   * Test profile integration with user CRUD operations.
+   */
+  public function testUserCRUD() {
+    // @todo Add profile fields in addition to base user properties.
+    $edit = array(
+      'name' => 'Test user',
+      'mail' => 'test at example.com',
+    );
+
+    // Create.
+    // @todo Add assertions.
+    $account = user_save(NULL, $edit);
+
+    // Read.
+    // @todo Add assertions.
+    $account = user_load($account->uid);
+
+    // Update.
+    // @todo Add assertions.
+    $account = user_save($account, $edit);
+
+    // Delete.
+    // @todo Add assertions.
+    user_delete($account->uid);
+  }
+}
+
   /**
    * TODO:
    * - Test field visibility

Modified: branches/upstream/current-7/modules/rdf/rdf.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/rdf/rdf.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/rdf/rdf.info (original)
+++ branches/upstream/current-7/modules/rdf/rdf.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = rdf.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/rdf/tests/rdf_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/rdf/tests/rdf_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/rdf/tests/rdf_test.info (original)
+++ branches/upstream/current-7/modules/rdf/tests/rdf_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/search/search.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/search/search.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/search/search.info (original)
+++ branches/upstream/current-7/modules/search/search.info Mon Dec 26 16:49:44 2011
@@ -8,8 +8,8 @@
 configure = admin/config/search/settings
 stylesheets[all][] = search.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/search/search.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/search/search.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/search/search.test (original)
+++ branches/upstream/current-7/modules/search/search.test Mon Dec 26 16:49:44 2011
@@ -1975,7 +1975,7 @@
    * Tests that search returns results with punctuation in the search phrase.
    */
   function testPhraseSearchPunctuation() {
-    $node = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => "The bunny's ears were furry.")))));
+    $node = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => "The bunny's ears were fuzzy.")))));
 
     // Update the search index.
     module_invoke_all('update_index');

Modified: branches/upstream/current-7/modules/search/tests/search_embedded_form.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/search/tests/search_embedded_form.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/search/tests/search_embedded_form.info (original)
+++ branches/upstream/current-7/modules/search/tests/search_embedded_form.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/search/tests/search_extra_type.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/search/tests/search_extra_type.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/search/tests/search_extra_type.info (original)
+++ branches/upstream/current-7/modules/search/tests/search_extra_type.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/shortcut/shortcut.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/shortcut/shortcut.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/shortcut/shortcut.info (original)
+++ branches/upstream/current-7/modules/shortcut/shortcut.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = shortcut.test
 configure = admin/config/user-interface/shortcut
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/drupal_web_test_case.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/drupal_web_test_case.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/drupal_web_test_case.php (original)
+++ branches/upstream/current-7/modules/simpletest/drupal_web_test_case.php Mon Dec 26 16:49:44 2011
@@ -1968,6 +1968,16 @@
       $id = (string) $element['id'];
       $extra_post .= '&' . urlencode('ajax_html_ids[]') . '=' . urlencode($id);
     }
+    if (isset($drupal_settings['ajaxPageState'])) {
+      $extra_post .= '&' . urlencode('ajax_page_state[theme]') . '=' . urlencode($drupal_settings['ajaxPageState']['theme']);
+      $extra_post .= '&' . urlencode('ajax_page_state[theme_token]') . '=' . urlencode($drupal_settings['ajaxPageState']['theme_token']);
+      foreach ($drupal_settings['ajaxPageState']['css'] as $key => $value) {
+        $extra_post .= '&' . urlencode("ajax_page_state[css][$key]") . '=1';
+      }
+      foreach ($drupal_settings['ajaxPageState']['js'] as $key => $value) {
+        $extra_post .= '&' . urlencode("ajax_page_state[js][$key]") . '=1';
+      }
+    }
 
     // Unless a particular path is specified, use the one specified by the
     // Ajax settings, or else 'system/ajax'.
@@ -1992,7 +2002,7 @@
       foreach ($return as $command) {
         switch ($command['command']) {
           case 'settings':
-            $drupal_settings = array_merge_recursive($drupal_settings, $command['settings']);
+            $drupal_settings = drupal_array_merge_deep($drupal_settings, $command['settings']);
             break;
 
           case 'insert':

Modified: branches/upstream/current-7/modules/simpletest/simpletest.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/simpletest.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/simpletest.info (original)
+++ branches/upstream/current-7/modules/simpletest/simpletest.info Mon Dec 26 16:49:44 2011
@@ -49,8 +49,8 @@
 files[] = tests/upgrade/upgrade.upload.test
 files[] = tests/upgrade/upgrade.user.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/actions_loop_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/actions_loop_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/actions_loop_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/actions_loop_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/ajax.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/ajax.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/ajax.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/ajax.test Mon Dec 26 16:49:44 2011
@@ -116,6 +116,64 @@
     );
      $this->assertCommand($commands, $expected, t('Custom error message is output.'));
   }
+
+  /**
+   * Test that new JavaScript and CSS files added during an AJAX request are returned.
+   */
+  function testLazyLoad() {
+    $expected = array(
+      'setting_name' => 'ajax_forms_test_lazy_load_form_submit',
+      'setting_value' => 'executed',
+      'css' => drupal_get_path('module', 'system') . '/system.admin.css',
+      'js' => drupal_get_path('module', 'system') . '/system.js',
+    );
+
+    // Get the base page.
+    $this->drupalGet('ajax_forms_test_lazy_load_form');
+    $original_settings = $this->drupalGetSettings();
+    $original_css = $original_settings['ajaxPageState']['css'];
+    $original_js = $original_settings['ajaxPageState']['js'];
+
+    // Verify that the base page doesn't have the settings and files that are to
+    // be lazy loaded as part of the next request.
+    $this->assertTrue(!isset($original_settings[$expected['setting_name']]), t('Page originally lacks the %setting, as expected.', array('%setting' => $expected['setting_name'])));
+    $this->assertTrue(!isset($original_settings[$expected['css']]), t('Page originally lacks the %css file, as expected.', array('%css' => $expected['css'])));
+    $this->assertTrue(!isset($original_settings[$expected['js']]), t('Page originally lacks the %js file, as expected.', array('%js' => $expected['js'])));
+
+    // Submit the AJAX request.
+    $commands = $this->drupalPostAJAX(NULL, array(), array('op' => t('Submit')));
+    $new_settings = $this->drupalGetSettings();
+    $new_css = $new_settings['ajaxPageState']['css'];
+    $new_js = $new_settings['ajaxPageState']['js'];
+
+    // Verify the expected setting was added.
+    $this->assertIdentical($new_settings[$expected['setting_name']], $expected['setting_value'], t('Page now has the %setting.', array('%setting' => $expected['setting_name'])));
+
+    // Verify the expected CSS file was added, both to Drupal.settings, and as
+    // an AJAX command for inclusion into the HTML.
+    // @todo A drupal_css_defaults() function in Drupal 8 would be nice.
+    $expected_css_html = drupal_get_css(array($expected['css'] => array(
+      'type' => 'file',
+      'group' => CSS_DEFAULT,
+      'weight' => 0,
+      'every_page' => FALSE,
+      'media' => 'all',
+      'preprocess' => TRUE,
+      'data' => $expected['css'],
+      'browsers' => array('IE' => TRUE, '!IE' => TRUE),
+    )), TRUE);
+    $this->assertEqual($new_css, $original_css + array($expected['css'] => 1), t('Page state now has the %css file.', array('%css' => $expected['css'])));
+    $this->assertCommand($commands, array('data' => $expected_css_html), t('Page now has the %css file.', array('%css' => $expected['css'])));
+
+    // Verify the expected JS file was added, both to Drupal.settings, and as
+    // an AJAX command for inclusion into the HTML. By testing for an exact HTML
+    // string containing the SCRIPT tag, we also ensure that unexpected
+    // JavaScript code, such as a jQuery.extend() that would potentially clobber
+    // rather than properly merge settings, didn't accidentally get added.
+    $expected_js_html = drupal_get_js('header', array($expected['js'] => drupal_js_defaults($expected['js'])), TRUE);
+    $this->assertEqual($new_js, $original_js + array($expected['js'] => 1), t('Page state now has the %js file.', array('%js' => $expected['js'])));
+    $this->assertCommand($commands, array('data' => $expected_js_html), t('Page now has the %js file.', array('%js' => $expected['js'])));
+  }
 }
 
 /**

Modified: branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.module (original)
+++ branches/upstream/current-7/modules/simpletest/tests/ajax_forms_test.module Mon Dec 26 16:49:44 2011
@@ -27,6 +27,12 @@
     'title' => 'AJAX Validation Test',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('ajax_forms_test_validation_form'),
+    'access callback' => TRUE,
+  );
+  $items['ajax_forms_test_lazy_load_form'] = array(
+    'title' => 'AJAX forms lazy load test',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('ajax_forms_test_lazy_load_form'),
     'access callback' => TRUE,
   );
   return $items;
@@ -457,3 +463,38 @@
   drupal_set_message(t("Callback: drivertext=%drivertext, spare_required_field=%spare_required_field", array('%drivertext' => $form_state['values']['drivertext'], '%spare_required_field' => $form_state['values']['spare_required_field'])));
   return '<div id="message_area">ajax_forms_test_validation_form_callback at ' . date('c') . '</div>';
 }
+
+/**
+ * Form builder: Builds a form that triggers a simple AJAX callback.
+ */
+function ajax_forms_test_lazy_load_form($form, &$form_state) {
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Submit'),
+    '#ajax' => array(
+      'callback' => 'ajax_forms_test_lazy_load_form_ajax',
+    ),
+  );
+  return $form;
+}
+
+/**
+ * Form submit handler: Adds JavaScript and CSS that wasn't on the original form.
+ */
+function ajax_forms_test_lazy_load_form_submit($form, &$form_state) {
+  drupal_add_js(array('ajax_forms_test_lazy_load_form_submit' => 'executed'), 'setting');
+  drupal_add_css(drupal_get_path('module', 'system') . '/system.admin.css');
+  drupal_add_js(drupal_get_path('module', 'system') . '/system.js');
+  $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * AJAX callback for the ajax_forms_test_lazy_load_form() form.
+ *
+ * This function returns nothing, because all we're interested in testing is
+ * ajax_render() adding commands for JavaScript and CSS added during the page
+ * request, such as the ones added in ajax_forms_test_lazy_load_form_submit().
+ */
+function ajax_forms_test_lazy_load_form_ajax($form, &$form_state) {
+  return NULL;
+}

Modified: branches/upstream/current-7/modules/simpletest/tests/ajax_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/ajax_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/ajax_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/ajax_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/batch_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/batch_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/batch_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/batch_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/bootstrap.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/bootstrap.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/bootstrap.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/bootstrap.test Mon Dec 26 16:49:44 2011
@@ -350,8 +350,18 @@
     // Retrieving the location of a theme engine.
     $this->assertIdentical(drupal_get_filename('theme_engine', 'phptemplate'), 'themes/engines/phptemplate/phptemplate.engine', t('Retrieve theme engine location.'));
 
-    // Retrieving a file that is definitely not stored in the database.
+    // Retrieving the location of a profile. Profiles are a special case with
+    // a fixed location and naming.
     $this->assertIdentical(drupal_get_filename('profile', 'standard'), 'profiles/standard/standard.profile', t('Retrieve install profile location.'));
+
+    // When a file is not found in the database cache, drupal_get_filename()
+    // searches several locations on the filesystem, including the DRUPAL_ROOT
+    // directory. We use the '.script' extension below because this is a
+    // non-existent filetype that will definitely not exist in the database.
+    // Since there is already a scripts directory, drupal_get_filename() will
+    // automatically check there for 'script' files, just as it does for (e.g.)
+    // 'module' files in modules.
+    $this->assertIdentical(drupal_get_filename('script', 'test'), 'scripts/test.script', t('Retrieve test script location.'));
   }
 }
 

Modified: branches/upstream/current-7/modules/simpletest/tests/common.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/common.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/common.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/common.test Mon Dec 26 16:49:44 2011
@@ -56,6 +56,14 @@
     $this->assertEqual($array_copy, $array_expected, t('First argument to drupal_alter() was altered.'));
     $this->assertEqual($entity_copy, $entity_expected, t('Second argument to drupal_alter() was altered.'));
     $this->assertEqual($array2_copy, $array2_expected, t('Third argument to drupal_alter() was altered.'));
+
+    // Verify alteration order when passing an array of types to drupal_alter().
+    // common_test_module_implements_alter() places 'block' implementation after
+    // other modules.
+    $array_copy = $array;
+    $array_expected = array('foo' => 'Drupal block theme');
+    drupal_alter(array('drupal_alter', 'drupal_alter_foo'), $array_copy);
+    $this->assertEqual($array_copy, $array_expected, t('hook_TYPE_alter() implementations ran in correct order.'));
   }
 }
 

Modified: branches/upstream/current-7/modules/simpletest/tests/common_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/common_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/common_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/common_test.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 stylesheets[print][] = common_test.print.css
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/common_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/common_test.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/common_test.module (original)
+++ branches/upstream/current-7/modules/simpletest/tests/common_test.module Mon Dec 26 16:49:44 2011
@@ -162,6 +162,34 @@
     elseif (is_object($arg3)) {
       $arg3->foo .= ' theme';
     }
+  }
+}
+
+/**
+ * Implements hook_TYPE_alter() on behalf of block module.
+ *
+ * This is for verifying that drupal_alter(array(TYPE1, TYPE2), ...) allows
+ * hook_module_implements_alter() to affect the order in which module
+ * implementations are executed.
+ */
+function block_drupal_alter_foo_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) {
+  $data['foo'] .= ' block';
+}
+
+/**
+ * Implements hook_module_implements_alter().
+ *
+ * @see block_drupal_alter_foo_alter()
+ */
+function common_test_module_implements_alter(&$implementations, $hook) {
+  // For drupal_alter(array('drupal_alter', 'drupal_alter_foo'), ...), make the
+  // block module implementations run after all the other modules. Note that
+  // when drupal_alter() is called with an array of types, the first type is
+  // considered primary and controls the module order.
+  if ($hook == 'drupal_alter_alter' && isset($implementations['block'])) {
+    $group = $implementations['block'];
+    unset($implementations['block']);
+    $implementations['block'] = $group;
   }
 }
 

Modified: branches/upstream/current-7/modules/simpletest/tests/common_test_cron_helper.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/common_test_cron_helper.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/common_test_cron_helper.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/common_test_cron_helper.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/database_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/database_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/database_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/database_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/entity_cache_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/entity_cache_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/entity_cache_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/entity_cache_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = entity_cache_test_dependency
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/entity_cache_test_dependency.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/entity_cache_test_dependency.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/entity_cache_test_dependency.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/entity_cache_test_dependency.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/entity_crud_hook_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/entity_crud_hook_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/entity_crud_hook_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/entity_crud_hook_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/error_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/error_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/error_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/error_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/file_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/file_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/file_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/file_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = file_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/filter_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/filter_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/filter_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/filter_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/form_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/form_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/form_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/form_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/image_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/image_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/image_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/image_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/menu_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/menu_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/menu_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/menu_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/module_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/module_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/module_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/module_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/path.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/path.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/path.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/path.test Mon Dec 26 16:49:44 2011
@@ -201,6 +201,14 @@
   }
 
   /**
+   * Tests that $_GET['q'] is initialized when the request path is empty.
+   */
+  function testGetQInitialized() {
+    $this->drupalGet('');
+    $this->assertText("\$_GET['q'] is non-empty with an empty request path.", "\$_GET['q'] is initialized with an empty request path.");
+  }
+
+  /**
    * Assert that an outbound path is altered to an expected value.
    *
    * @param $original

Modified: branches/upstream/current-7/modules/simpletest/tests/requirements1_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/requirements1_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/requirements1_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/requirements1_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/requirements2_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/requirements2_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/requirements2_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/requirements2_test.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/session_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/session_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/session_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/session_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/system_dependencies_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_dependencies_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_dependencies_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/system_dependencies_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 hidden = TRUE
 dependencies[] = _missing_dependency
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,13 @@
+name = "System incompatible core version dependencies test"
+description = "Support module for testing system dependencies."
+package = Testing
+version = VERSION
+core = 7.x
+hidden = TRUE
+dependencies[] = system_incompatible_core_version_test
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module Mon Dec 26 16:49:44 2011
@@ -1,0 +1,1 @@
+<?php

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.info (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,12 @@
+name = "System incompatible core version test"
+description = "Support module for testing system dependencies."
+package = Testing
+version = VERSION
+core = 5.x
+hidden = TRUE
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.module?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.module (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_core_version_test.module Mon Dec 26 16:49:44 2011
@@ -1,0 +1,1 @@
+<?php

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,14 @@
+name = "System incompatible module version dependencies test"
+description = "Support module for testing system dependencies."
+package = Testing
+version = VERSION
+core = 7.x
+hidden = TRUE
+; system_incompatible_module_version_test declares version 1.0
+dependencies[] = system_incompatible_module_version_test (>2.0)
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module Mon Dec 26 16:49:44 2011
@@ -1,0 +1,1 @@
+<?php

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.info (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,12 @@
+name = "System incompatible module version test"
+description = "Support module for testing system dependencies."
+package = Testing
+version = 1.0
+core = 7.x
+hidden = TRUE
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.module?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.module (added)
+++ branches/upstream/current-7/modules/simpletest/tests/system_incompatible_module_version_test.module Mon Dec 26 16:49:44 2011
@@ -1,0 +1,1 @@
+<?php

Modified: branches/upstream/current-7/modules/simpletest/tests/system_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/system_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = system_test.module
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/system_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/system_test.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/system_test.module (original)
+++ branches/upstream/current-7/modules/simpletest/tests/system_test.module Mon Dec 26 16:49:44 2011
@@ -264,6 +264,14 @@
   if ($file->name == 'system_dependencies_test') {
     $info['hidden'] = FALSE;
   }
+  if (in_array($file->name, array(
+    'system_incompatible_module_version_dependencies_test',
+    'system_incompatible_core_version_dependencies_test',
+    'system_incompatible_module_version_test',
+    'system_incompatible_core_version_test',
+  ))) {
+    $info['hidden'] = FALSE;
+  }
   if ($file->name == 'requirements1_test' || $file->name == 'requirements2_test') {
     $info['hidden'] = FALSE;
   }

Modified: branches/upstream/current-7/modules/simpletest/tests/taxonomy_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/taxonomy_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/taxonomy_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/taxonomy_test.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 hidden = TRUE
 dependencies[] = taxonomy
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/theme.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/theme.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/theme.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/theme.test Mon Dec 26 16:49:44 2011
@@ -194,7 +194,7 @@
 /**
  * Unit tests for theme_links().
  */
-class ThemeLinksUnitTest extends DrupalUnitTestCase {
+class ThemeLinksTest extends DrupalWebTestCase {
   public static function getInfo() {
     return array(
       'name' => 'Links',

Modified: branches/upstream/current-7/modules/simpletest/tests/theme_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/theme_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/theme_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/theme_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Added: branches/upstream/current-7/modules/simpletest/tests/update_script_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_script_test.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_script_test.info (added)
+++ branches/upstream/current-7/modules/simpletest/tests/update_script_test.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,12 @@
+name = "Update script test"
+description = "Support module for update script testing."
+package = Testing
+version = VERSION
+core = 7.x
+hidden = TRUE
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/modules/simpletest/tests/update_script_test.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_script_test.install?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_script_test.install (added)
+++ branches/upstream/current-7/modules/simpletest/tests/update_script_test.install Mon Dec 26 16:49:44 2011
@@ -1,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the update_script_test module.
+ */
+
+/**
+ * Implements hook_requirements().
+ */
+function update_script_test_requirements($phase) {
+  $requirements = array();
+
+  if ($phase == 'update') {
+    // Set a requirements warning or error when the test requests it.
+    $requirement_type = variable_get('update_script_test_requirement_type');
+    switch ($requirement_type) {
+      case REQUIREMENT_WARNING:
+        $requirements['update_script_test'] = array(
+          'title' => 'Update script test',
+          'value' => 'Warning',
+          'description' => 'This is a requirements warning provided by the update_script_test module.',
+          'severity' => REQUIREMENT_WARNING,
+        );
+        break;
+      case REQUIREMENT_ERROR:
+        $requirements['update_script_test'] = array(
+          'title' => 'Update script test',
+          'value' => 'Error',
+          'description' => 'This is a requirements error provided by the update_script_test module.',
+          'severity' => REQUIREMENT_ERROR,
+        );
+        break;
+    }
+  }
+
+  return $requirements;
+}
+
+/**
+ * Dummy update function to run during the tests.
+ */
+function update_script_test_update_7000() {
+  return t('The update_script_test_update_7000() update was executed successfully.');
+}

Added: branches/upstream/current-7/modules/simpletest/tests/update_script_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_script_test.module?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_script_test.module (added)
+++ branches/upstream/current-7/modules/simpletest/tests/update_script_test.module Mon Dec 26 16:49:44 2011
@@ -1,0 +1,18 @@
+<?php
+
+/**
+ * @file
+ * This file provides testing functionality for update.php.
+ */
+
+/**
+ * Implements hook_flush_caches().
+ *
+ * This sets a message to confirm that all caches are cleared whenever
+ * update.php completes.
+ *
+ * @see UpdateScriptFunctionalTest::testRequirements()
+ */
+function update_script_test_flush_caches() {
+  drupal_set_message(t('hook_flush_caches() invoked for update_script_test.module.'));
+}

Modified: branches/upstream/current-7/modules/simpletest/tests/update_test_1.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_test_1.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_test_1.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/update_test_1.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/update_test_2.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_test_2.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_test_2.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/update_test_2.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/update_test_3.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/update_test_3.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/update_test_3.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/update_test_3.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Added: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz?rev=2244&op=file
==============================================================================
Binary file - no diff available.

Propchange: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz?rev=2244&op=file
==============================================================================
Binary file - no diff available.

Propchange: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz?rev=2244&op=file
==============================================================================
Binary file - no diff available.

Propchange: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz?rev=2244&op=file
==============================================================================
Binary file - no diff available.

Propchange: branches/upstream/current-7/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: branches/upstream/current-7/modules/simpletest/tests/upgrade/upgrade.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/upgrade/upgrade.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/upgrade/upgrade.test (original)
+++ branches/upstream/current-7/modules/simpletest/tests/upgrade/upgrade.test Mon Dec 26 16:49:44 2011
@@ -28,86 +28,31 @@
   var $loadedModules = array();
 
   /**
-   * Override of DrupalWebTestCase::setUp() specialized for upgrade testing.
-   */
-  protected function setUp() {
-    global $user, $language, $conf;
-
-    // Load the Update API.
-    require_once DRUPAL_ROOT . '/includes/update.inc';
-
-    // Reset flags.
-    $this->upgradedSite = FALSE;
-    $this->upgradeErrors = array();
-
-    $this->loadedModules = module_list();
-
-    // Generate a temporary prefixed database to ensure that tests have a clean starting point.
-    $this->databasePrefix = 'simpletest' . mt_rand(1000, 1000000);
-    db_update('simpletest_test_id')
-      ->fields(array('last_prefix' => $this->databasePrefix))
-      ->condition('test_id', $this->testId)
-      ->execute();
-
-    // Clone the current connection and replace the current prefix.
-    $connection_info = Database::getConnectionInfo('default');
-    Database::renameConnection('default', 'simpletest_original_default');
-    foreach ($connection_info as $target => $value) {
-      $connection_info[$target]['prefix'] = array(
-        'default' => $value['prefix']['default'] . $this->databasePrefix,
-      );
-    }
-    Database::addConnectionInfo('default', 'default', $connection_info['default']);
-
-    // Store necessary current values before switching to prefixed database.
-    $this->originalLanguage = $language;
-    $this->originalLanguageDefault = variable_get('language_default');
-    $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files');
-    $this->originalProfile = drupal_get_profile();
-    $clean_url_original = variable_get('clean_url', 0);
-
-    // Unregister the registry.
-    // This is required to make sure that the database layer works properly.
-    spl_autoload_unregister('drupal_autoload_class');
-    spl_autoload_unregister('drupal_autoload_interface');
-
-    // Create test directories ahead of installation so fatal errors and debug
-    // information can be logged during installation process.
-    // Use mock files directories with the same prefix as the database.
-    $public_files_directory  = $this->originalFileDirectory . '/simpletest/' . substr($this->databasePrefix, 10);
-    $private_files_directory = $public_files_directory . '/private';
-    $temp_files_directory    = $private_files_directory . '/temp';
-
-    // Create the directories.
-    file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
-    file_prepare_directory($private_files_directory, FILE_CREATE_DIRECTORY);
-    file_prepare_directory($temp_files_directory, FILE_CREATE_DIRECTORY);
-    $this->generatedTestFiles = FALSE;
-
-    // Log fatal errors.
-    ini_set('log_errors', 1);
-    ini_set('error_log', $public_files_directory . '/error.log');
-
-    // Reset all statics and variables to perform tests in a clean environment.
-    $conf = array();
-
-    // Load the database from the portable PHP dump.
-    foreach ($this->databaseDumpFiles as $file) {
-      require $file;
-    }
-
-    // Set path variables.
-    $this->variable_set('file_public_path', $public_files_directory);
-    $this->variable_set('file_private_path', $private_files_directory);
-    $this->variable_set('file_temporary_path', $temp_files_directory);
-
-    $this->pass('Finished loading the dump.');
-
-    // Load user 1.
-    $this->originalUser = $user;
-    drupal_save_session(FALSE);
-    $user = db_query('SELECT * FROM {users} WHERE uid = :uid', array(':uid' => 1))->fetchObject();
-
+   * Flag to indicate whether zlib is installed or not.
+   */
+  var $zlibInstalled = TRUE;
+
+  /**
+   * Flag to indicate whether there are pending updates or not.
+   */
+  var $pendingUpdates = TRUE;
+
+  /**
+   * Constructs an UpgradePathTestCase object.
+   *
+   * @param $test_id
+   *   (optional) The ID of the test. Tests with the same id are reported
+   *   together.
+   */
+  function __construct($test_id = NULL) {
+    parent::__construct($test_id);
+    $this->zlibInstalled = function_exists('gzopen');
+  }
+
+  /**
+   * Prepares the appropriate session for the release of Drupal being upgraded.
+   */
+  protected function prepareD7Session() {
     // Generate and set a D6-compatible session cookie.
     $this->curlInitialize();
     $sid = drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55));
@@ -123,6 +68,103 @@
     // Remove the temporarily added ssid column.
     db_drop_field('sessions', 'ssid');
     drupal_save_session(FALSE);
+  }
+
+  /**
+   * Override of DrupalWebTestCase::setUp() specialized for upgrade testing.
+   */
+  protected function setUp() {
+    // We are going to set a missing zlib requirement property for usage
+    // during the performUpgrade() and tearDown() methods. Also set that the
+    // tests failed.
+    if (!$this->zlibInstalled) {
+      parent::setUp();
+      return;
+    }
+
+    global $user, $language, $conf;
+
+    // Load the Update API.
+    require_once DRUPAL_ROOT . '/includes/update.inc';
+
+    // Reset flags.
+    $this->upgradedSite = FALSE;
+    $this->upgradeErrors = array();
+
+    $this->loadedModules = module_list();
+
+    // Generate a temporary prefixed database to ensure that tests have a clean starting point.
+    $this->databasePrefix = 'simpletest' . mt_rand(1000, 1000000);
+    db_update('simpletest_test_id')
+      ->fields(array('last_prefix' => $this->databasePrefix))
+      ->condition('test_id', $this->testId)
+      ->execute();
+
+    // Clone the current connection and replace the current prefix.
+    $connection_info = Database::getConnectionInfo('default');
+    Database::renameConnection('default', 'simpletest_original_default');
+    foreach ($connection_info as $target => $value) {
+      $connection_info[$target]['prefix'] = array(
+        'default' => $value['prefix']['default'] . $this->databasePrefix,
+      );
+    }
+    Database::addConnectionInfo('default', 'default', $connection_info['default']);
+
+    // Store necessary current values before switching to prefixed database.
+    $this->originalLanguage = $language;
+    $this->originalLanguageDefault = variable_get('language_default');
+    $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files');
+    $this->originalProfile = drupal_get_profile();
+    $clean_url_original = variable_get('clean_url', 0);
+
+    // Unregister the registry.
+    // This is required to make sure that the database layer works properly.
+    spl_autoload_unregister('drupal_autoload_class');
+    spl_autoload_unregister('drupal_autoload_interface');
+
+    // Create test directories ahead of installation so fatal errors and debug
+    // information can be logged during installation process.
+    // Use mock files directories with the same prefix as the database.
+    $public_files_directory  = $this->originalFileDirectory . '/simpletest/' . substr($this->databasePrefix, 10);
+    $private_files_directory = $public_files_directory . '/private';
+    $temp_files_directory    = $private_files_directory . '/temp';
+
+    // Create the directories.
+    file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+    file_prepare_directory($private_files_directory, FILE_CREATE_DIRECTORY);
+    file_prepare_directory($temp_files_directory, FILE_CREATE_DIRECTORY);
+    $this->generatedTestFiles = FALSE;
+
+    // Log fatal errors.
+    ini_set('log_errors', 1);
+    ini_set('error_log', $public_files_directory . '/error.log');
+
+    // Reset all statics and variables to perform tests in a clean environment.
+    $conf = array();
+
+    // Load the database from the portable PHP dump.
+    // The files may be gzipped.
+    foreach ($this->databaseDumpFiles as $file) {
+      if (substr($file, -3) == '.gz') {
+        $file = "compress.zlib://$file";
+      }
+      require $file;
+    }
+
+    // Set path variables.
+    $this->variable_set('file_public_path', $public_files_directory);
+    $this->variable_set('file_private_path', $private_files_directory);
+    $this->variable_set('file_temporary_path', $temp_files_directory);
+
+    $this->pass('Finished loading the dump.');
+
+    // Load user 1.
+    $this->originalUser = $user;
+    drupal_save_session(FALSE);
+    $user = db_query('SELECT * FROM {users} WHERE uid = :uid', array(':uid' => 1))->fetchObject();
+
+    // Generate and set a D6-compatible session cookie.
+    $this->prepareD7Session();
 
     // Restore necessary variables.
     $this->variable_set('clean_url', $clean_url_original);
@@ -136,6 +178,11 @@
    */
   protected function tearDown() {
     global $user, $language;
+
+    if (!$this->zlibInstalled) {
+      parent::tearDown();
+      return;
+    }
 
     // In case a fatal error occurred that was not in the test process read the
     // log to pick up any fatal errors.
@@ -231,6 +278,11 @@
    *   TRUE if the upgrade succeeded, FALSE otherwise.
    */
   protected function performUpgrade($register_errors = TRUE) {
+    if (!$this->zlibInstalled) {
+      $this->fail(t('Missing zlib requirement for upgrade tests.'));
+      return FALSE;
+    }
+
     $update_url = $GLOBALS['base_url'] . '/update.php';
 
     // Load the first update screen.
@@ -243,6 +295,14 @@
     $this->drupalPost(NULL, array(), t('Continue'));
     if (!$this->assertResponse(200)) {
       return FALSE;
+    }
+
+    // The test should pass if there are no pending updates.
+    $content = $this->drupalGetContent();
+    if (strpos($content, t('No pending updates.')) !== FALSE) {
+      $this->pass(t('No pending updates and therefore no upgrade process to test.'));
+      $this->pendingUpdates = FALSE;
+      return TRUE;
     }
 
     // Go!
@@ -316,6 +376,26 @@
       ->execute();
   }
 
+}
+
+/**
+ * Performs end-to-end point test of the release update path.
+ */
+abstract class UpdatePathTestCase extends UpgradePathTestCase {
+  /**
+   * Overrides UpgradePathTestCase::prepareD7Session().
+   */
+  protected function prepareD7Session() {
+    // Generate and set a D7-compatible session cookie.
+    $this->curlInitialize();
+    $sid = drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55));
+    curl_setopt($this->curlHandle, CURLOPT_COOKIE, rawurlencode(session_name()) . '=' . rawurlencode($sid));
+
+    // Force our way into the session of the child site.
+    drupal_save_session(TRUE);
+    _drupal_session_write($sid, '');
+    drupal_save_session(FALSE);
+  }
 }
 
 /**
@@ -351,7 +431,7 @@
     // Destroy a table that the upgrade process needs.
     db_drop_table('access');
     // Assert that the upgrade fails.
-    $this->assertFalse($this->performUpgrade(FALSE), t('A failed upgrade should return messages.'));
+    $this->assertFalse($this->performUpgrade(FALSE) && $this->pendingUpdates, t('A failed upgrade should return messages.'));
   }
 
   /**
@@ -408,3 +488,309 @@
     $this->assertFalse($update_d6, t('The D6 upgrade flag variable has been correctly disabled.'));
   }
 }
+
+/**
+ * Performs point release update tests on a bare database.
+ *
+ * Loads an installation of Drupal 7.0 and runs the update process on it.
+ *
+ * The install contains the standard profile (plus all optional) modules
+ * without any content so that an update from any of the modules under this
+ * profile installation can be wholly tested.
+ */
+class BasicStandardUpdatePath extends UpdatePathTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'Basic standard + all profile update path',
+      'description'  => 'Basic update path tests for a standard profile install with all enabled modules.',
+      'group' => 'Upgrade path',
+    );
+  }
+
+  public function setUp() {
+    // Path to the database dump files.
+    $this->databaseDumpFiles = array(
+      drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-7.bare.standard_all.database.php.gz',
+    );
+    parent::setUp();
+  }
+
+  /**
+   * Tests a successful point release update.
+   */
+  public function testBasicStandardUpdate() {
+    $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
+
+    // Hit the frontpage.
+    $this->drupalGet('');
+    $this->assertResponse(200);
+
+    // Verify that we are still logged in.
+    $this->drupalGet('user');
+    $this->clickLink(t('Edit'));
+    $this->assertEqual($this->getUrl(), url('user/1/edit', array('absolute' => TRUE)), t('We are still logged in as admin at the end of the upgrade.'));
+
+    // Logout and verify that we can login back in with our initial password.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // The previous login should've triggered a password rehash, so login one
+    // more time to make sure the new hash is readable.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // Test that the site name is correctly displayed.
+    $this->assertText('drupal', t('The site name is correctly displayed.'));
+
+    // Verify that the main admin sections are available.
+    $this->drupalGet('admin');
+    $this->assertText(t('Content'));
+    $this->assertText(t('Appearance'));
+    $this->assertText(t('People'));
+    $this->assertText(t('Configuration'));
+    $this->assertText(t('Reports'));
+    $this->assertText(t('Structure'));
+    $this->assertText(t('Modules'));
+
+    // Confirm that no {menu_links} entry exists for user/autocomplete.
+    $result = db_query('SELECT COUNT(*) FROM {menu_links} WHERE link_path = :user_autocomplete', array(':user_autocomplete' => 'user/autocomplete'))->fetchField();
+    $this->assertFalse($result, t('No {menu_links} entry exists for user/autocomplete'));
+  }
+}
+
+/**
+ * Performs point release update tests on a bare database.
+ *
+ * Loads an installation of Drupal 7.0 and runs the update process on it.
+ *
+ * The install contains the minimal profile modules (without any generated
+ * content) so that an update from of a site under this profile may be tested.
+ */
+class BasicMinimalUpdatePath extends UpdatePathTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'Basic minimal profile update path',
+      'description'  => 'Basic update path tests for a minimal profile install.',
+      'group' => 'Upgrade path',
+    );
+  }
+
+  public function setUp() {
+    // Path to the database dump files.
+    $this->databaseDumpFiles = array(
+      drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-7.bare.minimal.database.php.gz',
+    );
+    parent::setUp();
+  }
+
+  /**
+   * Tests a successful point release update.
+   */
+  public function testBasicMinimalUpdate() {
+    $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
+
+    // Hit the frontpage.
+    $this->drupalGet('');
+    $this->assertResponse(200);
+
+    // Verify that we are still logged in.
+    $this->drupalGet('user');
+    $this->clickLink(t('Edit'));
+    $this->assertEqual($this->getUrl(), url('user/1/edit', array('absolute' => TRUE)), t('We are still logged in as admin at the end of the upgrade.'));
+
+    // Logout and verify that we can login back in with our initial password.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // The previous login should've triggered a password rehash, so login one
+    // more time to make sure the new hash is readable.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // Test that the site name is correctly displayed.
+    $this->assertText('drupal', t('The site name is correctly displayed.'));
+
+    // Verify that the main admin sections are available.
+    $this->drupalGet('admin');
+    $this->assertText(t('Content'));
+    $this->assertText(t('Appearance'));
+    $this->assertText(t('People'));
+    $this->assertText(t('Configuration'));
+    $this->assertText(t('Reports'));
+    $this->assertText(t('Structure'));
+    $this->assertText(t('Modules'));
+
+    // Confirm that no {menu_links} entry exists for user/autocomplete.
+    $result = db_query('SELECT COUNT(*) FROM {menu_links} WHERE link_path = :user_autocomplete', array(':user_autocomplete' => 'user/autocomplete'))->fetchField();
+    $this->assertFalse($result, t('No {menu_links} entry exists for user/autocomplete'));
+  }
+}
+
+/**
+ * Performs point release update tests on a 'filled' database.
+ *
+ * Loads an installation of Drupal 7.0 and runs the update process on it.
+ *
+ * The install contains the standard profile (plus all optional) modules
+ * with generated content so that an update from any of the modules under this
+ * profile installation can be wholly tested.
+ */
+class FilledStandardUpdatePath extends UpdatePathTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'Basic standard + all profile update path, populated database',
+      'description'  => 'Basic update path tests for a standard profile install with all enabled modules and a populated database.',
+      'group' => 'Upgrade path',
+    );
+  }
+
+  public function setUp() {
+    // Path to the database dump files.
+    $this->databaseDumpFiles = array(
+      drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-7.filled.standard_all.database.php.gz',
+    );
+    parent::setUp();
+  }
+
+  /**
+   * Tests a successful point release update.
+   */
+  public function testFilledStandardUpdate() {
+    $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
+
+    // Hit the frontpage.
+    $this->drupalGet('');
+    $this->assertResponse(200);
+
+    // Verify that we are still logged in.
+    $this->drupalGet('user');
+    $this->clickLink(t('Edit'));
+    $this->assertEqual($this->getUrl(), url('user/1/edit', array('absolute' => TRUE)), t('We are still logged in as admin at the end of the upgrade.'));
+
+    // Logout and verify that we can login back in with our initial password.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // The previous login should've triggered a password rehash, so login one
+    // more time to make sure the new hash is readable.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // Test that the site name is correctly displayed.
+    $this->assertText('drupal', t('The site name is correctly displayed.'));
+
+    // Verify that the main admin sections are available.
+    $this->drupalGet('admin');
+    $this->assertText(t('Content'));
+    $this->assertText(t('Appearance'));
+    $this->assertText(t('People'));
+    $this->assertText(t('Configuration'));
+    $this->assertText(t('Reports'));
+    $this->assertText(t('Structure'));
+    $this->assertText(t('Modules'));
+
+    // Confirm that no {menu_links} entry exists for user/autocomplete.
+    $result = db_query('SELECT COUNT(*) FROM {menu_links} WHERE link_path = :user_autocomplete', array(':user_autocomplete' => 'user/autocomplete'))->fetchField();
+    $this->assertFalse($result, t('No {menu_links} entry exists for user/autocomplete'));
+  }
+}
+
+/**
+ * Performs point release update tests on a populated database.
+ *
+ * Loads an installation of Drupal 7.0 and runs the update process on it.
+ *
+ * The install contains the minimal profile modules (along with generated
+ * content) so that an update from of a site under this profile may be tested.
+ */
+class FilledMinimalUpdatePath extends UpdatePathTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'Basic minimal profile update path, populated database',
+      'description'  => 'Basic update path tests for a minimal profile install with a populated database.',
+      'group' => 'Upgrade path',
+    );
+  }
+
+  public function setUp() {
+    // Path to the database dump files.
+    $this->databaseDumpFiles = array(
+      drupal_get_path('module', 'simpletest') . '/tests/upgrade/drupal-7.filled.minimal.database.php.gz',
+    );
+    parent::setUp();
+  }
+
+  /**
+   * Tests a successful point release update.
+   */
+  public function testFilledStandardUpdate() {
+    $this->assertTrue($this->performUpgrade(), t('The upgrade was completed successfully.'));
+
+    // Hit the frontpage.
+    $this->drupalGet('');
+    $this->assertResponse(200);
+
+    // Verify that we are still logged in.
+    $this->drupalGet('user');
+    $this->clickLink(t('Edit'));
+    $this->assertEqual($this->getUrl(), url('user/1/edit', array('absolute' => TRUE)), t('We are still logged in as admin at the end of the upgrade.'));
+
+    // Logout and verify that we can login back in with our initial password.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // The previous login should've triggered a password rehash, so login one
+    // more time to make sure the new hash is readable.
+    $this->drupalLogout();
+    $this->drupalLogin((object) array(
+      'uid' => 1,
+      'name' => 'admin',
+      'pass_raw' => 'admin',
+    ));
+
+    // Test that the site name is correctly displayed.
+    $this->assertText('drupal', t('The site name is correctly displayed.'));
+
+    // Verify that the main admin sections are available.
+    $this->drupalGet('admin');
+    $this->assertText(t('Content'));
+    $this->assertText(t('Appearance'));
+    $this->assertText(t('People'));
+    $this->assertText(t('Configuration'));
+    $this->assertText(t('Reports'));
+    $this->assertText(t('Structure'));
+    $this->assertText(t('Modules'));
+
+    // Confirm that no {menu_links} entry exists for user/autocomplete.
+    $result = db_query('SELECT COUNT(*) FROM {menu_links} WHERE link_path = :user_autocomplete', array(':user_autocomplete' => 'user/autocomplete'))->fetchField();
+    $this->assertFalse($result, t('No {menu_links} entry exists for user/autocomplete'));
+  }
+}

Modified: branches/upstream/current-7/modules/simpletest/tests/url_alter_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/url_alter_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/url_alter_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/url_alter_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/simpletest/tests/url_alter_test.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/url_alter_test.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/url_alter_test.module (original)
+++ branches/upstream/current-7/modules/simpletest/tests/url_alter_test.module Mon Dec 26 16:49:44 2011
@@ -30,6 +30,10 @@
  * Implements hook_url_inbound_alter().
  */
 function url_alter_test_url_inbound_alter(&$path, $original_path, $path_language) {
+  if (!request_path() && !empty($_GET['q'])) {
+    drupal_set_message("\$_GET['q'] is non-empty with an empty request path.");
+  }
+
   // Rewrite user/username to user/uid.
   if (preg_match('!^user/([^/]+)(/.*)?!', $path, $matches)) {
     if ($account = user_load_by_name($matches[1])) {

Modified: branches/upstream/current-7/modules/simpletest/tests/xmlrpc_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/simpletest/tests/xmlrpc_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/simpletest/tests/xmlrpc_test.info (original)
+++ branches/upstream/current-7/modules/simpletest/tests/xmlrpc_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/statistics/statistics.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/statistics/statistics.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/statistics/statistics.info (original)
+++ branches/upstream/current-7/modules/statistics/statistics.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = statistics.test
 configure = admin/config/system/statistics
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/statistics/statistics.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/statistics/statistics.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/statistics/statistics.module (original)
+++ branches/upstream/current-7/modules/statistics/statistics.module Mon Dec 26 16:49:44 2011
@@ -75,11 +75,14 @@
   }
   if (variable_get('statistics_enable_access_log', 0)) {
     drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
+
+    // For anonymous users unicode.inc will not have been loaded.
+    include_once DRUPAL_ROOT . '/includes/unicode.inc';
     // Log this page access.
     db_insert('accesslog')
       ->fields(array(
-        'title' => strip_tags(drupal_get_title()),
-        'path' => $_GET['q'],
+        'title' => truncate_utf8(strip_tags(drupal_get_title()), 255),
+        'path' => truncate_utf8($_GET['q'], 255),
         'url' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
         'hostname' => ip_address(),
         'uid' => $user->uid,

Modified: branches/upstream/current-7/modules/statistics/statistics.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/statistics/statistics.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/statistics/statistics.test (original)
+++ branches/upstream/current-7/modules/statistics/statistics.test Mon Dec 26 16:49:44 2011
@@ -63,9 +63,10 @@
   function setUp() {
     parent::setUp('statistics');
 
+    $this->auth_user = $this->drupalCreateUser(array('access content', 'create page content', 'edit own page content'));
+
     // Ensure we have a node page to access.
-    $this->node = $this->drupalCreateNode();
-    $this->auth_user = $this->drupalCreateUser();
+    $this->node = $this->drupalCreateNode(array('title' => $this->randomName(255), 'uid' => $this->auth_user->uid));
 
     // Enable page caching.
     variable_set('cache', TRUE);
@@ -116,6 +117,27 @@
     $this->assertEqual(array_intersect_key($log[5], $expected), $expected);
     $node_counter = statistics_get($this->node->nid);
     $this->assertIdentical($node_counter['totalcount'], '3');
+
+    // Visit edit page to generate a title greater than 255.
+    $path = 'node/' . $this->node->nid . '/edit';
+    $expected = array(
+      'title' => truncate_utf8(t('Edit Basic page') . ' ' . $this->node->title, 255),
+      'path' => $path,
+    );
+    $this->drupalGet($path);
+    $log = db_query('SELECT * FROM {accesslog}')->fetchAll(PDO::FETCH_ASSOC);
+    $this->assertTrue(is_array($log) && count($log) == 7, t('Page request was logged.'));
+    $this->assertEqual(array_intersect_key($log[6], $expected), $expected);
+
+    // Create a path longer than 255 characters.
+    $long_path = $this->randomName(256);
+
+    // Test that the long path is properly truncated when logged.
+    $this->drupalGet($long_path);
+    $log = db_query('SELECT * FROM {accesslog}')->fetchAll(PDO::FETCH_ASSOC);
+    $this->assertTrue(is_array($log) && count($log) == 8, 'Page request was logged for a path over 255 characters.');
+    $this->assertEqual($log[7]['path'], truncate_utf8($long_path, 255));
+
   }
 }
 

Modified: branches/upstream/current-7/modules/syslog/syslog.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/syslog/syslog.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/syslog/syslog.info (original)
+++ branches/upstream/current-7/modules/syslog/syslog.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 files[] = syslog.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/system/system.admin.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.admin.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.admin.inc (original)
+++ branches/upstream/current-7/modules/system/system.admin.inc Mon Dec 26 16:49:44 2011
@@ -811,10 +811,19 @@
       // Only display visible modules.
       elseif (isset($visible_files[$requires])) {
         $requires_name = $files[$requires]->info['name'];
+        // Disable this module if it is incompatible with the dependency's version.
         if ($incompatible_version = drupal_check_incompatibility($v, str_replace(DRUPAL_CORE_COMPATIBILITY . '-', '', $files[$requires]->info['version']))) {
           $extra['requires'][$requires] = t('@module (<span class="admin-missing">incompatible with</span> version @version)', array(
             '@module' => $requires_name . $incompatible_version,
             '@version' => $files[$requires]->info['version'],
+          ));
+          $extra['disabled'] = TRUE;
+        }
+        // Disable this module if the dependency is incompatible with this
+        // version of Drupal core.
+        elseif ($files[$requires]->info['core'] != DRUPAL_CORE_COMPATIBILITY) {
+          $extra['requires'][$requires] = t('@module (<span class="admin-missing">incompatible with</span> this version of Drupal core)', array(
+            '@module' => $requires_name,
           ));
           $extra['disabled'] = TRUE;
         }

Modified: branches/upstream/current-7/modules/system/system.api.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.api.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.api.php (original)
+++ branches/upstream/current-7/modules/system/system.api.php Mon Dec 26 16:49:44 2011
@@ -991,7 +991,8 @@
  *   );
  * @endcode
  * When path 'my-module/foo/edit' is requested, integer 1 will be replaced
- * with 'foo' and passed to the callback function.
+ * with 'foo' and passed to the callback function. Note that wildcards may not
+ * be used as the first component.
  *
  * Registered paths may also contain special "auto-loader" wildcard components
  * in the form of '%mymodule_abc', where the '%' part means that this path
@@ -1877,6 +1878,15 @@
  * hook in order to reorder the implementing modules, which are otherwise
  * ordered by the module's system weight.
  *
+ * Note that hooks invoked using drupal_alter() can have multiple variations
+ * (such as hook_form_alter() and hook_form_FORM_ID_alter()). drupal_alter()
+ * will call all such variants defined by a single module in turn. For the
+ * purposes of hook_module_implements_alter(), these variants are treated as
+ * a single hook. Thus, to ensure that your implementation of
+ * hook_form_FORM_ID_alter() is called at the right time, you will have to
+ * have to change the order of hook_form_alter() implementation in
+ * hook_module_implements_alter().
+ *
  * @param $implementations
  *   An array keyed by the module's name. The value of each item corresponds
  *   to a $group, which is usually FALSE, unless the implementation is in a
@@ -2881,7 +2891,7 @@
   // Test PHP version
   $requirements['php'] = array(
     'title' => $t('PHP'),
-    'value' => ($phase == 'runtime') ? l(phpversion(), 'admin/logs/status/php') : phpversion(),
+    'value' => ($phase == 'runtime') ? l(phpversion(), 'admin/reports/status/php') : phpversion(),
   );
   if (version_compare(phpversion(), DRUPAL_MINIMUM_PHP) < 0) {
     $requirements['php']['description'] = $t('Your PHP installation is too old. Drupal requires at least PHP %version.', array('%version' => DRUPAL_MINIMUM_PHP));
@@ -2903,7 +2913,7 @@
       );
     }
 
-    $requirements['cron']['description'] .= ' ' . $t('You can <a href="@cron">run cron manually</a>.', array('@cron' => url('admin/logs/status/run-cron')));
+    $requirements['cron']['description'] .= ' ' . $t('You can <a href="@cron">run cron manually</a>.', array('@cron' => url('admin/reports/status/run-cron')));
 
     $requirements['cron']['title'] = $t('Cron maintenance tasks');
   }
@@ -2930,7 +2940,8 @@
  * By declaring the tables used by your module via an implementation of
  * hook_schema(), these tables will be available on all supported database
  * engines. You don't have to deal with the different SQL dialects for table
- * creation and alteration of the supported database engines *
+ * creation and alteration of the supported database engines.
+ *
  * See the Schema API Handbook at http://drupal.org/node/146843 for
  * details on schema definition structures.
  *

Modified: branches/upstream/current-7/modules/system/system.base.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.base.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.base.css (original)
+++ branches/upstream/current-7/modules/system/system.base.css Mon Dec 26 16:49:44 2011
@@ -157,12 +157,9 @@
 .progress .percentage {
   float: right; /* LTR */
 }
-.progress-disabled {
-  float: left; /* LTR */
-}
 /* Throbber */
 .ajax-progress {
-  float: left; /* LTR */
+  display: inline-block;
 }
 .ajax-progress .throbber {
   background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px;
@@ -171,6 +168,9 @@
   margin: 2px;
   width: 15px;
 }
+.ajax-progress .message {
+  padding-left: 20px;
+}
 tr .ajax-progress .throbber {
   margin: 0 2px;
 }

Modified: branches/upstream/current-7/modules/system/system.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.info (original)
+++ branches/upstream/current-7/modules/system/system.info Mon Dec 26 16:49:44 2011
@@ -12,8 +12,8 @@
 required = TRUE
 configure = admin/config/system
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/system/system.install
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.install?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.install (original)
+++ branches/upstream/current-7/modules/system/system.install Mon Dec 26 16:49:44 2011
@@ -465,7 +465,7 @@
       $requirements['update status'] = array(
         'value' => $t('Not enabled'),
         'severity' => REQUIREMENT_WARNING,
-        'description' => $t('Update notifications are not enabled. It is <strong>highly recommended</strong> that you enable the update status module from the <a href="@module">module administration page</a> in order to stay up-to-date on new releases. For more information, <a href="@update">Update status handbook page</a>.', array('@update' => 'http://drupal.org/handbook/modules/update', '@module' => url('admin/modules'))),
+        'description' => $t('Update notifications are not enabled. It is <strong>highly recommended</strong> that you enable the update manager module from the <a href="@module">module administration page</a> in order to stay up-to-date on new releases. For more information, <a href="@update">Update status handbook page</a>.', array('@update' => 'http://drupal.org/handbook/modules/update', '@module' => url('admin/modules'))),
       );
     }
     else {

Modified: branches/upstream/current-7/modules/system/system.test
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/system/system.test?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/system/system.test (original)
+++ branches/upstream/current-7/modules/system/system.test Mon Dec 26 16:49:44 2011
@@ -419,6 +419,35 @@
 
     // Verify that the module has been disabled.
     $this->assertModules(array('system_dependencies_test'), FALSE);
+  }
+
+  /**
+   * Tests enabling a module that depends on an incompatible version of a module.
+   */
+  function testIncompatibleModuleVersionDependency() {
+    // Test that the system_incompatible_module_version_dependencies_test is
+    // marked as having an incompatible dependency.
+    $this->drupalGet('admin/modules');
+    $this->assertRaw(t('@module (<span class="admin-missing">incompatible with</span> version @version)', array(
+      '@module' => 'System incompatible module version test (>2.0)',
+      '@version' => '1.0',
+    )), 'A module that depends on an incompatible version of a module is marked as such.');
+    $checkbox = $this->xpath('//input[@type="checkbox" and @disabled="disabled" and @name="modules[Testing][system_incompatible_module_version_dependencies_test][enable]"]');
+    $this->assert(count($checkbox) == 1, t('Checkbox for the module is disabled.'));
+  }
+
+  /**
+   * Tests enabling a module that depends on a module with an incompatible core version.
+   */
+  function testIncompatibleCoreVersionDependency() {
+    // Test that the system_incompatible_core_version_dependencies_test is
+    // marked as having an incompatible dependency.
+    $this->drupalGet('admin/modules');
+    $this->assertRaw(t('@module (<span class="admin-missing">incompatible with</span> this version of Drupal core)', array(
+      '@module' => 'System incompatible core version test',
+    )), 'A module that depends on a module with an incompatible core version is marked as such.');
+    $checkbox = $this->xpath('//input[@type="checkbox" and @disabled="disabled" and @name="modules[Testing][system_incompatible_core_version_dependencies_test][enable]"]');
+    $this->assert(count($checkbox) == 1, t('Checkbox for the module is disabled.'));
   }
 
   /**
@@ -2086,7 +2115,7 @@
   }
 
   function setUp() {
-    parent::setUp();
+    parent::setUp('update_script_test');
     $this->update_url = $GLOBALS['base_url'] . '/update.php';
     $this->update_user = $this->drupalCreateUser(array('administer software updates'));
   }
@@ -2120,6 +2149,58 @@
     $this->drupalLogin($user1);
     $this->drupalGet($this->update_url, array('external' => TRUE));
     $this->assertResponse(200);
+  }
+
+  /**
+   * Tests that requirements warnings and errors are correctly displayed.
+   */
+  function testRequirements() {
+    $this->drupalLogin($this->update_user);
+
+    // If there are no requirements warnings or errors, we expect to be able to
+    // go through the update process uninterrupted.
+    $this->drupalGet($this->update_url, array('external' => TRUE));
+    $this->drupalPost(NULL, array(), t('Continue'));
+    $this->assertText(t('No pending updates.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared when there were no requirements warnings or errors.');
+
+    // If there is a requirements warning, we expect it to be initially
+    // displayed, but clicking the link to proceed should allow us to go
+    // through the rest of the update process uninterrupted.
+
+    // First, run this test with pending updates to make sure they can be run
+    // successfully.
+    variable_set('update_script_test_requirement_type', REQUIREMENT_WARNING);
+    drupal_set_installed_schema_version('update_script_test', drupal_get_installed_schema_version('update_script_test') - 1);
+    $this->drupalGet($this->update_url, array('external' => TRUE));
+    $this->assertText('This is a requirements warning provided by the update_script_test module.');
+    $this->clickLink('try again');
+    $this->assertNoText('This is a requirements warning provided by the update_script_test module.');
+    $this->drupalPost(NULL, array(), t('Continue'));
+    $this->drupalPost(NULL, array(), t('Apply pending updates'));
+    $this->assertText(t('The update_script_test_update_7000() update was executed successfully.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after resolving a requirements warning and applying updates.');
+
+    // Now try again without pending updates to make sure that works too.
+    $this->drupalGet($this->update_url, array('external' => TRUE));
+    $this->assertText('This is a requirements warning provided by the update_script_test module.');
+    $this->clickLink('try again');
+    $this->assertNoText('This is a requirements warning provided by the update_script_test module.');
+    $this->drupalPost(NULL, array(), t('Continue'));
+    $this->assertText(t('No pending updates.'), t('End of update process was reached.'));
+    // Confirm that all caches were cleared.
+    $this->assertText(t('hook_flush_caches() invoked for update_script_test.module.'), 'Caches were cleared after applying updates and re-running the script.');
+
+    // If there is a requirements error, it should be displayed even after
+    // clicking the link to proceed (since the problem that triggered the error
+    // has not been fixed).
+    variable_set('update_script_test_requirement_type', REQUIREMENT_ERROR);
+    $this->drupalGet($this->update_url, array('external' => TRUE));
+    $this->assertText('This is a requirements error provided by the update_script_test module.');
+    $this->clickLink('try again');
+    $this->assertText('This is a requirements error provided by the update_script_test module.');
   }
 
   /**

Modified: branches/upstream/current-7/modules/taxonomy/taxonomy.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/taxonomy/taxonomy.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/taxonomy/taxonomy.info (original)
+++ branches/upstream/current-7/modules/taxonomy/taxonomy.info Mon Dec 26 16:49:44 2011
@@ -8,8 +8,8 @@
 files[] = taxonomy.test
 configure = admin/structure/taxonomy
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/taxonomy/taxonomy.module
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/taxonomy/taxonomy.module?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/taxonomy/taxonomy.module (original)
+++ branches/upstream/current-7/modules/taxonomy/taxonomy.module Mon Dec 26 16:49:44 2011
@@ -863,7 +863,8 @@
  *   A taxonomy term ID.
  *
  * @return
- *   An array of term objects which are the parents of the term $tid.
+ *   An array of term objects which are the parents of the term $tid, or an
+ *   empty array if parents are not found.
  */
 function taxonomy_get_parents($tid) {
   $parents = &drupal_static(__FUNCTION__, array());

Modified: branches/upstream/current-7/modules/taxonomy/taxonomy.pages.inc
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/taxonomy/taxonomy.pages.inc?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/taxonomy/taxonomy.pages.inc (original)
+++ branches/upstream/current-7/modules/taxonomy/taxonomy.pages.inc Mon Dec 26 16:49:44 2011
@@ -77,7 +77,35 @@
 }
 
 /**
- * Helper function for autocompletion
+ * Page callback: Outputs JSON for taxonomy autocomplete suggestions.
+ *
+ * Path: taxonomy/autocomplete
+ *
+ * This callback outputs term name suggestions in response to Ajax requests
+ * made by the taxonomy autocomplete widget for taxonomy term reference
+ * fields. The output is a JSON object of plain-text term suggestions, keyed by
+ * the user-entered value with the completed term name appended.  Term names
+ * containing commas are wrapped in quotes.
+ *
+ * For example, suppose the user has entered the string 'red fish, blue' in the
+ * field, and there are two taxonomy terms, 'blue fish' and 'blue moon'. The
+ * JSON output would have the following structure:
+ * @code
+ *   {
+ *     "red fish, blue fish": "blue fish",
+ *     "red fish, blue moon": "blue moon",
+ *   };
+ * @endcode
+ *
+ * @param $field_name
+ *   The name of the term reference field.
+ * @param $tags_typed
+ *   (optional) A comma-separated list of term names entered in the
+ *   autocomplete form element. Only the last term is used for autocompletion.
+ *   Defaults to '' (an empty string).
+ *
+ * @see taxonomy_menu()
+ * @see taxonomy_field_widget_info()
  */
 function taxonomy_autocomplete($field_name, $tags_typed = '') {
   $field = field_info_field($field_name);

Modified: branches/upstream/current-7/modules/toolbar/toolbar.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/toolbar/toolbar.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/toolbar/toolbar.info (original)
+++ branches/upstream/current-7/modules/toolbar/toolbar.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 package = Core
 version = VERSION
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/tracker/tracker.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/tracker/tracker.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/tracker/tracker.info (original)
+++ branches/upstream/current-7/modules/tracker/tracker.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 core = 7.x
 files[] = tracker.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/translation/tests/translation_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/translation/tests/translation_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/translation/tests/translation_test.info (original)
+++ branches/upstream/current-7/modules/translation/tests/translation_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 version = VERSION
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/translation/translation.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/translation/translation.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/translation/translation.info (original)
+++ branches/upstream/current-7/modules/translation/translation.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 core = 7.x
 files[] = translation.test
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/trigger/tests/trigger_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/trigger/tests/trigger_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/trigger/tests/trigger_test.info (original)
+++ branches/upstream/current-7/modules/trigger/tests/trigger_test.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/trigger/trigger.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/trigger/trigger.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/trigger/trigger.info (original)
+++ branches/upstream/current-7/modules/trigger/trigger.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = trigger.test
 configure = admin/structure/trigger
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/update/tests/aaa_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/update/tests/aaa_update_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/update/tests/aaa_update_test.info (original)
+++ branches/upstream/current-7/modules/update/tests/aaa_update_test.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/update/tests/bbb_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/update/tests/bbb_update_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/update/tests/bbb_update_test.info (original)
+++ branches/upstream/current-7/modules/update/tests/bbb_update_test.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/update/tests/ccc_update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/update/tests/ccc_update_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/update/tests/ccc_update_test.info (original)
+++ branches/upstream/current-7/modules/update/tests/ccc_update_test.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/update/tests/update_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/update/tests/update_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/update/tests/update_test.info (original)
+++ branches/upstream/current-7/modules/update/tests/update_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/update/update.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/update/update.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/update/update.info (original)
+++ branches/upstream/current-7/modules/update/update.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 files[] = update.test
 configure = admin/reports/updates/settings
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/user/tests/user_form_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/user/tests/user_form_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/user/tests/user_form_test.info (original)
+++ branches/upstream/current-7/modules/user/tests/user_form_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/modules/user/user.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/modules/user/user.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/modules/user/user.info (original)
+++ branches/upstream/current-7/modules/user/user.info Mon Dec 26 16:49:44 2011
@@ -9,8 +9,8 @@
 configure = admin/config/people
 stylesheets[all][] = user.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/profiles/minimal/minimal.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/profiles/minimal/minimal.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/profiles/minimal/minimal.info (original)
+++ branches/upstream/current-7/profiles/minimal/minimal.info Mon Dec 26 16:49:44 2011
@@ -6,8 +6,8 @@
 dependencies[] = dblog
 files[] = minimal.profile
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/profiles/standard/standard.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/profiles/standard/standard.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/profiles/standard/standard.info (original)
+++ branches/upstream/current-7/profiles/standard/standard.info Mon Dec 26 16:49:44 2011
@@ -25,8 +25,8 @@
 dependencies[] = rdf
 files[] = standard.profile
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info (original)
+++ branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info (original)
+++ branches/upstream/current-7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info Mon Dec 26 16:49:44 2011
@@ -8,8 +8,8 @@
 core = 6.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/profiles/testing/testing.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/profiles/testing/testing.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/profiles/testing/testing.info (original)
+++ branches/upstream/current-7/profiles/testing/testing.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Added: branches/upstream/current-7/scripts/dump-database-d7.sh
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/scripts/dump-database-d7.sh?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/scripts/dump-database-d7.sh (added)
+++ branches/upstream/current-7/scripts/dump-database-d7.sh Mon Dec 26 16:49:44 2011
@@ -1,0 +1,90 @@
+#!/usr/bin/env php
+<?php
+
+/**
+ * @file
+ * Dumps a Drupal 7 database into a PHP script to test the upgrade process.
+ *
+ * Run this script at the root of an existing Drupal 7 installation.
+ *
+ * The output of this script is a PHP script that can be run inside Drupal 7
+ * and recreates the Drupal 7 database as dumped. Transient data from cache,
+ * session, and watchdog tables are not recorded.
+ */
+
+// Define default settings.
+define('DRUPAL_ROOT', getcwd());
+$cmd = 'index.php';
+$_SERVER['HTTP_HOST']       = 'default';
+$_SERVER['REMOTE_ADDR']     = '127.0.0.1';
+$_SERVER['SERVER_SOFTWARE'] = NULL;
+$_SERVER['REQUEST_METHOD']  = 'GET';
+$_SERVER['QUERY_STRING']    = '';
+$_SERVER['PHP_SELF']        = $_SERVER['REQUEST_URI'] = '/';
+$_SERVER['HTTP_USER_AGENT'] = 'console';
+
+// Bootstrap Drupal.
+include_once './includes/bootstrap.inc';
+drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+
+// Include the utility drupal_var_export() function.
+include_once dirname(__FILE__) . '/../includes/utility.inc';
+
+// Output the PHP header.
+$output = <<<ENDOFHEADER
+<?php
+
+/**
+ * @file
+ * Filled installation of Drupal 7.0, for test purposes.
+ *
+ * This file was generated by the dump-database-d7.sh tool, from an
+ * installation of Drupal 7, filled with data using the generate-d7-content.sh
+ * tool. It has the following modules installed:
+
+ENDOFHEADER;
+
+foreach (module_list() as $module) {
+  $output .= " *  - $module\n";
+}
+$output .= " */\n\n";
+
+// Get the current schema, order it by table name.
+$schema = drupal_get_schema();
+ksort($schema);
+
+// Export all the tables in the schema.
+foreach ($schema as $table => $data) {
+  // Remove descriptions to save time and code.
+  unset($data['description']);
+  foreach ($data['fields'] as &$field) {
+    unset($field['description']);
+  }
+
+  // Dump the table structure.
+  $output .= "db_create_table('" . $table . "', " . drupal_var_export($data) . ");\n";
+
+  // Don't output values for those tables.
+  if (substr($table, 0, 5) == 'cache' || $table == 'sessions' || $table == 'watchdog') {
+    $output .= "\n";
+    continue;
+  }
+
+  // Prepare the export of values.
+  $result = db_query('SELECT * FROM {'. $table .'}', array(), array('fetch' => PDO::FETCH_ASSOC));
+  $insert = '';
+  foreach ($result as $record) {
+    $insert .= '->values('. drupal_var_export($record) .")\n";
+  }
+
+  // Dump the values if there are some.
+  if ($insert) {
+    $output .= "db_insert('". $table . "')->fields(". drupal_var_export(array_keys($data['fields'])) .")\n";
+    $output .= $insert;
+    $output .= "->execute();\n";
+  }
+
+  $output .= "\n";
+}
+
+print $output;

Added: branches/upstream/current-7/scripts/generate-d7-content.sh
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/scripts/generate-d7-content.sh?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/scripts/generate-d7-content.sh (added)
+++ branches/upstream/current-7/scripts/generate-d7-content.sh Mon Dec 26 16:49:44 2011
@@ -1,0 +1,318 @@
+#!/usr/bin/env php
+<?php
+
+/**
+ * @file
+ * Generates content for a Drupal 7 database to test the upgrade process.
+ *
+ * Run this script at the root of an existing Drupal 6 installation.
+ * Steps to use this generation script:
+ * - Install drupal 7.
+ * - Run this script from your Drupal ROOT directory.
+ * - Use the dump-database-d7.sh to generate the D7 file
+ *   modules/simpletest/tests/upgrade/database.filled.php
+ */
+
+// Define settings.
+$cmd = 'index.php';
+define('DRUPAL_ROOT', getcwd());
+$_SERVER['HTTP_HOST']       = 'default';
+$_SERVER['PHP_SELF']        = '/index.php';
+$_SERVER['REMOTE_ADDR']     = '127.0.0.1';
+$_SERVER['SERVER_SOFTWARE'] = NULL;
+$_SERVER['REQUEST_METHOD']  = 'GET';
+$_SERVER['QUERY_STRING']    = '';
+$_SERVER['PHP_SELF']        = $_SERVER['REQUEST_URI'] = '/';
+$_SERVER['HTTP_USER_AGENT'] = 'console';
+$modules_to_enable          = array('path', 'poll', 'taxonomy');
+
+// Bootstrap Drupal.
+include_once './includes/bootstrap.inc';
+drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+
+// Enable requested modules.
+require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc');
+include_once './modules/system/system.admin.inc';
+$form = system_modules();
+foreach ($modules_to_enable as $module) {
+  $form_state['values']['status'][$module] = TRUE;
+}
+$form_state['values']['disabled_modules'] = $form['disabled_modules'];
+system_modules_submit(NULL, $form_state);
+unset($form_state);
+
+// Run cron after installing.
+drupal_cron_run();
+
+// Create six users.
+$query = db_insert('users')->fields(array('uid', 'name', 'pass', 'mail', 'status', 'created', 'access'));
+for ($i = 0; $i < 6; $i++) {
+  $name = "test user $i";
+  $pass = md5("test PassW0rd $i !(.)");
+  $mail = "test$i at example.com";
+  $now = mktime(0, 0, 0, 1, $i + 1, 2010);
+  $query->values(array(db_next_id(), $name, user_hash_password($pass), $mail, 1, $now, $now));
+}
+$query->execute();
+
+// Create vocabularies and terms.
+
+if (module_exists('taxonomy')) {
+  $terms = array();
+
+  // All possible combinations of these vocabulary properties.
+  $hierarchy = array(0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2);
+  $multiple  = array(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1);
+  $required  = array(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1);
+
+  $voc_id = 0;
+  $term_id = 0;
+  for ($i = 0; $i < 24; $i++) {
+    $vocabulary = new stdClass;
+    ++$voc_id;
+    $vocabulary->name = "vocabulary $voc_id (i=$i)";
+    $vocabulary->machine_name = 'vocabulary_' . $voc_id . '_' . $i;
+    $vocabulary->description = "description of ". $vocabulary->name;
+    $vocabulary->multiple = $multiple[$i % 12];
+    $vocabulary->required = $required[$i % 12];
+    $vocabulary->relations = 1;
+    $vocabulary->hierarchy = $hierarchy[$i % 12];
+    $vocabulary->weight = $i;
+    taxonomy_vocabulary_save($vocabulary);
+    $field = array(
+      'field_name' => 'taxonomy_'. $vocabulary->machine_name,
+      'module' => 'taxonomy',
+      'type' => 'taxonomy_term_reference',
+      'cardinality' => $vocabulary->multiple || $vocabulary->tags ? FIELD_CARDINALITY_UNLIMITED : 1,
+      'settings' => array(
+        'required' => $vocabulary->required ? TRUE : FALSE,
+        'allowed_values' => array(
+          array(
+            'vocabulary' => $vocabulary->machine_name,
+            'parent' => 0,
+          ),
+        ),
+      ),
+    );
+    field_create_field($field);
+    $node_types = $i > 11 ? array('page') : array_keys(node_type_get_types());
+    foreach ($node_types as $bundle) {
+      $instance = array(
+        'label' => $vocabulary->name,
+        'field_name' => $field['field_name'],
+        'bundle' => $bundle,
+        'entity_type' => 'node',
+        'settings' => array(),
+        'description' => $vocabulary->help,
+        'required' => $vocabulary->required,
+        'widget' => array(),
+        'display' => array(
+          'default' => array(
+            'type' => 'taxonomy_term_reference_link',
+            'weight' => 10,
+          ),
+          'teaser' => array(
+            'type' => 'taxonomy_term_reference_link',
+            'weight' => 10,
+          ),
+        ),
+      );
+      if ($vocabulary->tags) {
+        $instance['widget'] = array(
+          'type' => 'taxonomy_autocomplete',
+          'module' => 'taxonomy',
+          'settings' => array(
+            'size' => 60,
+            'autocomplete_path' => 'taxonomy/autocomplete',
+          ),
+        );
+      }
+      else {
+        $instance['widget'] = array(
+          'type' => 'select',
+          'module' => 'options',
+          'settings' => array(),
+        );
+      }
+      field_create_instance($instance);
+    }
+    $parents = array();
+    // Vocabularies without hierarchy get one term; single parent vocabularies
+    // get one parent and one child term. Multiple parent vocabularies get
+    // three terms: t0, t1, t2 where t0 is a parent of both t1 and t2.
+    for ($j = 0; $j < $vocabulary->hierarchy + 1; $j++) {
+      $term = new stdClass;
+      $term->vocabulary_machine_name = $vocabulary->machine_name;
+      // For multiple parent vocabularies, omit the t0-t1 relation, otherwise
+      // every parent in the vocabulary is a parent.
+      $term->parent = $vocabulary->hierarchy == 2 && i == 1 ? array() : $parents;
+      ++$term_id;
+      $term->name = "term $term_id of vocabulary $voc_id (j=$j)";
+      $term->description = 'description of ' . $term->name;
+      $term->format = 'filtered_html';
+      $term->weight = $i * 3 + $j;
+      taxonomy_term_save($term);
+      $terms[] = $term->tid;
+      $term_vocabs[$term->tid] = 'taxonomy_' . $vocabulary->machine_name;
+      $parents[] = $term->tid;
+    }
+  }
+}
+
+$node_id = 0;
+$revision_id = 0;
+module_load_include('inc', 'node', 'node.pages');
+for ($i = 0; $i < 24; $i++) {
+  $uid = intval($i / 8) + 3;
+  $user = user_load($uid);
+  $node = new stdClass();
+  $node->uid = $uid;
+  $node->type = $i < 12 ? 'page' : 'story';
+  $node->sticky = 0;
+  ++$node_id;
+  ++$revision_id;
+  $node->title = "node title $node_id rev $revision_id (i=$i)";
+  $node->language = LANGUAGE_NONE;
+  $body_text =  str_repeat("node body ($node->type) - $i", 100);
+  $node->body[$node->language][0]['value'] = $body_text;
+  $node->body[$node->language][0]['summary'] = text_summary($body_text);
+  $node->body[$node->language][0]['format'] = 'filtered_html';
+  $node->status = intval($i / 4) % 2;
+  $node->revision = $i < 12;
+  $node->promote = $i % 2;
+  $node->created = $now + $i * 86400;
+  $node->log = "added $i node";
+  // Make every term association different a little. For nodes with revisions,
+  // make the initial revision have a different set of terms than the
+  // newest revision.
+  $items = array();
+  if (module_exists('taxonomy')) {
+    if ($node->revision) {
+      $node_terms = array($terms[$i], $terms[47-$i]);
+    }
+    else {
+      $node_terms = $terms;
+      unset($node_terms[$i], $node_terms[47 - $i]);
+    }
+    foreach ($node_terms as $tid) {
+      $field_name = $term_vocabs[$tid];
+      $node->{$field_name}[LANGUAGE_NONE][] = array('tid' => $tid);
+    }
+  }
+  $node->path = array('alias' => "content/$node->created");
+  node_save($node);
+  if ($node->revision) {
+    $user = user_load($uid + 3);
+    ++$revision_id;
+    $node->title .= " rev2 $revision_id";
+    $body_text =  str_repeat("node revision body ($node->type) - $i", 100);
+    $node->body[$node->language][0]['value'] = $body_text;
+    $node->body[$node->language][0]['summary'] = text_summary($body_text);
+    $node->body[$node->language][0]['format'] = 'filtered_html';
+    $node->log = "added $i revision";
+    $node_terms = $terms;
+    unset($node_terms[$i], $node_terms[47 - $i]);
+    foreach ($node_terms as $tid) {
+      $field_name = $term_vocabs[$tid];
+      $node->{$field_name}[LANGUAGE_NONE][] = array('tid' => $tid);
+    }
+    node_save($node);
+  }
+}
+
+if (module_exists('poll')) {
+  // Create poll content.
+  for ($i = 0; $i < 12; $i++) {
+    $uid = intval($i / 4) + 3;
+    $user = user_load($uid);
+    $node = new stdClass();
+    $node->uid = $uid;
+    $node->type = 'poll';
+    $node->sticky = 0;
+    $node->title = "poll title $i";
+    $node->language = LANGUAGE_NONE;
+    $node->status = intval($i / 2) % 2;
+    $node->revision = 1;
+    $node->promote = $i % 2;
+    $node->created = REQUEST_TIME + $i * 43200;
+    $node->runtime = 0;
+    $node->active = 1;
+    $node->log = "added $i poll";
+    $node->path = array('alias' => "content/poll/$i");
+
+    $nbchoices = ($i % 4) + 2;
+    for ($c = 0; $c < $nbchoices; $c++) {
+      $node->choice[] = array('chtext' => "Choice $c for poll $i", 'chvotes' => 0, 'weight' => 0);
+    }
+    node_save($node);
+    $path = array(
+      'alias' => "content/poll/$i/results",
+      'source' => "node/$node->nid/results",
+    );
+    path_save($path);
+
+    // Add some votes.
+    $node = node_load($node->nid);
+    $choices = array_keys($node->choice);
+    $original_user = $GLOBALS['user'];
+    for ($v = 0; $v < ($i % 4); $v++) {
+      drupal_static_reset('ip_address');
+      $_SERVER['REMOTE_ADDR'] = "127.0.$v.1";
+      $GLOBALS['user'] = drupal_anonymous_user();// We should have already allowed anon to vote.
+      $c = $v % $nbchoices;
+      $form_state = array();
+      $form_state['values']['choice'] = $choices[$c];
+      $form_state['values']['op'] = t('Vote');
+      drupal_form_submit('poll_view_voting', $form_state, $node);
+    }
+  }
+}
+
+// Test that upgrade works even on a bundle whose parent module was disabled.
+$uid = 6;
+$user = user_load($uid);
+$node = new stdClass();
+$node->uid = $uid;
+$node->type = 'broken';
+$body_text = str_repeat("node body ($node_type) - 37", 100);
+$node->sticky = 0;
+$node->title = "node title 24";
+$node->language = LANGUAGE_NONE;
+$node->body[$node->language][0]['value'] = $body_text;
+$node->body[$node->language][0]['summary'] = text_summary($body_text);
+$node->body[$node->language][0]['format']  = 'filtered_html';
+$node->status = 1;
+$node->revision = 0;
+$node->promote = 0;
+$node->created = 1263769200;
+$node->log = "added a broken node";
+$node->path = array('alias' => "content/1263769200");
+node_save($node);
+db_update('node')
+  ->fields(array(
+    'type' => $node_type,
+  ))
+  ->condition('nid', $node->nid)
+  ->execute();
+if (db_table_exists('field_data_body')) {
+  db_update('field_data_body')
+    ->fields(array(
+      'bundle' => $node_type,
+    ))
+    ->condition('entity_id', $node->nid)
+    ->condition('entity_type', 'node')
+    ->execute();
+  db_update('field_revision_body')
+    ->fields(array(
+      'bundle' => $node_type,
+    ))
+    ->condition('entity_id', $node->nid)
+    ->condition('entity_type', 'node')
+    ->execute();
+}
+db_update('field_config_instance')
+  ->fields(array(
+    'bundle' => $node_type,
+  ))
+  ->condition('bundle', 'article')
+  ->execute();

Added: branches/upstream/current-7/scripts/test.script
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/scripts/test.script?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/scripts/test.script (added)
+++ branches/upstream/current-7/scripts/test.script Mon Dec 26 16:49:44 2011
@@ -1,0 +1,4 @@
+This file is for testing purposes only.
+
+It is used to test the functionality of drupal_get_filename().  See
+BootstrapGetFilenameTestCase::testDrupalGetFilename() for more information.

Modified: branches/upstream/current-7/themes/bartik/bartik.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/bartik/bartik.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/bartik/bartik.info (original)
+++ branches/upstream/current-7/themes/bartik/bartik.info Mon Dec 26 16:49:44 2011
@@ -34,8 +34,8 @@
 settings[shortcut_module_link] = 0
 
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/themes/garland/garland.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/garland/garland.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/garland/garland.info (original)
+++ branches/upstream/current-7/themes/garland/garland.info Mon Dec 26 16:49:44 2011
@@ -7,8 +7,8 @@
 stylesheets[print][] = print.css
 settings[garland_width] = fluid
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/themes/seven/seven.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/seven/seven.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/seven/seven.info (original)
+++ branches/upstream/current-7/themes/seven/seven.info Mon Dec 26 16:49:44 2011
@@ -13,8 +13,8 @@
 regions[sidebar_first] = First sidebar
 regions_hidden[] = sidebar_first
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/themes/seven/style.css
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/seven/style.css?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/seven/style.css (original)
+++ branches/upstream/current-7/themes/seven/style.css Mon Dec 26 16:49:44 2011
@@ -851,7 +851,6 @@
   color: #000;
 }
 ol.task-list li.done {
-  color: #393;
   background: transparent url(images/task-check.png) no-repeat 0 50%;
   color: green;
 }

Modified: branches/upstream/current-7/themes/stark/stark.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/stark/stark.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/stark/stark.info (original)
+++ branches/upstream/current-7/themes/stark/stark.info Mon Dec 26 16:49:44 2011
@@ -5,8 +5,8 @@
 core = 7.x
 stylesheets[all][] = layout.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Added: branches/upstream/current-7/themes/tests/block_test_theme/block_test_theme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/tests/block_test_theme/block_test_theme.info?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/themes/tests/block_test_theme/block_test_theme.info (added)
+++ branches/upstream/current-7/themes/tests/block_test_theme/block_test_theme.info Mon Dec 26 16:49:44 2011
@@ -1,0 +1,20 @@
+name = Block test theme
+description = Theme for testing the block system
+core = 7.x
+hidden = TRUE
+
+regions[sidebar_first] = Left sidebar
+regions_hidden[]  = sidebar_first
+regions[sidebar_second] = Right sidebar
+regions_hidden[]  = sidebar_second
+regions[content] = Content
+regions[header] = Header
+regions[footer] = Footer
+regions[highlighted] = Highlighted
+regions[help] = Help
+
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
+project = "drupal"
+datestamp = "1323125439"
+

Added: branches/upstream/current-7/themes/tests/block_test_theme/page.tpl.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/tests/block_test_theme/page.tpl.php?rev=2244&op=file
==============================================================================
--- branches/upstream/current-7/themes/tests/block_test_theme/page.tpl.php (added)
+++ branches/upstream/current-7/themes/tests/block_test_theme/page.tpl.php Mon Dec 26 16:49:44 2011
@@ -1,0 +1,78 @@
+<?php
+
+/**
+ * @file
+ * Custom theme implementation to display a single Drupal page without
+ * sidebars. The sidebars are hidden by regions_hidden for this theme, so
+ * the default page.tpl.php will not work without throwing exceptions.
+ */
+?>
+
+  <div id="page-wrapper"><div id="page">
+
+    <div id="header"><div class="section clearfix">
+
+      <?php if ($logo): ?>
+        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
+          <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
+        </a>
+      <?php endif; ?>
+
+      <?php if ($site_name || $site_slogan): ?>
+        <div id="name-and-slogan">
+          <?php if ($site_name): ?>
+            <?php if ($title): ?>
+              <div id="site-name"><strong>
+                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+              </strong></div>
+            <?php else: /* Use h1 when the content title is empty */ ?>
+              <h1 id="site-name">
+                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+              </h1>
+            <?php endif; ?>
+          <?php endif; ?>
+
+          <?php if ($site_slogan): ?>
+            <div id="site-slogan"><?php print $site_slogan; ?></div>
+          <?php endif; ?>
+        </div> <!-- /#name-and-slogan -->
+      <?php endif; ?>
+
+      <?php print render($page['header']); ?>
+
+    </div></div> <!-- /.section, /#header -->
+
+    <?php if ($main_menu || $secondary_menu): ?>
+      <div id="navigation"><div class="section">
+        <?php print theme('links__system_main_menu', array('links' => $main_menu, 'attributes' => array('id' => 'main-menu', 'class' => array('links', 'inline', 'clearfix')), 'heading' => t('Main menu'))); ?>
+        <?php print theme('links__system_secondary_menu', array('links' => $secondary_menu, 'attributes' => array('id' => 'secondary-menu', 'class' => array('links', 'inline', 'clearfix')), 'heading' => t('Secondary menu'))); ?>
+      </div></div> <!-- /.section, /#navigation -->
+    <?php endif; ?>
+
+    <?php if ($breadcrumb): ?>
+      <div id="breadcrumb"><?php print $breadcrumb; ?></div>
+    <?php endif; ?>
+
+    <?php print $messages; ?>
+
+    <div id="main-wrapper"><div id="main" class="clearfix">
+
+      <div id="content" class="column"><div class="section">
+        <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?>
+        <a id="main-content"></a>
+        <?php print render($title_prefix); ?>
+        <?php if ($title): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
+        <?php print render($title_suffix); ?>
+        <?php if ($tabs = render($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
+        <?php print render($page['help']); ?>
+        <?php if ($action_links): ?><ul class="action-links"><?php print render($action_links); ?></ul><?php endif; ?>
+        <?php print render($page['content']); ?>
+        <?php print $feed_icons; ?>
+      </div></div> <!-- /.section, /#content -->
+    </div></div> <!-- /#main, /#main-wrapper -->
+
+    <div id="footer"><div class="section">
+      <?php print render($page['footer']); ?>
+    </div></div> <!-- /.section, /#footer -->
+
+  </div></div> <!-- /#page, /#page-wrapper -->

Modified: branches/upstream/current-7/themes/tests/test_theme/test_theme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/tests/test_theme/test_theme.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/tests/test_theme/test_theme.info (original)
+++ branches/upstream/current-7/themes/tests/test_theme/test_theme.info Mon Dec 26 16:49:44 2011
@@ -15,8 +15,8 @@
 ; file within the theme folder.
 stylesheets[all][] = system.base.css
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/themes/tests/update_test_basetheme/update_test_basetheme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/tests/update_test_basetheme/update_test_basetheme.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/tests/update_test_basetheme/update_test_basetheme.info (original)
+++ branches/upstream/current-7/themes/tests/update_test_basetheme/update_test_basetheme.info Mon Dec 26 16:49:44 2011
@@ -3,8 +3,8 @@
 core = 7.x
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/themes/tests/update_test_subtheme/update_test_subtheme.info
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/themes/tests/update_test_subtheme/update_test_subtheme.info?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/themes/tests/update_test_subtheme/update_test_subtheme.info (original)
+++ branches/upstream/current-7/themes/tests/update_test_subtheme/update_test_subtheme.info Mon Dec 26 16:49:44 2011
@@ -4,8 +4,8 @@
 base theme = update_test_basetheme
 hidden = TRUE
 
-; Information added by drupal.org packaging script on 2011-10-26
-version = "7.9"
+; Information added by drupal.org packaging script on 2011-12-05
+version = "7.10"
 project = "drupal"
-datestamp = "1319660730"
+datestamp = "1323125439"
 

Modified: branches/upstream/current-7/update.php
URL: http://svn.debian.org/wsvn/pkg-drupal/branches/upstream/current-7/update.php?rev=2244&op=diff
==============================================================================
--- branches/upstream/current-7/update.php (original)
+++ branches/upstream/current-7/update.php Mon Dec 26 16:49:44 2011
@@ -108,6 +108,9 @@
     $form['links'] = array(
       '#markup' => theme('item_list', array('items' => update_helpful_links())),
     );
+
+    // No updates to run, so caches won't get flushed later.  Clear them now.
+    drupal_flush_all_caches();
   }
   else {
     $form['help'] = array(
@@ -245,7 +248,8 @@
   $output .= "<li>Install your new files in the appropriate location, as described in the handbook.</li>\n";
   $output .= "</ol>\n";
   $output .= "<p>When you have performed the steps above, you may proceed.</p>\n";
-  $output .= '<form method="post" action="update.php?op=selection&token=' . $token . '"><p><input type="submit" value="Continue" class="form-submit" /></p></form>';
+  $form_action = check_url(drupal_current_script_url(array('op' => 'selection', 'token' => $token)));
+  $output .= '<form method="post" action="' . $form_action . '"><p><input type="submit" value="Continue" class="form-submit" /></p></form>';
   $output .= "\n";
   return $output;
 }
@@ -316,20 +320,26 @@
 }
 
 /**
- * Check update requirements and report any errors.
- */
-function update_check_requirements() {
+ * Check update requirements and report any errors or (optionally) warnings.
+ *
+ * @param $skip_warnings
+ *   (optional) If set to TRUE, requirement warnings will be ignored, and a
+ *   report will only be issued if there are requirement errors. Defaults to
+ *   FALSE.
+ */
+function update_check_requirements($skip_warnings = FALSE) {
   // Check requirements of all loaded modules.
   $requirements = module_invoke_all('requirements', 'update');
   $requirements += update_extra_requirements();
   $severity = drupal_requirements_severity($requirements);
 
-  // If there are issues, report them.
-  if ($severity == REQUIREMENT_ERROR) {
+  // If there are errors, always display them. If there are only warnings, skip
+  // them if the caller has indicated they should be skipped.
+  if ($severity == REQUIREMENT_ERROR || ($severity == REQUIREMENT_WARNING && !$skip_warnings)) {
     update_task_list('requirements');
     drupal_set_title('Requirements problem');
     $status_report = theme('status_report', array('requirements' => $requirements));
-    $status_report .= 'Check the error messages and <a href="' . check_url(request_uri()) . '">try again</a>.';
+    $status_report .= 'Check the error messages and <a href="' . check_url(drupal_requirements_url($severity)) . '">try again</a>.';
     print theme('update_page', array('content' => $status_report));
     exit();
   }
@@ -385,8 +395,9 @@
   // Set up theme system for the maintenance page.
   drupal_maintenance_theme();
 
-  // Check the update requirements for Drupal.
-  update_check_requirements();
+  // Check the update requirements for Drupal. Only report on errors at this
+  // stage, since the real requirements check happens further down.
+  update_check_requirements(TRUE);
 
   // Redirect to the update information page if all requirements were met.
   install_goto('update.php?op=info');
@@ -418,8 +429,12 @@
 
   update_fix_compatibility();
 
-  // Check the update requirements for all modules.
-  update_check_requirements();
+  // Check the update requirements for all modules. If there are warnings, but
+  // no errors, skip reporting them if the user has provided a URL parameter
+  // acknowledging the warnings and indicating a desire to continue anyway. See
+  // drupal_requirements_url().
+  $skip_warnings = !empty($_GET['continue']);
+  update_check_requirements($skip_warnings);
 
   $op = isset($_REQUEST['op']) ? $_REQUEST['op'] : '';
   switch ($op) {
@@ -433,7 +448,12 @@
 
     case 'Apply pending updates':
       if (isset($_GET['token']) && $_GET['token'] == drupal_get_token('update')) {
-        update_batch($_POST['start'], $base_url . '/update.php?op=results', $base_url . '/update.php');
+        // Generate absolute URLs for the batch processing (using $base_root),
+        // since the batch API will pass them to url() which does not handle
+        // update.php correctly by default.
+        $batch_url = $base_root . drupal_current_script_url();
+        $redirect_url = $base_root . drupal_current_script_url(array('op' => 'results'));
+        update_batch($_POST['start'], $redirect_url, $batch_url);
         break;
       }
 




More information about the Pkg-drupal-commits mailing list