From bf0f9b940ef6aceb22351d4fc42fa5f6a03ec885 Mon Sep 17 00:00:00 2001 From: Eric Rasmussen <eric@unl.edu> Date: Mon, 19 Dec 2011 22:58:58 +0000 Subject: [PATCH] [gh-273] Merging test into staging -c1347 git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@1370 20a16fea-79d4-4915-8869-1ea9d5ebf173 --- CHANGELOG.txt | 20 + MAINTAINERS.txt | 19 +- includes/ajax.inc | 17 +- includes/bootstrap.inc | 21 +- includes/common.inc | 68 +-- includes/install.core.inc | 41 +- includes/install.inc | 63 ++- includes/iso.inc | 1 + includes/locale.inc | 129 ++++-- includes/module.inc | 18 +- includes/path.inc | 10 +- includes/theme.inc | 166 ++++++- includes/utility.inc | 7 + misc/authorize.js | 1 - misc/drupal.js | 24 +- modules/aggregator/aggregator.api.php | 44 +- modules/aggregator/aggregator.info | 6 +- modules/aggregator/tests/aggregator_test.info | 6 +- modules/block/block.info | 6 +- modules/block/block.test | 36 ++ modules/block/tests/block_test.info | 6 +- modules/blog/blog.info | 6 +- modules/book/book.info | 6 +- modules/color/color.info | 6 +- modules/comment/comment.info | 6 +- modules/contact/contact.info | 6 +- modules/contextual/contextual-rtl.css | 4 + modules/contextual/contextual.css | 4 + modules/contextual/contextual.info | 6 +- modules/contextual/contextual.js | 7 +- modules/contextual/contextual.module | 9 +- modules/dashboard/dashboard.info | 6 +- modules/dblog/dblog.info | 6 +- modules/field/field.api.php | 4 +- modules/field/field.info | 6 +- .../field_sql_storage/field_sql_storage.info | 6 +- modules/field/modules/list/list.info | 6 +- .../field/modules/list/tests/list_test.info | 6 +- modules/field/modules/number/number.info | 6 +- modules/field/modules/options/options.info | 6 +- modules/field/modules/text/text.info | 6 +- modules/field/tests/field_test.info | 6 +- modules/field_ui/field_ui.admin.inc | 8 +- modules/field_ui/field_ui.info | 6 +- modules/file/file.css | 4 - modules/file/file.field.inc | 1 + modules/file/file.info | 6 +- modules/file/file.module | 11 +- modules/file/tests/file_module_test.info | 6 +- modules/filter/filter.info | 6 +- modules/forum/forum.info | 6 +- modules/forum/forum.module | 35 +- modules/help/help.info | 6 +- modules/image/image.info | 6 +- modules/image/tests/image_module_test.info | 6 +- modules/locale/locale.info | 6 +- modules/locale/locale.test | 68 ++- modules/locale/tests/locale_test.info | 6 +- modules/locale/tests/locale_test.js | 13 +- modules/menu/menu.admin.inc | 2 +- modules/menu/menu.info | 6 +- modules/node/node.api.php | 8 +- modules/node/node.info | 6 +- modules/node/node.test | 15 +- modules/node/tests/node_access_test.info | 6 +- modules/node/tests/node_test.info | 6 +- modules/node/tests/node_test_exception.info | 6 +- modules/openid/openid.info | 6 +- modules/openid/tests/openid_test.info | 6 +- modules/overlay/overlay-child-rtl.css | 2 +- modules/overlay/overlay.info | 6 +- modules/overlay/overlay.module | 2 +- modules/path/path.info | 6 +- modules/php/php.info | 6 +- modules/poll/poll.info | 6 +- modules/profile/profile.info | 6 +- modules/profile/profile.module | 2 +- modules/profile/profile.test | 40 ++ modules/rdf/rdf.info | 6 +- modules/rdf/tests/rdf_test.info | 6 +- modules/search/search.info | 6 +- modules/search/search.test | 2 +- .../search/tests/search_embedded_form.info | 6 +- modules/search/tests/search_extra_type.info | 6 +- modules/shortcut/shortcut.info | 6 +- modules/simpletest/drupal_web_test_case.php | 12 +- modules/simpletest/simpletest.info | 6 +- .../simpletest/tests/actions_loop_test.info | 6 +- modules/simpletest/tests/ajax.test | 58 +++ modules/simpletest/tests/ajax_forms_test.info | 6 +- .../simpletest/tests/ajax_forms_test.module | 41 ++ modules/simpletest/tests/ajax_test.info | 6 +- modules/simpletest/tests/batch_test.info | 6 +- modules/simpletest/tests/bootstrap.test | 12 +- modules/simpletest/tests/common.test | 8 + modules/simpletest/tests/common_test.info | 6 +- modules/simpletest/tests/common_test.module | 28 ++ .../tests/common_test_cron_helper.info | 6 +- modules/simpletest/tests/database_test.info | 6 +- ...drupal_system_listing_compatible_test.info | 6 +- ...upal_system_listing_incompatible_test.info | 6 +- .../simpletest/tests/entity_cache_test.info | 6 +- .../tests/entity_cache_test_dependency.info | 6 +- .../tests/entity_crud_hook_test.info | 6 +- modules/simpletest/tests/error_test.info | 6 +- modules/simpletest/tests/file_test.info | 6 +- modules/simpletest/tests/filter_test.info | 6 +- modules/simpletest/tests/form_test.info | 6 +- modules/simpletest/tests/image_test.info | 6 +- modules/simpletest/tests/menu_test.info | 6 +- modules/simpletest/tests/module_test.info | 6 +- modules/simpletest/tests/path.test | 8 + .../simpletest/tests/requirements1_test.info | 6 +- .../simpletest/tests/requirements2_test.info | 6 +- modules/simpletest/tests/session_test.info | 6 +- .../tests/system_dependencies_test.info | 6 +- ...atible_core_version_dependencies_test.info | 13 + ...ible_core_version_dependencies_test.module | 1 + ...system_incompatible_core_version_test.info | 12 + ...stem_incompatible_core_version_test.module | 1 + ...ible_module_version_dependencies_test.info | 14 + ...le_module_version_dependencies_test.module | 1 + ...stem_incompatible_module_version_test.info | 12 + ...em_incompatible_module_version_test.module | 1 + modules/simpletest/tests/system_test.info | 6 +- modules/simpletest/tests/system_test.module | 8 + modules/simpletest/tests/taxonomy_test.info | 6 +- modules/simpletest/tests/theme.test | 2 +- modules/simpletest/tests/theme_test.info | 6 +- .../simpletest/tests/update_script_test.info | 12 + .../tests/update_script_test.install | 45 ++ .../tests/update_script_test.module | 18 + modules/simpletest/tests/update_test_1.info | 6 +- modules/simpletest/tests/update_test_2.info | 6 +- modules/simpletest/tests/update_test_3.info | 6 +- .../drupal-7.bare.minimal.database.php.gz | Bin 0 -> 39843 bytes ...drupal-7.bare.standard_all.database.php.gz | Bin 0 -> 77424 bytes .../drupal-7.filled.minimal.database.php.gz | Bin 0 -> 41805 bytes ...upal-7.filled.standard_all.database.php.gz | Bin 0 -> 97562 bytes modules/simpletest/tests/upgrade/upgrade.test | 416 +++++++++++++++++- modules/simpletest/tests/url_alter_test.info | 6 +- .../simpletest/tests/url_alter_test.module | 4 + modules/simpletest/tests/xmlrpc_test.info | 6 +- modules/statistics/statistics.info | 6 +- modules/statistics/statistics.module | 7 +- modules/statistics/statistics.test | 26 +- modules/syslog/syslog.info | 6 +- modules/system/system.admin.inc | 9 + modules/system/system.api.php | 19 +- modules/system/system.base.css | 8 +- modules/system/system.info | 6 +- modules/system/system.install | 2 +- modules/system/system.test | 83 +++- modules/taxonomy/taxonomy.info | 6 +- modules/taxonomy/taxonomy.module | 3 +- modules/taxonomy/taxonomy.pages.inc | 30 +- modules/toolbar/toolbar.info | 6 +- modules/tracker/tracker.info | 6 +- .../translation/tests/translation_test.info | 6 +- modules/translation/translation.info | 6 +- modules/trigger/tests/trigger_test.info | 6 +- modules/trigger/trigger.info | 6 +- modules/update/tests/aaa_update_test.info | 6 +- modules/update/tests/bbb_update_test.info | 6 +- modules/update/tests/ccc_update_test.info | 6 +- modules/update/tests/update_test.info | 6 +- modules/update/update.info | 6 +- modules/user/tests/user_form_test.info | 6 +- modules/user/user.info | 6 +- profiles/minimal/minimal.info | 6 +- profiles/standard/standard.info | 6 +- ...drupal_system_listing_compatible_test.info | 6 +- ...upal_system_listing_incompatible_test.info | 6 +- profiles/testing/testing.info | 6 +- scripts/dump-database-d7.sh | 90 ++++ scripts/generate-d7-content.sh | 318 +++++++++++++ scripts/test.script | 4 + themes/bartik/bartik.info | 6 +- themes/garland/garland.info | 6 +- themes/seven/seven.info | 6 +- themes/seven/style.css | 1 - themes/stark/stark.info | 6 +- .../block_test_theme/block_test_theme.info | 20 + themes/tests/block_test_theme/page.tpl.php | 78 ++++ themes/tests/test_theme/test_theme.info | 6 +- .../update_test_basetheme.info | 6 +- .../update_test_subtheme.info | 6 +- update.php | 42 +- 188 files changed, 2424 insertions(+), 623 deletions(-) create mode 100644 modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info create mode 100644 modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module create mode 100644 modules/simpletest/tests/system_incompatible_core_version_test.info create mode 100644 modules/simpletest/tests/system_incompatible_core_version_test.module create mode 100644 modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info create mode 100644 modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module create mode 100644 modules/simpletest/tests/system_incompatible_module_version_test.info create mode 100644 modules/simpletest/tests/system_incompatible_module_version_test.module create mode 100644 modules/simpletest/tests/update_script_test.info create mode 100644 modules/simpletest/tests/update_script_test.install create mode 100644 modules/simpletest/tests/update_script_test.module create mode 100644 modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz create mode 100644 modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz create mode 100644 modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz create mode 100644 modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz create mode 100644 scripts/dump-database-d7.sh create mode 100644 scripts/generate-d7-content.sh create mode 100644 scripts/test.script create mode 100644 themes/tests/block_test_theme/block_test_theme.info create mode 100644 themes/tests/block_test_theme/page.tpl.php diff --git a/CHANGELOG.txt b/CHANGELOG.txt index de4095dc..2313c111 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,4 +1,24 @@ +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 ---------------------- - Critical fixes to OpenID to spec violations that could allow for diff --git a/MAINTAINERS.txt b/MAINTAINERS.txt index 30fa8275..103eb5a6 100644 --- a/MAINTAINERS.txt +++ b/MAINTAINERS.txt @@ -1,16 +1,14 @@ -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> @@ -18,6 +16,11 @@ Drupal 7 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> - Randy Fay 'rfay' <http://drupal.org/user/30906> diff --git a/includes/ajax.inc b/includes/ajax.inc index d70808ef..cda55b42 100644 --- a/includes/ajax.inc +++ b/includes/ajax.inc @@ -262,19 +262,13 @@ function ajax_render($commands = array()) { } } - // 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 @@ function ajax_render($commands = array()) { $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)); } diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index 6fcced70..2e6e7d5a 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -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_LTR', 0); define('LANGUAGE_RTL', 1); /** - * For convenience, define a short form of the request time global. + * Time of the current request in seconds elapsed since the Unix Epoch. * - * REQUEST_TIME is a float with microseconds since PHP 5.4.0, but float - * timestamps confuses most of the PHP functions (including date_create()). + * 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']); @@ -852,6 +856,11 @@ function drupal_get_filename($type, $name, $filename = NULL) { // 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(); } @@ -2524,7 +2533,6 @@ function get_t() { * Initialize all the defined language types. */ function drupal_language_initialize() { - global $language; $types = language_types(); // Ensure the language is correctly returned, even without multilanguage @@ -2544,9 +2552,6 @@ function drupal_language_initialize() { // environments. bootstrap_invoke_all('language_init'); } - - // Send appropriate HTTP-Header for browsers and search engines. - header('Content-Language: ' . $language->language); } /** diff --git a/includes/common.inc b/includes/common.inc index ae039571..9d6bd3c0 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -832,7 +832,7 @@ function drupal_http_request($url, array $options = array()) { // 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 @@ function filter_xss($string, $allowed_tags = array('a', 'em', 'strong', 'cite', 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 @@ function _filter_xss_split($m, $store = FALSE) { $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 @@ function _filter_xss_split($m, $store = FALSE) { } if (!isset($allowed_html[strtolower($elem)])) { - // Disallowed HTML element + // Disallowed HTML element. return ''; } @@ -1423,7 +1423,7 @@ function _filter_xss_split($m, $store = FALSE) { $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 @@ function _filter_xss_attributes($attr) { 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 @@ function _filter_xss_attributes($attr) { 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 @@ function _filter_xss_attributes($attr) { 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 @@ function _filter_xss_attributes($attr) { } if ($working == 0) { - // not well formed, remove and try again + // Not well formed; remove and try again. $attr = preg_replace('/ ^ ( @@ -2469,6 +2469,10 @@ function drupal_deliver_html_page($page_callback_result) { 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)) { // @todo: Break these up into separate functions? @@ -5043,7 +5047,7 @@ function drupal_cron_run() { 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): @@ -5057,7 +5061,7 @@ function drupal_cron_run() { } } - // Record cron time + // Record cron time. variable_set('cron_last', REQUEST_TIME); watchdog('cron', 'Cron run completed.', array(), WATCHDOG_NOTICE); @@ -5092,7 +5096,7 @@ function drupal_cron_cleanup() { 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'); } } @@ -5161,14 +5165,14 @@ function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1) $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'; } @@ -6420,7 +6424,7 @@ function drupal_array_nested_key_exists(array $array, array $parents) { */ function drupal_common_theme() { return array( - // theme.inc + // From theme.inc. 'html' => array( 'render element' => 'page', 'template' => 'html', @@ -6496,7 +6500,7 @@ function drupal_common_theme() { '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', @@ -6516,7 +6520,7 @@ function drupal_common_theme() { '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), ), @@ -6535,7 +6539,7 @@ function drupal_common_theme() { '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', ), @@ -6551,7 +6555,7 @@ function drupal_common_theme() { 'menu_local_tasks' => array( 'variables' => array('primary' => array(), 'secondary' => array()), ), - // from form.inc + // From form.inc. 'select' => array( 'render element' => 'element', ), @@ -7029,19 +7033,19 @@ function drupal_parse_info_format($data) { )\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); @@ -7057,7 +7061,7 @@ function drupal_parse_info_format($data) { $value = $constants[$value]; } - // Insert actual value + // Insert actual value. if ($last == '') { $last = count($parent); } diff --git a/includes/install.core.inc b/includes/install.core.inc index a74dfdf0..ec3a8539 100644 --- a/includes/install.core.inc +++ b/includes/install.core.inc @@ -570,6 +570,12 @@ function install_tasks($install_state) { // 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 @@ function install_tasks($install_state) { // 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 @@ function install_display_output($output, $install_state) { * * @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 @@ function install_verify_requirements(&$install_state) { // 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_already_done_error() { */ 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 @@ function install_import_locales(&$install_state) { * 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 @@ function install_configure_form_submit($form, &$form_state) { // 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); diff --git a/includes/install.inc b/includes/install.inc index 516e1461..6411f8f1 100644 --- a/includes/install.inc +++ b/includes/install.inc @@ -999,7 +999,6 @@ function drupal_install_fix_file($file, $mask, $message = TRUE) { } } - /** * Send the user to a different installer page. * @@ -1016,6 +1015,68 @@ function install_goto($path) { 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); +} + /** * Functional equivalent of t(), used when some systems are not available. * diff --git a/includes/iso.inc b/includes/iso.inc index dabbefdd..a88de57e 100644 --- a/includes/iso.inc +++ b/includes/iso.inc @@ -74,6 +74,7 @@ function _country_get_predefined_list() { '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'), diff --git a/includes/locale.inc b/includes/locale.inc index 6ebb8972..a00887d2 100644 --- a/includes/locale.inc +++ b/includes/locale.inc @@ -42,6 +42,36 @@ define('LOCALE_LANGUAGE_NEGOTIATION_SESSION', 'locale-session'); */ 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 * if new translated version available. @@ -1447,6 +1477,9 @@ function _locale_parse_js_file($filepath) { [^\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,55 +1507,73 @@ function _locale_parse_js_file($filepath) { (?:\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); + $matches = array(); - // 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); + // 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 @@ function _locale_rebuild_js($langcode = NULL) { // 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. diff --git a/includes/module.inc b/includes/module.inc index 66c77f57..3a019f26 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -952,10 +952,24 @@ function drupal_alter($type, &$data, &$context1 = NULL, &$context2 = NULL) { } // 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 diff --git a/includes/path.inc b/includes/path.inc index db605370..ed5b639f 100644 --- a/includes/path.inc +++ b/includes/path.inc @@ -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']); } /** diff --git a/includes/theme.inc b/includes/theme.inc index 252eec08..3868334a 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -237,18 +237,33 @@ function _drupal_theme_initialize($theme, $base_theme = array(), $registry_callb /** * 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. + * The complete theme registry array, or an instance of the ThemeRegistry + * class. */ -function theme_get_registry() { - static $theme_registry = NULL; +function theme_get_registry($complete = TRUE) { + static $theme_registry = array(); + $key = (int) $complete; - if (!isset($theme_registry)) { + if (!isset($theme_registry[$key])) { list($callback, $arguments) = _theme_registry_callback(); - $theme_registry = call_user_func_array($callback, $arguments); + if (!$complete) { + $arguments[] = FALSE; + } + $theme_registry[$key] = call_user_func_array($callback, $arguments); } - return $theme_registry; + return $theme_registry[$key]; } /** @@ -268,7 +283,7 @@ function _theme_registry_callback($callback = NULL, array $arguments = array()) } /** - * 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 @@ function _theme_registry_callback($callback = NULL, array $arguments = array()) * oldest first order. * @param $theme_engine * The name of the theme engine. + * @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) { - // 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; +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 new ThemeRegistry('theme_registry:runtime:' . $theme->name, 'cache'); } - return $registry; } /** @@ -312,6 +338,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); + } + } + } +} + /** * Process a single implementation of hook_theme(). * @@ -771,7 +895,7 @@ function theme($hook, $variables = array()) { 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 diff --git a/includes/utility.inc b/includes/utility.inc index df6c48fb..d195bff7 100644 --- a/includes/utility.inc +++ b/includes/utility.inc @@ -46,6 +46,13 @@ function drupal_var_export($var, $prefix = '') { $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); } diff --git a/misc/authorize.js b/misc/authorize.js index 66b78979..d522a5ba 100644 --- a/misc/authorize.js +++ b/misc/authorize.js @@ -16,7 +16,6 @@ Drupal.behaviors.authorizeFileTransferForm = { // 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. diff --git a/misc/drupal.js b/misc/drupal.js index 7e2cc4d7..7ae737c6 100644 --- a/misc/drupal.js +++ b/misc/drupal.js @@ -177,13 +177,21 @@ Drupal.formatString = function(str, args) { * 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 @@ Drupal.t = function (str, args) { * 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); } }; diff --git a/modules/aggregator/aggregator.api.php b/modules/aggregator/aggregator.api.php index f31413c4..ea119276 100644 --- a/modules/aggregator/aggregator.api.php +++ b/modules/aggregator/aggregator.api.php @@ -76,33 +76,29 @@ function hook_aggregator_fetch_info() { * 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. diff --git a/modules/aggregator/aggregator.info b/modules/aggregator/aggregator.info index bc576576..3b083729 100644 --- a/modules/aggregator/aggregator.info +++ b/modules/aggregator/aggregator.info @@ -7,8 +7,8 @@ files[] = aggregator.test 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" diff --git a/modules/aggregator/tests/aggregator_test.info b/modules/aggregator/tests/aggregator_test.info index 99756c56..bc4ec71d 100644 --- a/modules/aggregator/tests/aggregator_test.info +++ b/modules/aggregator/tests/aggregator_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/block/block.info b/modules/block/block.info index ce537b5e..a15bc9a6 100644 --- a/modules/block/block.info +++ b/modules/block/block.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/block/block.test b/modules/block/block.test index 21666871..9639b2c1 100644 --- a/modules/block/block.test +++ b/modules/block/block.test @@ -751,3 +751,39 @@ class BlockTemplateSuggestionsUnitTest extends DrupalUnitTestCase { $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.')); + } +} diff --git a/modules/block/tests/block_test.info b/modules/block/tests/block_test.info index 92334aa0..69aeec27 100644 --- a/modules/block/tests/block_test.info +++ b/modules/block/tests/block_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/blog/blog.info b/modules/blog/blog.info index 0c898fa5..91ef6b1c 100644 --- a/modules/blog/blog.info +++ b/modules/blog/blog.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/book/book.info b/modules/book/book.info index 1332bb71..653d6fc2 100644 --- a/modules/book/book.info +++ b/modules/book/book.info @@ -7,8 +7,8 @@ files[] = book.test 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" diff --git a/modules/color/color.info b/modules/color/color.info index 48a7a9e9..203467fc 100644 --- a/modules/color/color.info +++ b/modules/color/color.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/comment/comment.info b/modules/comment/comment.info index 7593ed21..d5b62664 100644 --- a/modules/comment/comment.info +++ b/modules/comment/comment.info @@ -9,8 +9,8 @@ files[] = comment.test 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" diff --git a/modules/contact/contact.info b/modules/contact/contact.info index 57ddb59a..4efaed93 100644 --- a/modules/contact/contact.info +++ b/modules/contact/contact.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/contextual/contextual-rtl.css b/modules/contextual/contextual-rtl.css index 96ffef5c..aecbee04 100644 --- a/modules/contextual/contextual-rtl.css +++ b/modules/contextual/contextual-rtl.css @@ -1,3 +1,7 @@ +/** + * @file + * Stylesheet specific to right-to-left languages. + */ div.contextual-links-wrapper { left: 5px; diff --git a/modules/contextual/contextual.css b/modules/contextual/contextual.css index fd715147..3829328c 100644 --- a/modules/contextual/contextual.css +++ b/modules/contextual/contextual.css @@ -1,3 +1,7 @@ +/** + * @file + * Stylesheet for the Contextual module. + */ /** * Contextual links regions. diff --git a/modules/contextual/contextual.info b/modules/contextual/contextual.info index 0a25b495..e6fdace0 100644 --- a/modules/contextual/contextual.info +++ b/modules/contextual/contextual.info @@ -4,8 +4,8 @@ package = Core 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" diff --git a/modules/contextual/contextual.js b/modules/contextual/contextual.js index ee5b7a05..ebe50913 100644 --- a/modules/contextual/contextual.js +++ b/modules/contextual/contextual.js @@ -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) { diff --git a/modules/contextual/contextual.module b/modules/contextual/contextual.module index 0d6b625e..9514b712 100644 --- a/modules/contextual/contextual.module +++ b/modules/contextual/contextual.module @@ -77,21 +77,17 @@ function contextual_element_info() { } /** - * 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 @@ function contextual_preprocess(&$variables, $hook) { * A renderable array representing contextual links. * * @see menu_contextual_links() + * @see contextual_element_info() */ function contextual_pre_render_links($element) { // Retrieve contextual menu links. diff --git a/modules/dashboard/dashboard.info b/modules/dashboard/dashboard.info index 9425f434..294c0257 100644 --- a/modules/dashboard/dashboard.info +++ b/modules/dashboard/dashboard.info @@ -7,8 +7,8 @@ files[] = dashboard.test 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" diff --git a/modules/dblog/dblog.info b/modules/dblog/dblog.info index c379a61b..7fa0931a 100644 --- a/modules/dblog/dblog.info +++ b/modules/dblog/dblog.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/field/field.api.php b/modules/field/field.api.php index 74eae62a..d0d5da9c 100644 --- a/modules/field/field.api.php +++ b/modules/field/field.api.php @@ -74,8 +74,8 @@ function hook_field_extra_fields() { 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; } } } diff --git a/modules/field/field.info b/modules/field/field.info index 41e1783d..15cab0e7 100644 --- a/modules/field/field.info +++ b/modules/field/field.info @@ -10,8 +10,8 @@ dependencies[] = field_sql_storage 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" diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.info b/modules/field/modules/field_sql_storage/field_sql_storage.info index fd33d00a..dcf342b1 100644 --- a/modules/field/modules/field_sql_storage/field_sql_storage.info +++ b/modules/field/modules/field_sql_storage/field_sql_storage.info @@ -7,8 +7,8 @@ dependencies[] = field 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" diff --git a/modules/field/modules/list/list.info b/modules/field/modules/list/list.info index 01d6a11a..f470ee2e 100644 --- a/modules/field/modules/list/list.info +++ b/modules/field/modules/list/list.info @@ -7,8 +7,8 @@ dependencies[] = field 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" diff --git a/modules/field/modules/list/tests/list_test.info b/modules/field/modules/list/tests/list_test.info index 2647d2a3..78cd65af 100644 --- a/modules/field/modules/list/tests/list_test.info +++ b/modules/field/modules/list/tests/list_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/field/modules/number/number.info b/modules/field/modules/number/number.info index 10c6efa8..78fa8edc 100644 --- a/modules/field/modules/number/number.info +++ b/modules/field/modules/number/number.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/field/modules/options/options.info b/modules/field/modules/options/options.info index a8494fd2..d39c1864 100644 --- a/modules/field/modules/options/options.info +++ b/modules/field/modules/options/options.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/field/modules/text/text.info b/modules/field/modules/text/text.info index f0cfd47f..2460e5cb 100644 --- a/modules/field/modules/text/text.info +++ b/modules/field/modules/text/text.info @@ -7,8 +7,8 @@ dependencies[] = field 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" diff --git a/modules/field/tests/field_test.info b/modules/field/tests/field_test.info index 3d1bb45f..5a408694 100644 --- a/modules/field/tests/field_test.info +++ b/modules/field/tests/field_test.info @@ -6,8 +6,8 @@ files[] = field_test.entity.inc 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" diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc index 693e8153..fa19afc0 100644 --- a/modules/field_ui/field_ui.admin.inc +++ b/modules/field_ui/field_ui.admin.inc @@ -799,7 +799,7 @@ function field_ui_field_overview_form_submit($form, &$form_state) { $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 @@ function field_ui_field_overview_form_submit($form, &$form_state) { $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 @@ function field_ui_widget_type_form_submit($form, &$form_state) { 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 @@ function field_ui_field_delete_form_submit($form, &$form_state) { 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); diff --git a/modules/field_ui/field_ui.info b/modules/field_ui/field_ui.info index 430ea060..3212c2ae 100644 --- a/modules/field_ui/field_ui.info +++ b/modules/field_ui/field_ui.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/file/file.css b/modules/file/file.css index aed1a9d3..40451b8c 100644 --- a/modules/file/file.css +++ b/modules/file/file.css @@ -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; diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc index 35696dda..7f5906ec 100644 --- a/modules/file/file.field.inc +++ b/modules/file/file.field.inc @@ -463,6 +463,7 @@ function file_field_widget_form(&$form, &$form_state, $field, $instance, $langco '#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, ); diff --git a/modules/file/file.info b/modules/file/file.info index 844563ba..12cb795d 100644 --- a/modules/file/file.info +++ b/modules/file/file.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/file/file.module b/modules/file/file.module index 5d7b17af..f979a69f 100644 --- a/modules/file/file.module +++ b/modules/file/file.module @@ -45,7 +45,6 @@ function file_menu() { ); $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 @@ function file_managed_file_process($element, &$form_state, $form) { '#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 @@ function file_managed_file_process($element, &$form_state, $form) { '#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 @@ function file_managed_file_process($element, &$form_state, $form) { '#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, ); } diff --git a/modules/file/tests/file_module_test.info b/modules/file/tests/file_module_test.info index 9af127a5..cf503767 100644 --- a/modules/file/tests/file_module_test.info +++ b/modules/file/tests/file_module_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/filter/filter.info b/modules/filter/filter.info index 216bc59d..3b5d9e58 100644 --- a/modules/filter/filter.info +++ b/modules/filter/filter.info @@ -7,8 +7,8 @@ files[] = filter.test 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" diff --git a/modules/forum/forum.info b/modules/forum/forum.info index d61b9a83..9ebb3283 100644 --- a/modules/forum/forum.info +++ b/modules/forum/forum.info @@ -9,8 +9,8 @@ files[] = forum.test 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" diff --git a/modules/forum/forum.module b/modules/forum/forum.module index 65c54894..f5382163 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -553,27 +553,24 @@ function forum_field_storage_pre_update($entity_type, $entity, &$skip_fields) { $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 = 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->execute(); + // The logic for determining last_comment_count is fairly complex, so + // call _forum_update_forum_index() too. + _forum_update_forum_index($entity->nid); } } diff --git a/modules/help/help.info b/modules/help/help.info index d8d33981..2460f0a9 100644 --- a/modules/help/help.info +++ b/modules/help/help.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/image/image.info b/modules/image/image.info index 205cf8b7..464a0438 100644 --- a/modules/image/image.info +++ b/modules/image/image.info @@ -7,8 +7,8 @@ dependencies[] = file 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" diff --git a/modules/image/tests/image_module_test.info b/modules/image/tests/image_module_test.info index 9874a14e..3088e183 100644 --- a/modules/image/tests/image_module_test.info +++ b/modules/image/tests/image_module_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/locale/locale.info b/modules/locale/locale.info index 1d333719..03c6d801 100644 --- a/modules/locale/locale.info +++ b/modules/locale/locale.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/locale/locale.test b/modules/locale/locale.test index 5ab0d288..5eb1cd34 100644 --- a/modules/locale/locale.test +++ b/modules/locale/locale.test @@ -204,43 +204,65 @@ class LocaleJavascriptTranslationTest extends DrupalWebTestCase { // 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", + "Standard Call t" => '', + "Whitespace Call t" => '', - "Single Quote t", - "Single Quote \\'Escaped\\' t", - "Single Quote Concat strings 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", + "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", + "Context !key Args t" => "Context string", - "Single Quote plural", - "Single Quote @count plural", - "Single Quote \\'Escaped\\' plural", - "Single Quote \\'Escaped\\' @count plural", + "Context Unquoted t" => "Context string unquoted", + "Context Single Quoted t" => "Context string single quoted", + "Context Double Quoted t" => "Context string double quoted", - "Double Quote plural", - "Double Quote @count plural", - "Double Quote \\\"Escaped\\\" plural", - "Double Quote \\\"Escaped\\\" @count plural", + "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.")); diff --git a/modules/locale/tests/locale_test.info b/modules/locale/tests/locale_test.info index aa7ba9a9..2dc30579 100644 --- a/modules/locale/tests/locale_test.info +++ b/modules/locale/tests/locale_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/locale/tests/locale_test.js b/modules/locale/tests/locale_test.js index 251d115c..0693bcad 100644 --- a/modules/locale/tests/locale_test.js +++ b/modules/locale/tests/locale_test.js @@ -16,6 +16,11 @@ Drupal.t("Double Quote t"); 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 @@ formatPlural ( 1, "Whitespace Call plural", -"Whitespace Call @count plural", +"Whitespace Call @count plural" ) ; @@ -33,3 +38,9 @@ Drupal.formatPlural(1, 'Single Quote \'Escaped\' plural', 'Single Quote \'Escape 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"}); diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc index d9b98ccb..5e8f08d5 100644 --- a/modules/menu/menu.admin.inc +++ b/modules/menu/menu.admin.inc @@ -679,7 +679,7 @@ function menu_configure() { '#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); diff --git a/modules/menu/menu.info b/modules/menu/menu.info index 50e81fa6..c1491428 100644 --- a/modules/menu/menu.info +++ b/modules/menu/menu.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/node/node.api.php b/modules/node/node.api.php index 5c41e1f7..7f8e2286 100644 --- a/modules/node/node.api.php +++ b/modules/node/node.api.php @@ -571,7 +571,7 @@ function hook_node_load($nodes, $types) { * 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 @@ function hook_node_load($nodes, $types) { * 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 */ diff --git a/modules/node/node.info b/modules/node/node.info index 5228dfd7..1d038aaa 100644 --- a/modules/node/node.info +++ b/modules/node/node.info @@ -9,8 +9,8 @@ required = TRUE 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" diff --git a/modules/node/node.test b/modules/node/node.test index 6c3a678d..96b93cf4 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -1088,7 +1088,15 @@ class NodeAccessBaseTableTestCase extends DrupalWebTestCase { $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 @@ class NodeAccessBaseTableTestCase extends DrupalWebTestCase { // 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( diff --git a/modules/node/tests/node_access_test.info b/modules/node/tests/node_access_test.info index 3abd27e0..56df2148 100644 --- a/modules/node/tests/node_access_test.info +++ b/modules/node/tests/node_access_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/node/tests/node_test.info b/modules/node/tests/node_test.info index dd003714..6088f173 100644 --- a/modules/node/tests/node_test.info +++ b/modules/node/tests/node_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/node/tests/node_test_exception.info b/modules/node/tests/node_test_exception.info index 1e749f31..8257e40e 100644 --- a/modules/node/tests/node_test_exception.info +++ b/modules/node/tests/node_test_exception.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/openid/openid.info b/modules/openid/openid.info index 40db56c8..5b881399 100644 --- a/modules/openid/openid.info +++ b/modules/openid/openid.info @@ -5,8 +5,8 @@ package = Core 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" diff --git a/modules/openid/tests/openid_test.info b/modules/openid/tests/openid_test.info index 6f5852a0..cfee2c2b 100644 --- a/modules/openid/tests/openid_test.info +++ b/modules/openid/tests/openid_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/overlay/overlay-child-rtl.css b/modules/overlay/overlay-child-rtl.css index 8d90fab2..7fd39f44 100644 --- a/modules/overlay/overlay-child-rtl.css +++ b/modules/overlay/overlay-child-rtl.css @@ -31,5 +31,5 @@ html { right: auto; } #overlay-tabs li { - margin: 0 -3px 0 O; + margin: 0 -3px 0 0; } diff --git a/modules/overlay/overlay.info b/modules/overlay/overlay.info index 1dd2ac16..ef0f0948 100644 --- a/modules/overlay/overlay.info +++ b/modules/overlay/overlay.info @@ -4,8 +4,8 @@ package = Core 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" diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module index 9af18e18..7609033a 100644 --- a/modules/overlay/overlay.module +++ b/modules/overlay/overlay.module @@ -146,7 +146,7 @@ function overlay_init() { // 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. diff --git a/modules/path/path.info b/modules/path/path.info index fda8f6c6..96a7068e 100644 --- a/modules/path/path.info +++ b/modules/path/path.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/php/php.info b/modules/php/php.info index 34e5abc7..4995b219 100644 --- a/modules/php/php.info +++ b/modules/php/php.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/poll/poll.info b/modules/poll/poll.info index 72428a9f..2184624d 100644 --- a/modules/poll/poll.info +++ b/modules/poll/poll.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/profile/profile.info b/modules/profile/profile.info index 121271c7..0098735c 100644 --- a/modules/profile/profile.info +++ b/modules/profile/profile.info @@ -11,8 +11,8 @@ configure = admin/config/people/profile ; 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" diff --git a/modules/profile/profile.module b/modules/profile/profile.module index 8cac6d79..132e4388 100644 --- a/modules/profile/profile.module +++ b/modules/profile/profile.module @@ -214,7 +214,7 @@ function profile_block_view($delta = '') { * Implements hook_user_presave(). */ function profile_user_presave(&$edit, $account, $category) { - if ($account->uid) { + if (!empty($account->uid)) { profile_save_profile($edit, $account, $category); } } diff --git a/modules/profile/profile.test b/modules/profile/profile.test index 09123d8c..87fca4a3 100644 --- a/modules/profile/profile.test +++ b/modules/profile/profile.test @@ -481,6 +481,46 @@ class ProfileTestBrowsing extends ProfileTestCase { } } +/** + * 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@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 diff --git a/modules/rdf/rdf.info b/modules/rdf/rdf.info index b3d79cb5..17c35251 100644 --- a/modules/rdf/rdf.info +++ b/modules/rdf/rdf.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/rdf/tests/rdf_test.info b/modules/rdf/tests/rdf_test.info index 8457cf5b..c675b7b9 100644 --- a/modules/rdf/tests/rdf_test.info +++ b/modules/rdf/tests/rdf_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/search/search.info b/modules/search/search.info index 52bc5617..285d5625 100644 --- a/modules/search/search.info +++ b/modules/search/search.info @@ -8,8 +8,8 @@ files[] = search.test 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" diff --git a/modules/search/search.test b/modules/search/search.test index a6ed0dfe..b1edad62 100644 --- a/modules/search/search.test +++ b/modules/search/search.test @@ -1975,7 +1975,7 @@ class SearchNodeAccessTest extends DrupalWebTestCase { * 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'); diff --git a/modules/search/tests/search_embedded_form.info b/modules/search/tests/search_embedded_form.info index 0ee98ce6..64f1ca57 100644 --- a/modules/search/tests/search_embedded_form.info +++ b/modules/search/tests/search_embedded_form.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/search/tests/search_extra_type.info b/modules/search/tests/search_extra_type.info index 8fbfb732..35ae708f 100644 --- a/modules/search/tests/search_extra_type.info +++ b/modules/search/tests/search_extra_type.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/shortcut/shortcut.info b/modules/shortcut/shortcut.info index 0c4a7baa..2dd64b90 100644 --- a/modules/shortcut/shortcut.info +++ b/modules/shortcut/shortcut.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php index 2b23a3bb..04f66ec0 100644 --- a/modules/simpletest/drupal_web_test_case.php +++ b/modules/simpletest/drupal_web_test_case.php @@ -1968,6 +1968,16 @@ class DrupalWebTestCase extends DrupalTestCase { $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 @@ class DrupalWebTestCase extends DrupalTestCase { 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': diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info index d88baaec..0109c99b 100644 --- a/modules/simpletest/simpletest.info +++ b/modules/simpletest/simpletest.info @@ -49,8 +49,8 @@ files[] = tests/upgrade/upgrade.translatable.test 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" diff --git a/modules/simpletest/tests/actions_loop_test.info b/modules/simpletest/tests/actions_loop_test.info index 8230c4c0..65d16158 100644 --- a/modules/simpletest/tests/actions_loop_test.info +++ b/modules/simpletest/tests/actions_loop_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/ajax.test b/modules/simpletest/tests/ajax.test index 95797924..9a76b969 100644 --- a/modules/simpletest/tests/ajax.test +++ b/modules/simpletest/tests/ajax.test @@ -116,6 +116,64 @@ class AJAXFrameworkTestCase extends AJAXTestCase { ); $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']))); + } } /** diff --git a/modules/simpletest/tests/ajax_forms_test.info b/modules/simpletest/tests/ajax_forms_test.info index e2f36000..c0c499bc 100644 --- a/modules/simpletest/tests/ajax_forms_test.info +++ b/modules/simpletest/tests/ajax_forms_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/simpletest/tests/ajax_forms_test.module b/modules/simpletest/tests/ajax_forms_test.module index d38cbbb9..075b005e 100644 --- a/modules/simpletest/tests/ajax_forms_test.module +++ b/modules/simpletest/tests/ajax_forms_test.module @@ -29,6 +29,12 @@ function ajax_forms_test_menu() { '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 @@ function ajax_forms_test_validation_form_callback($form, $form_state) { 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; +} diff --git a/modules/simpletest/tests/ajax_test.info b/modules/simpletest/tests/ajax_test.info index cbf6974e..303eca6b 100644 --- a/modules/simpletest/tests/ajax_test.info +++ b/modules/simpletest/tests/ajax_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/batch_test.info b/modules/simpletest/tests/batch_test.info index 72854795..74ca478d 100644 --- a/modules/simpletest/tests/batch_test.info +++ b/modules/simpletest/tests/batch_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/bootstrap.test b/modules/simpletest/tests/bootstrap.test index cb4fe8e2..014fc948 100644 --- a/modules/simpletest/tests/bootstrap.test +++ b/modules/simpletest/tests/bootstrap.test @@ -350,8 +350,18 @@ class BootstrapGetFilenameTestCase extends DrupalUnitTestCase { // 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.')); } } diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index c266dc3b..a643ff94 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -56,6 +56,14 @@ class DrupalAlterTestCase extends DrupalWebTestCase { $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.')); } } diff --git a/modules/simpletest/tests/common_test.info b/modules/simpletest/tests/common_test.info index 0a59d195..665ee019 100644 --- a/modules/simpletest/tests/common_test.info +++ b/modules/simpletest/tests/common_test.info @@ -7,8 +7,8 @@ stylesheets[all][] = common_test.css 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" diff --git a/modules/simpletest/tests/common_test.module b/modules/simpletest/tests/common_test.module index c400eaed..e75b4523 100644 --- a/modules/simpletest/tests/common_test.module +++ b/modules/simpletest/tests/common_test.module @@ -165,6 +165,34 @@ function bartik_drupal_alter_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) { } } +/** + * 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; + } +} + /** * Implements hook_theme(). */ diff --git a/modules/simpletest/tests/common_test_cron_helper.info b/modules/simpletest/tests/common_test_cron_helper.info index 752e487c..67a0c731 100644 --- a/modules/simpletest/tests/common_test_cron_helper.info +++ b/modules/simpletest/tests/common_test_cron_helper.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/database_test.info b/modules/simpletest/tests/database_test.info index 1b9d5ee5..b9a35895 100644 --- a/modules/simpletest/tests/database_test.info +++ b/modules/simpletest/tests/database_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info index 3fa1c742..82b257c8 100644 --- a/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +++ b/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info index 52d9b25c..0ce3baae 100644 --- a/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +++ b/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/entity_cache_test.info b/modules/simpletest/tests/entity_cache_test.info index 7b883f05..47bd609a 100644 --- a/modules/simpletest/tests/entity_cache_test.info +++ b/modules/simpletest/tests/entity_cache_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/tests/entity_cache_test_dependency.info b/modules/simpletest/tests/entity_cache_test_dependency.info index fd69fa63..94026d8b 100644 --- a/modules/simpletest/tests/entity_cache_test_dependency.info +++ b/modules/simpletest/tests/entity_cache_test_dependency.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/entity_crud_hook_test.info b/modules/simpletest/tests/entity_crud_hook_test.info index 5546652d..0ed70ecf 100644 --- a/modules/simpletest/tests/entity_crud_hook_test.info +++ b/modules/simpletest/tests/entity_crud_hook_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/simpletest/tests/error_test.info b/modules/simpletest/tests/error_test.info index 4f398880..64a9391c 100644 --- a/modules/simpletest/tests/error_test.info +++ b/modules/simpletest/tests/error_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/file_test.info b/modules/simpletest/tests/file_test.info index 7139ebb8..58baef30 100644 --- a/modules/simpletest/tests/file_test.info +++ b/modules/simpletest/tests/file_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/tests/filter_test.info b/modules/simpletest/tests/filter_test.info index f16686a3..65b4fa09 100644 --- a/modules/simpletest/tests/filter_test.info +++ b/modules/simpletest/tests/filter_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/form_test.info b/modules/simpletest/tests/form_test.info index 4f29649b..4c0b67e7 100644 --- a/modules/simpletest/tests/form_test.info +++ b/modules/simpletest/tests/form_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/image_test.info b/modules/simpletest/tests/image_test.info index 56ed08eb..a939da87 100644 --- a/modules/simpletest/tests/image_test.info +++ b/modules/simpletest/tests/image_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/menu_test.info b/modules/simpletest/tests/menu_test.info index d4b608f5..17bfba06 100644 --- a/modules/simpletest/tests/menu_test.info +++ b/modules/simpletest/tests/menu_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/module_test.info b/modules/simpletest/tests/module_test.info index a69f5768..21e27657 100644 --- a/modules/simpletest/tests/module_test.info +++ b/modules/simpletest/tests/module_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/path.test b/modules/simpletest/tests/path.test index 4998ffa3..8b3e6dc4 100644 --- a/modules/simpletest/tests/path.test +++ b/modules/simpletest/tests/path.test @@ -200,6 +200,14 @@ class UrlAlterFunctionalTest extends DrupalWebTestCase { $this->assertRaw('current_path=url-alter-test/foo', t('current_path() returns the internal path.')); } + /** + * 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. * diff --git a/modules/simpletest/tests/requirements1_test.info b/modules/simpletest/tests/requirements1_test.info index 59583ec0..1263643d 100644 --- a/modules/simpletest/tests/requirements1_test.info +++ b/modules/simpletest/tests/requirements1_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/requirements2_test.info b/modules/simpletest/tests/requirements2_test.info index b28b8584..b2c7b752 100644 --- a/modules/simpletest/tests/requirements2_test.info +++ b/modules/simpletest/tests/requirements2_test.info @@ -7,8 +7,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/session_test.info b/modules/simpletest/tests/session_test.info index c5ac75d0..526498e6 100644 --- a/modules/simpletest/tests/session_test.info +++ b/modules/simpletest/tests/session_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/system_dependencies_test.info b/modules/simpletest/tests/system_dependencies_test.info index 2114370f..1882fd70 100644 --- a/modules/simpletest/tests/system_dependencies_test.info +++ b/modules/simpletest/tests/system_dependencies_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info new file mode 100644 index 00000000..20da4cd2 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info @@ -0,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" + diff --git a/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module @@ -0,0 +1 @@ +<?php diff --git a/modules/simpletest/tests/system_incompatible_core_version_test.info b/modules/simpletest/tests/system_incompatible_core_version_test.info new file mode 100644 index 00000000..59465a91 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_core_version_test.info @@ -0,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" + diff --git a/modules/simpletest/tests/system_incompatible_core_version_test.module b/modules/simpletest/tests/system_incompatible_core_version_test.module new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_core_version_test.module @@ -0,0 +1 @@ +<?php diff --git a/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info new file mode 100644 index 00000000..3dd555f6 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info @@ -0,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" + diff --git a/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module @@ -0,0 +1 @@ +<?php diff --git a/modules/simpletest/tests/system_incompatible_module_version_test.info b/modules/simpletest/tests/system_incompatible_module_version_test.info new file mode 100644 index 00000000..aeac5673 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_module_version_test.info @@ -0,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" + diff --git a/modules/simpletest/tests/system_incompatible_module_version_test.module b/modules/simpletest/tests/system_incompatible_module_version_test.module new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/modules/simpletest/tests/system_incompatible_module_version_test.module @@ -0,0 +1 @@ +<?php diff --git a/modules/simpletest/tests/system_test.info b/modules/simpletest/tests/system_test.info index cedcee6e..e809e78c 100644 --- a/modules/simpletest/tests/system_test.info +++ b/modules/simpletest/tests/system_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/tests/system_test.module b/modules/simpletest/tests/system_test.module index 9516c918..8cb0e837 100644 --- a/modules/simpletest/tests/system_test.module +++ b/modules/simpletest/tests/system_test.module @@ -264,6 +264,14 @@ function system_test_system_info_alter(&$info, $file, $type) { 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; } diff --git a/modules/simpletest/tests/taxonomy_test.info b/modules/simpletest/tests/taxonomy_test.info index f3f18195..e93cbf5f 100644 --- a/modules/simpletest/tests/taxonomy_test.info +++ b/modules/simpletest/tests/taxonomy_test.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/simpletest/tests/theme.test b/modules/simpletest/tests/theme.test index 53557e36..ea0f257d 100644 --- a/modules/simpletest/tests/theme.test +++ b/modules/simpletest/tests/theme.test @@ -194,7 +194,7 @@ class ThemeItemListUnitTest extends DrupalWebTestCase { /** * Unit tests for theme_links(). */ -class ThemeLinksUnitTest extends DrupalUnitTestCase { +class ThemeLinksTest extends DrupalWebTestCase { public static function getInfo() { return array( 'name' => 'Links', diff --git a/modules/simpletest/tests/theme_test.info b/modules/simpletest/tests/theme_test.info index d8cbca21..ef45abe9 100644 --- a/modules/simpletest/tests/theme_test.info +++ b/modules/simpletest/tests/theme_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/update_script_test.info b/modules/simpletest/tests/update_script_test.info new file mode 100644 index 00000000..5dfa1409 --- /dev/null +++ b/modules/simpletest/tests/update_script_test.info @@ -0,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" + diff --git a/modules/simpletest/tests/update_script_test.install b/modules/simpletest/tests/update_script_test.install new file mode 100644 index 00000000..6955ef11 --- /dev/null +++ b/modules/simpletest/tests/update_script_test.install @@ -0,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.'); +} diff --git a/modules/simpletest/tests/update_script_test.module b/modules/simpletest/tests/update_script_test.module new file mode 100644 index 00000000..beb5a71e --- /dev/null +++ b/modules/simpletest/tests/update_script_test.module @@ -0,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.')); +} diff --git a/modules/simpletest/tests/update_test_1.info b/modules/simpletest/tests/update_test_1.info index b0be1fca..8e36bd33 100644 --- a/modules/simpletest/tests/update_test_1.info +++ b/modules/simpletest/tests/update_test_1.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/update_test_2.info b/modules/simpletest/tests/update_test_2.info index b0be1fca..8e36bd33 100644 --- a/modules/simpletest/tests/update_test_2.info +++ b/modules/simpletest/tests/update_test_2.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/update_test_3.info b/modules/simpletest/tests/update_test_3.info index b0be1fca..8e36bd33 100644 --- a/modules/simpletest/tests/update_test_3.info +++ b/modules/simpletest/tests/update_test_3.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz b/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz new file mode 100644 index 0000000000000000000000000000000000000000..41be271f5ab1853c0c6c66ffcb594ef4dd3a309c GIT binary patch literal 39843 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 literal 0 HcmV?d00001 diff --git a/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz b/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz new file mode 100644 index 0000000000000000000000000000000000000000..c47ae87830d0e1f8b5d519cbc739907ff9c5e34c GIT binary patch literal 77424 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 literal 0 HcmV?d00001 diff --git a/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz b/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz new file mode 100644 index 0000000000000000000000000000000000000000..de2dceb17cf02814962645ceca375dacdc7634bb GIT binary patch literal 41805 zcmV)SK(fCdiwFqsP{mFF17vb_aA9mMH!fyrY;0v@E^TRUX>DO_E@WYJVPau(WiD`N zZ~*PSYm?hHwl?~Geg&)R>~iv!+b!NisWW@dahy2Lex1bQcIL86RVrSf7RMB+kW||} zQ~vK~EdV6Jt4K+dD7W_PxJ3da7k~%rhJ}Sc|G(?y`cHql`9J^XPtyO9{=bFm5&ZGm z^*rK8t{=sw=b5n^_)@Tteh4>f)02!Bqvz5h2&I@rv9#WV>mVZ03wRKp{jhW+311|A zG9&4p_#`xAc$xJm#Y-YNo7MW-F=Nv*BXaE+FQTOs2Z0A~41<+q`uL8z4?o8jBW0i5 zcq!pqq)p`d_w>!lr{Ja6cHqavkKyI`I(+{N>E~El0!3JL5qMtk2_IYq&c-8A@<rm@ z;sesPWO;%8k^gq!;-3FrxWseB-}C4XZyv=#Xx@|bz88~_U-*HO+>aikn5_6kOg_i_ z=VlE}Nh)ok^wE{;yDQU!tD8Ul$+6~kNTA*v`pzTYJTq<Vp6J<g$qYmD@tZ$M(lbg? z^i2BizhpPzw&^;>dvG^?ToZcx*@GF{OEY}-JSp;se;+Stp`z>QZ9j-5f8%+y;KTdh ze@sgpvM@JZ%w9L*FZ!1K$v(8p_f@6q=L=uAVO%ZK{&>tDD3Gu=Lvuv{6Q!Za5dko> zp0)T?<o-K(!o4qi$}=tEoouk_KhM@7z&3o8K9a{uC}uU;^kXk#vx62s^P#)g-4x}2 z`u5xJa1y{wC1ISw|J&=oFw}pOO@rhktkv{aiULMqHX!tx^%{QTPuG8WFue^azK#-u zb9ufpKN6VmuKn?G&WI4cl~yZ!b^GH5j64$wqc?tm2PMwfB=&+X6mR@JX|8-hH>#6Y zw4{3t5+MMFw*$phk8Y*)9eXGxHx5uJ!H+fY_O>){EYFRWJJDS6=ysafLkZ0-sf^5r zow~L3+*bPT;E9gJZTvk3zWU*<WWFb>AS0CNBAv$`zP<bCS3kU!@ZXci+IKQzv~#NA z%-wYjv8abs5!>|iR%*XDed*_SlIb`hi6T_(>`fR_*1$fug><aNKTUsjBfaVA?WE&# zmE@Ao#NNc@8<0;GTG}RFuFUlzv^4mnYkHa725#!!`@|^==o-<T=m?uFA95**I;jDp z{1>p*sSMvm5s{V2o;sJHTAY9YrrvCP_m2%hJ*Z-|>$@l|+C#Gf`-}iOs=rOqThTKJ z*=(vrS;yFcw^{iW+N*#j`XhPb+Y;%bs+UbrLD5Sl3RU#V6Uj1Td)a0hSzXY*^BjtU zkHp^@U1P2Fcia_N+2(4!_l!;6$U1UIJLL7tw|6ZJk?m-;a%gpZ2e@c?ENgq2-fzTM zwK>62REII-@rS@zkyURQl0A9Vb~J6_l@9S@^N1FD$w9Crd&r8tn-B9V-ZY!$yNkr! zG>KjRvGDOvz^0dR&+<4V_o(TdtcUGQ6bGvl_3(omxt8m>afu5Zi2yVqn&E}cz}DO% zcH>hp3;aT8`jKa5dP12v+q9R>#O=_}a*KZMDsq~1vv^g>-YJ(#N#RUeAQ+iwiK05u z1~yyetj~Xhv!?W#PvrEPbB}7GY9u3<as|Q2Zx+04>~@upE$L11lR_T|4G|k55-c_* z;Slt<Fk#uC()q*QO0mzLph&AT850TpOnz4C08ur_MBlTO>G~q=Tww@f_hYUd;%f!& z&83>iYoBE{d7cR-bqlO1xt%eLXJWI38`(5_b}eu31f|>wnGP;=ffw8#ybmJRA@GLz z!VRO-_k`LS4!-%|-kXAd;p^-Wt;78A;p3|m&%1SqJoFCHTX)Ekc<TdWBYWiudthAd zfy{L&v_E?E9oGi?sdXoeT6My;eDW?ZT6RH5>@M?R5bbZ#{7LIMuns<vkT}=Y<361r z4-*B`*4=>8^cq;>=DeWLrW2B}X{kYdt-Vm8M^>s(KKXQBt#8x#w)$h>d#-=B;-GOM zhpihWX3F7Rggbkpt-xt^Y&19*w!3qsR#w03FM>uI`d#Z;1mVhT_Mz<*^&)gn%T=A4 zj-a<oFKX|sXlK5s=xlOt&*^G23yj&0;@&;e$8td*DHg5e=;qusInPlRvb1Goq@f)p zQmWP1B6<X1Gy*6Lyr+qsu>Y0Cy`U4eT2rfTMVKz$cJ>-_Kr~^7ICFR1Dpb`yme_Qg zS5%u2qm8zGq)A>ik51NIRbph_O^CQ1gDrDoRWqL4?Yey=?c)X=7gPca4sZPY{)^mD zMn13I@ZifGg~dD8|9yw-u!#k2?eL+jYoe9uZC~$hprCnH)b=wk=rk+rj<X_LXsDeJ z^VX3AmsxR{6=yapDkXmo_RUix2;vBA$W}3sm+5ht9%nW^8ia<3{l+;$XTxQFT;|7D zI6pYHtENX%)I2qCGv#G&T;|4CIX4)%t0xC9Yn&ZH*lIQ6GB+-B<ILtplU~JO-#9ba zGW2C;TxQ0Tni)L$qG@KZ9j%v{ahVxUYG$MxxtnH2+-i&AWoBGv##c2n;`%+2tO`p} zbeS8Mx$zawjRf3Pb0aOQo*h^?XW?gaFR;yakuiJ5tI4CS0SE^PcWNJj<C*^b2IcF{ zO*&L$l@I`xQPqVdR*h(j!EYN-cccN?Z;xmTKAes`jTqU5cL*Ces~N=Mu&^bRuCA}r zy@s_xQQILT#M24eDoZu0c35V~%Y<Ezyua&0wzFRM0{>oon%;by-W0~IAp$&m-HJHw zW>tFOFT(AvuZ)&K7?<97m))&=VPlZC(66nc&78$y5;;h<foKN`Q63=6AMnJd!<toX z3fNA-Qf>zyvFEvV?Z*u&(irAStGGbg7Lg!<H*8@DDZ-NthyoCw{quTt?MQEKUE!t0 zso8E;XP;5ZpIO~FH~*Bb5Bwpu{2}LN)x(FhijIR1IS2ocUeTf#s~3lF(YSt$?r&Z5 zfL}7|2kF3Hn$(Zdfxk2@f9V(LU((@+DcN}^e(7J*FMWKeiaAKws)K*2f<Gj^ci?f7 zD>y{beTV*36_4Qkcj!-5aETwDOSP<g)mcLmzE!~};9Cv+e6O!nFbnuv15@AYYZVLw z`>~$0@Ab6`rtw<(*Ymo$ywA6kO1AO3pKnz$j_1<rI?l1zw<=hNfX1qMw%6w>*oOee zgMY4qg$Q^&_~$CvND9b<f2@L!03!SORs|PH5qa>BRWOl%z2GhT>A>)>U?CoDSnbUA zI-2`}a$Uhg;A2f}WRH(kFcJ6|j9NV-+2d;!Y((tGDva#$wF)l6I<k+CRq&8pM;`cd z6+8sn)-VCKe5}#A!;agq1Al=FGTWUyht1K+zP?vd<0I`-Zn2*}`OayRBungghldU; zX?0$t-PXR?sV(zk^>*^TllOW;$Vq$uP!7bMKHhPixF$13!x1gXvT6+!Y%_FR-|Uu@ z^q@UZ%Ia}~K_DLKw8DM3ueaDc-DWR+qfihETQWUf&~dUBDzxq6q@<-pC}$RJ!_f*A z+Do}koH|!r8s)8<QSypK&0?=uX-<y|^X*nEzI~`62ROjtsCvy7c|`me7~y_$cyA)C zjqjXPDxX>=eNF6mUOSp4u3W%hdXv9l4|ci(`w=)xEg$mmKrT$h+G@vW*A?#LoGR1# zE6th&cFJBXZ2!o^P3WHR>(~J+_oN+wB%~bS6d*Y1F%CPN({jk>H}l2nshOSEv$Y3v zY3N%uIV~#@*%XaYJ&EvcCt;Bf|7bi4iL%q+lYiO+k*Xs{@~pl|9&DnPdwRA>gTow- zw5Nk(e_qsc4AhpdpHL9m!N%`!n9Si>P@8Ef<!roX*<Ha(+!C@0k2e@WDXk?A2PDkv z`e-3cSKg83hijpod%Ddr91U}xPv`m>-!daYUwKi7cY@Vv?boB6;nb^olWhlyLAkl# z`JC!j356RC(H3k(49t9%T5`=Cqvp7s#`AN;w>Ow{RVf^D$s2@lPkz5D&{GWW6wlO2 zNywd@Bc7>~4qDxkowz`^_Dt8Gr#Ycpw`Fc_;$WR4gqA8fdgv{=Ko-4e-i~hn^QB)B zm+{IgQ<#L&Rb(D7lBnMPC%ToD+bh%af=|SuZ@l_0x;3=ht3R86k^W3p@J|$nfqxG_ zY&RzGho(XMV-wH|J8<yN#)E$X{Ks?Q9|wOqG5+KH1>Y!-Z?6Qh=XmnR)pzc#3}wnF zU*-pk013kK(RWAaL^}vWV#h(aS8pC?z~>~g%{3`gT0!W^khuw~fZ3Wrnc~t&Q30=; zGXaK>Fq8}vTUOBN(+Q^;k^*re?~PQk5O$<P?OHk(x{CdMRr)q(?Hxts>7)p3cP-Qa ztXja=X%TEN=CzG49@m#sFLqEM(y3alM<m7D)QL=mNOIX0G>DYW?kq4P`5l%>SxMoH zk!ns?5-lybm=^@SxW2crDDptI*w#IJ6>ymXnp)|pI?@`|;f|wjwnOL!Z+7_JX<1CG zbtkGVRuIY%lae8fU?zR49HmIqCal~}Ep$vHSE=zXu&GnySXjEakp9?aYIR!d*$DxD z?_W3ymbXJJ^AgiGZ%12o&-m_^wa02iq+?!#3Ct%o_gw#DtNpaJ_Gx`FEALnfp6hL2 z>eJDSL&6fb9A9ZpXb6K1Dj_GPg7!r3`40B7AA&V9>;pN~T72*L>n{Rx$;eo`4oJLX z*iB*{noNZNaQdcqs_!q&Xl^fE&k0Z22Wu0gNMDk4>-Uf17<b5e3j^x0h3v?+ZuyfA zOTk(`nGjklr~9;ex=(AT`?P+#PmfRcY2$RCo}BK})02IgB|SS0M{BlyP}gKRZcDTk z!*DVU`FVO%aDaT95|bG%1uY8iqmn;oVw6eqicTrMAh8Y7t5gi9cXG->)n`p8s7y;! z^)Xratq8wW;kPFI)`j0=;kP0Do(R9ET@?S~IEa;-Mxv#;yz<;`IW9#Dw&+F`%Bp;* z`M%CRoeggRWu?Z7)(O2%OaYO2`kO1u^mnSdvXUZJ@_5QE3o~7a{uDG5Ml<)ga)c!4 zNRW}BB0)rgh6D)-3R31!=Pb_q0G_e<wN>H>%k1;S1Du-C$%0+pw0&keE7vdgZn3Oj z20nX<MJ^t`lRC?Cc38IT*MK6yf=Q^$nH9;+lCGaLE~kK3op(JI$4z{)pjf6yTg&;* zQ}U&1{!+_d>iNrY{?f=_PV$%2+@&ZXo{idK0fQ)o^WifnDD9w-ojG1YLRM4+!tYQb znRXV?RfGXuT-9;SA6|L&opmdJ*BdNGEn#t;EVFk8hH{R;@XZJJUYMvEGSqg+VC!Kw zF*~`m3LvE#MV!0}R_h=lQdVOxb|LqIi(OHneqE^0+MxnZw7&VT8bFAJMJya$T=YHu z+SfJydWZ2h9j6HaX>nPBa3nkMV^SkF&KVB+Il`e{lN=Y}AlGY>H|Bax%#iP~t5qsX z)k^RvlvgPg@(8qwI1XJ4J`r7gm+2bxMHmLCs<&5n#3Obr!B9(V7vLr&(qpg*rFaSL zjb2=R_vPeJyB?RYrtG4rj?WxxMi;E5d&=u^CRQn{Bn%DpCQMtHVMJ+S5rI0K#25C8 zthOdlnThQLEaS|9HR%YfOfc0WE2~ohty;;}8dTct)oT~H7IH4uutZ`GgJo41Q9D6v zau(34wXUZ{WGR)%!sl;7a!*-A4YDfgl#oT^M<kzoYP7n$sZZC(GN;<%qhMrD&jKF} zp14sFAx*r8`sN!sk5HqCj-RulAp+t$NejC#%SgL)*qEs08FI-x+rTuu;J(&HTdYt7 z#M|Irau4C39X5+d`}17!(7{EE!woRl0*JIm6(Z8Y0UF&qyJqFH^vyPijgoV=No=qI zt8>p*)G6ZP7qM_xm34f3^`noWb5amWjvLXR{IkPQT9pF{AoVQJRqx}ITRM3uKdE!_ ziiIUSJswa&J(g+QlGB`}zqf(YlpMZIoMugewb$(36RQ+)@lGh)k<Dmu@e4DEH^TB` z^jr!9U^LIE#k?lr%8ep?|1da@b|B89pF7$*`IAGk4#K!uuI1_!@%COU+|`Y&-Cq68 z1(Tb9>AA!@g+q;mVGs_(+ovB0War^WuGgnae&h!GYHdc*ry#6b$Ev7P#@HV~XH2~^ z`I=v|&2{cBVY!n}IEurK9dE*B$ycaV1j=2$cn|p}EH}{n7{H3Sb6CPCQn<u^fIlR* z2f>-H59Rtf4|j0`>`D&fCfLPh^s!m`2{npv`;Zk4kr7=hyRxDpCeGbOoOHyxq?0$O z;5Te9X$ws}SF<V-Ba81FB2LOEQ4gUxE9VE3lG`}phRq`DhKh)Gf=jGhgv$3+(v*R6 zmC3G|AiQRR^qMj8HKXaCrf~Txjm7x1G-D>jQW3_&Ln6ubS)@kf0(v9(;}8q)qt+e7 zOAvmzT81Xx3}xKaiDlfOfLai7>97wBsP*0@rR2{}d?uCdr5hU~eY_?GJYT1@DoV@F z(Bafl+!Y*7ijoJ&`7yGRZ@Y<)ajtNK5rvIRtX#26V8$S1T~$=YPE4f8L)5dwNXbKO zG-CwBN!!SsQq>xqNaiM92BDiAtG1)TrqeJ)78C{&%fo(>;y_}VpYS%7Xz9m}66e#} zaFfeUrJWF2@E4@xdp?LP`^np>U(_ORseTD{>p&?~*%6RaCH0^eyaujsdm9Ha$oG~? zEUnmcX%RwAX^qdU!(bKQhtcV<!mdhV9*5&_=t~*XhY8yTWvt|IuhzxbmW>;B)JhFn zE9w+c`h!q5L<uYJsDu@Du=8+{H*m9(kGzF^b;twpg7vDUj4f3!gQZYmM}{U(Zm)!Q zfp87HVXVj;Ora}^Ph*&XYv4m=e|w`*NF28@%1NwI#MO^!$q-r4!R)~E@P#)(qT~y2 z6ip3?DAjlxh$sT$+#TV`$><p%#tlL#+eLOmPatTLNR@R<!I5dnu8{)r)(vOfgi>#A zhQkP@f)b>jAK=O^b+rL;JeF}g+{zVOV{M=eX*cVs5GSb))Ro-;kg_Yg#nN2sAi2g^ zxxLwuJ}U1aV;=-VABe(3jltCa<i^Wvp{1kRJak8BaoH~&(DQ*{$y?sSQd@y4WHth@ zT(K0xn-%S9m!YEx-|_@3GWG0S?CLHq_7<$IqGk_az_>v+TSd-A0uKXc72z!h!P(h4 z&egKxyp;@1Be>fM(n9qz<O&sb#NAj!UsH^4^9e$ZL=j!hAtrk8BguM{B5DJmY!%4D z^&S?YJ`54tmw+9phr9uw<&g9yvy(@G-#C^RG^d}as9BC3w$Wh;<<bg(1QhOvPEF;p z>hyRF047G)EX@ZZh4f3_qht}{;|K4FGmNbf2Qo&BQS0fjo(~Xr@yW9gD6=knrlD>b zi>#EI3!drUZ`etxd!TW0dzHR5TO;%W8;_`@K0*4iB<((24?}kMv*xXyozq?|Iqe%g zv>|zLn<RF1wK5KK#mDrIv<1kn`$!88TlG9V_zfJZ<iT&ju_A)!W3=H{V$ITK3R=co z8zeTNUHjRp>iG8REixwR1(DdNpQrDpAG-VTw_)(7zHHd(xdBkyb;Uq9*S8*qwe`zj z6iauNmSfSPO#*PJe8iOlDOwZTUAXqH8OD0DBMxQf7SuQG?3kfeUQB3XM~G)dZZRap zs^!gPSjP9LmT}lMNMD1?p9sK@M}YAcOQr=R=ECv=uyHe0&h#Gvx-po)#KA~0%Ok6v z<MUe^8skHmyhW&<-Li&OTGnVIw}sK#BDaN_C7cRnyNYV#7O?39>_Ax4*QH^#wwTp% z7_z!2KcIGY3mIBDrA-_D$XsmKFib9~+oiqri2@3*J_KuciaGCiJ-(6uYG2l=;wAOL zRDVGFMjNTox5MCxeR0IITMW@kiy^JRi2>2qeh^<Tf{ot}omG!i!jlGD<LN)F;=%Aa zPVrg&1q7(}wFC6*R#CL_DoUGBm5uNEpuu^~{=u5srQ<&G#Y2o-Ih3?5hOTI5x2&O+ zmNi=Fcr>R94GvkDTavgpJW+W}Org%My5Hm$xMSe)r48aQ(L6^BnXLh*Um3{SMn9fp zZJ=u#4X28f);1bF$qyi(YS34zQAFF{(vl%EsNEB17o5l1d1T;efJDa~0S%Za)p#nH zDDDZ+&V5Be+igW5d~oe8n=C8q7IE@-VoCWLyUM9iBB#P^$L}ZM?SpVm^yHd2yJZA@ zv;*os1>whq7u4~jhPoxx<x2Mm{Ydr*C!c#R;g*;nbWJb4cZ68XwtTN2<w!p}rl*%y z4%BK%SP@`(lSDnXfnnt%rIb*tREiF<s3ni4RjXPSS%O{=gi^4edV6l~IXeS`FDiuO zkBuABZo}>6*DKTYa6dXdPnKoiq>BIAr90?{0qiP)t{ni{#o*5rI0MFZX{kZ0&c<1> zf^dU76t)F`Hat;Ac3c}*(wfc6Y4QX#I{Ehy*sc#!9)mo0-Ai#S8Gi^Q7MCB=VID9N zOY09wYOOZ;(;Ch?+)}?P<(`mcZHNZRfiSZzm03C>0|rfLT|j9HUN2;F=>VES{e}}W zX|k55hn<20HXWD&W2fY@Pl8(7Mkn1^W*EE8xf{1VR!ZY2lzqkc*%D5aj?IAKQ*z)Z z@p;>$D{pL%nEv%9^jbPaDjzDPpu%$L_xEr2-=t7JD8^1-encf|cT4pk>U_abl8*R* zL0R_Ww^!%wFsM7qthsvm9K=1(Y}H1o7H@7~0KwL@S>P|&mndb~suE_<9t8d>mNk3P z;*H@0u(WERcGx9zgT!3N?yA+=X5CYzJXUxpCk@n1tL%!)+^$w&jcd<*<e4HFUv$K8 z4Fa20i<}4Hj)m<q>BtWloaOBPZK8<iX1&^Twi@b|6RO4N9y@??*AG+<wBAsR=F!h? z!66An7PwebG>@39;b!4_<hp$@Zp}kQ=)8ssQnY_??id3!i04T^gqt-kJ1hxsvN(`n zfN`V#+6znv9cA!6mdbsJYZ6QHD4Aihp?WY|Q+smb7Q!RPX8_pJ5=CcQ_TCIVb4!rq z*5`__{Yfl*y5{V7_zMB!@<Kpo1bKnAWvBDD$4dC2WzB0{gTPV6Hu+wFG<-k)xa7z0 zuv+S_uc_}nP3qoi!L;;L>FD)$lIg&pMv;`SxNCNsNot?c_kqC7J~5Eskt3~fj)%WU zFfJ_;wAbd`748SXn2e9L=}p@`R>I_pE>enBc0{9rR_QVbB0R3gwU?4Bz8aOg4HUTx zblS0OBRozVV9P!UESA^)s{JV?#cueE6ywq&h1#?#DrUB1hzy&pkopJCJtgLD%UWAf zVvdKuE-@~xOLSTi-I_eL{(<vC%)zY3ZA+o!;V&DE%SZBdJ8$3yGgh@!+G-yw;fECp z$2gbK)Nyy6tmDr4^td1N*m}ZOOpk<dBypzrLi(E-y1^#BA=#!c(Z+H22_AdLb~q;q zy#mQ`7Yh<%Ab>+6_zaDci=Io-2J@lN2jG*>(Nk<%W<;J#1cT<-*(`(D)Yq5CxOghU zc=*d1<I-|Q*NGu4SaqEorAJFCV1>o7ReG%2uAV{V_UeQAk;To?wYFff@Gy%a&JuCm z4K6Ku5*8?zmT7;K0w3!QLUZiPCs@Mn@K-y=rPYqE*j<y5u5Imr-O{5K2|x1{c8*|{ ztHKrN-f7ze5CKjRz@{Jgk1J&6G@zNX`-sHStGhe;`+x2L%f9o;b>bzpidIPqJWkj! z;N6pDRD$<(@bEUuYc$>R)^1mI8=tvku<d@R{BHX7mK3%r5C)9Z^72fpSTVL2?Iw(( z>-EM0>@8dB*o}{tGCBeaEY{hT8_T%}iBy#URoD*QH9M9N@A{jSMd<z#C|*T~V?a1z zhar4g5_*0#-T;Mp8Eia9vfy?2ndl}aCbICG#m4ilV?ga7SaUy&xwu)+82(C<QCdmr z6av&L^<VQtwW)LK*O5Bfk!3S7f%>y3-9?2VK+?YhpYY>`HhvsF4#dRk%fnjGBaGp% zR~hB?s*ZXDmAPFN3E`m<T(hD*wl|~qjcqV}j*7AA@SS)^&=B@W<lK*jF#I(tqqIiV zdHFp;A5<d@w>(u&o0=94(Sds)4z^{*Jsp?<W2d~4rG3yh%B*YGXECg9rvUKkM@uL| z{jXGOXKSCXb(;P?S1hrAl6}X?0{n9cJ**~Znu#RNj>l$Ok~8gd9YitHK3OUCGt=K+ zx4~ZwEjNb0uw|5w%I?e}V>9f&T}ybXBCT)u<Tq;>!(ZSs%KKuvVh31KJg2F?I|Hcr zXc0vppj;BlpD>h$za(UomxNlxxAD!vH+-*18!21)NEtexV<}f-=feOE(Q|`Q-^qq% z*I#d9bUQN7xf@}0I1o-8F)fJcdBG>*NN+y;@>Yt?`{;%A(u)FiKavQ#=&>FMT?XUp zbr?LjJlGswH;k~kp8V^Ds5xW!%ST4}`0pmWxRj%`Q}|KMQ)igr^g#I8mf+MF{sPUU zv_R8Y<}#AzRDNQt#BSoZ;VmVA(W(+wm9XkXD(6OWz+l^d1B?ihXk+b<wfsw(pq8)s zgn>4c)s6bJsFTv_hBB!H8c%wP4%j54TMe3OYu2QGJ13O1+(25$ld2R#Dko=mn#QDj zEO<3cnpFNRdybnQDuU+#s5zF#tsg<-P6ud6peY~uy#r{rCAHf2SXFMTI5RVc%YDjQ z@Qwl`ZGb>3tq63=rAIe|w8(9>^|^CPZq?tOfWkhK$?)Cnlajk#@0=O*COPn{Rs3l4 zv!x_MsjtfPCDVC8J>205KZlF3euUk&bf4*14hdi7JttlEDX|xC(U6)SDkADfP{0qJ z#c|M1%56KBCd2o}PfFf+y@kqD&K%XnF~9BUQtp-mxaW1bKJ%0WFi+#q_DMk1SD4SV z7pAu@0aXf(A;Go0C!@1s)+SNQ_6MJ8rk1Um+3+3f(~@I-7c+6|?uV_<o!5Tf)3_O? zL&Q(XSH6R0&tAWSS}#6W-q6T$eh&K}fWC}R<s`O2iiRN}wB%&ho5W=G@hP2l5;Q+s zj*K0CKB|8B-L@l6(vceyn)W+cg6dA&gR8ea_B5lbx2apx;fLl=%V$h<htJl)(`}DE z&B)WO@ELw|{`3I8_?EG!t)6|t!KYi%G<>i8wCt7N&EG{GqHQ#z=4VT2%8CY=W4$jI zS6}MZ79ZDifR6oX*|Fc5;dKxE>-w5Y<X=0MIQ%7mX*nQ&FTAyi{p<LaOYmPCtPLe7 zzCQYITJqnk)#BF=9CGttAUq#jw%_}|ZXDu~xDHiY>X%QFz%q%Lq37bBZvNN-Ak=Na za(4u^3k)p81*!!EO$U0iL_L7yQOSAV9zpP%gmq5)E%nPeF|Z613q5rZWkYgCC@LRG z-5Ny?E~z^dy|H!$g53IaS6?+?<Y5A)UPqEgC6D@~DFap0`f=x@cB>!$D$d>A$;Rut z1f31upb%B^swckOj$ZZM@Kkv8f~K|}_H5t=g{G2|J#p=Jbh7V=ru?H9G_`fOX9G7V zG?jer({{0?m45TxAXWAJ1y^ld@7WLz3RflX`?M*wVSAtCZV=n@stelMdNs3w9TeJ1 zj`V5MT2E`2<o;kQzv+UtwqDI_SO<l*k`sN}bTsakwZXP~5Vt>Hg)8PduiKx|I^oUa z_6pzTlTX<j2NDTbv6?vE1)F=WCT6HOEjCL|_sL#+JoZ3mtIe_v`(#@$f~x>dOq|4X zF2w;&;0ph_{Jb^_Sx(N=Ms0DQM~0V^qBiM`9hW7Ot!k}zxK%$^ziaYP()n1f+g_F& zvr#&=@3z6&FPEJCN_D(GPb6aFR@gL?Rs)2#)UU)&xRQ8~w8WnC>a)5I6G%IzBvJB6 z%0}gU76Ih)B0xLyHNShdc_q8Uv(>BGX9T6g7z|r>-Dbl!C@huS|Kle2f9-+I91!hN z-E4ilCQc$docU`9SI5(uvtb+*wn~cuJ8V$vf~&?yYcSQ2X`;0WYT!{%>}@`O;UKb( z_XEalJJGUn9~2l%YY9dZqpLgWqa7YwK3xMztopSxxUOe?WaBp|P?Z)ECM~3ADbw2x zKkl#%kK6Ka2~zwZ#lvR)Iu^7J;dkhoK`tBA(?YAXYOtG<kLf6PQ}MGWt1|2y07YlE zAh1=xAL4?5Tv`y=P3+OEraKBf@!85`O&5VzCGZBA_ePdWKK#`6*3li>GN)Yo7xeEU zJu`l_%}1II=8zDU9F%kbgmv<7H9lRVs9%6p4Xktw2L-H>`+d*l$5sIA`kES~3Co0) zcx$~NX_OWu9qzf1Qhw@)pBtzn<0LDRDTGc7<dXY;uNaR#VO;f+CJ^r(@S*ALA-qE@ z$kznmQXohQoznuiwC1okC*Er1c6&*sm2xm1Tm~?H`NDzQaA0*104^<T$W0tLB<moI zlS5^ivvpL~Ek!3in65|Ndbw&l;&GzfUj0N6e^G44n@D0bNTvlON@np}S<XFvh!>!h zpZ~?Od0<58Ku%rN%dl-3Hc(K33kTlFMW<px10JOQTUr2-n><0uk#4z@+O{13maAI? z?a!=`25NFh4Ayc=`f6|7s72i9=ZBlp8b=ea6AsgAgPgkRP2d@LmW@MUr^Ir`=LenA z8b&LY!{}(mam1?C$ytUAl!`dp12Gxn{E$*wrfA7zT41H7_EUvRiLXq~4=v?Yh{nU4 z3rh9&oayxsoO`nL-NLW8slVBX3>Y<Pd1av!YFg!?Zhq+e5>QuIP(49NJp;z0mevru zL8y&N-1y9Pqe=qn{QNZJzA!bEgJ_#DRdVNd!&D0msOgcfKn>~(Jj#*4Lp~E5#_gML zzx&gl9BXcegznHrr`tCSNNil6J(n_oEnMO`Y-rM(_`zi8g`04juDZ~#KA54sG($=c zE%Jze&!16rJ-zJ*vE*+&Hf$f>|NdiI;*f>8@%V7?_k7F#Jo5t6nJ+fJodKtg5X%d! zXWKrPyf+T!W_aJnn@!s$5r7f6sAbw8PuO>y5@_cJ8O6?ReEst6U7?X{U_L`=BBi5` z20FxZA4vE(ghnphxbf>Q7XlqVG0K0z->fXk=EE(WxcjHzZUn59v-nk_fMhh#IONZL zw-lHlHWTIM=>`;u2!r6HB%}iRgx?>+<YI)hV<A0Lf=c!vx`Yxkh%QOK(;q`{NMwgD z)k_<{M0rzN9bg?q?$$T<+jWA9+h6CozU^%sGGDk`m`T3(GC{B+j=Ncjq|<-k#SSR3 zWo@)t6fWGjg2UFa`P@am?(_8SSWA9?o084DG`(g#w3@ZgS><^RpRJ;SN`yTrV7<2v z-IW<WN*~E%wLYI!tuwp?OH;HLz`pnnO$yhKNEqjhiEpp}!fXh^YE8dZROIQsk`hku z78PjmX2z6QLvw0qcB@dWtjy8d32gG}551EpBaF;EK=Oknj6qST3HJ&F6<ED+uUIh+ zZWH+wYiPn_=#_ws{H(0=ClpNj%0bHbO0~W8ta`v`5r!hoSxL<ZvX5i<h<iKwF1l5W z+bdQ{q9nOd9MT*T5{_wf_1%}MK^Krar;p7kCTS$~e4U;sSz##T91zv|{<91yqRC%U zmy-ffhfPfM0xNn}z)*1rayf&<UZ{i^W3JUm6TengEuK}QuGBFZ4<DC-D7+{q@}8C5 zEYk{XGXBC>Uin^Y_U8rdkrz<AEr5kpxdC7qcW@^lCftA82EnZ2!EvkB;Z`{SZc9Bc zLb$4ESn$0g9<gH@X_kgdvT!sWcvgjPk1XOc#;?c61Nlv&mYq4+=ec$q2JS{3+||Rv zJwFEdWjKkKiEAe(ME|G;{q30d=$N?9?LI$aT#M~EH(ZOfS8e{kV7e2giT_nVT5QId zAzCC|+=t;`@Vo<_^C1KW1T@Pf%@()YK|AZn3iLYRW^H=&dlJua>q`@I710bW(7~Ha z-*NSwdn<p(Hay_arjw@!z{}NuuhF`@Y34Nn&?khynrzP5aRMY!AoVkV4J-fif{*U5 zb3h2;J6n!^cuR9I_|D=ePY7vQtK;cgtj>0bPa<ND!t)D(hi8TP4ssxKN6NQXIqfIu zfOF;e`Pk4?&Wa=usx&Kv^S!zCoNfS=qBXJIg=<U6I8-`jD#XGu6{Cc<8w<wS{dn-X zGS74G4zuRB+X>(~c3ydA6kXlQbk`=_!tTJu9^AO8BuY&}KmP;0u?Xl+<J+sG?)dhK z74rKyyjMBBi2e>f`6Ns>Df4#||K9cC?|Qk0wyZsr$-?g!tek&@Z6T#uF>kMA{5yp& z1M1N)zUKEw^e<2m+3*Q-4zm*TMbS3hUR}%lT?`iDGw=v&n~9JAr`W>p(-uO1T?ufd z&*DK5(!wL3U9cgZOChlXF9<V(Li*&!O9|ABM~Q6{$4#u!EikV&3@C6PPQj}nB)mW% zT)n+AUL-`?yb8VfIUy*D9|6BhLSniRSHT8A4L}TDs&u<9J{(0io(aMwegQver%Z|i zU9Kam>`D5O^g*NQ!CaN(i?lPM<}ZqMzEHfZL)VYfUBw9v^lmc^LX|IHXkYR^r!O<` zZ7`rqVmb_uaPcO+(6Gc?^Pg|{&j}6`$cQ*dF5khW#4m9GXt5Q<aj;5m(JJ{{OF*56 z$Rkd2>rMU^&O>5i+Mwj}wQy<R_|qhf{OVP9g*_Cx4uPHk&K5@L%{z8e%5G{|%?P0C zJIURoYW{AFP=B<S^V}Og@Vml$b)oLcbsV0<Ru?J@w^gAwu%eXSv~GG6I|b%B;SB?< zY*ut;$iM+!(-KC7lrQ2BvDRco$|!w`6^V~!--?%R=v01-mQ;Uh0g79^to#-$5*`~T zPw|V_{Nf88_e{y)QvhETErT$&H}RZFtT~2QXI$(HeNDzRDKIm3n#UJ?@iftKU_ia# zK1gg@fY!o%aBXBj?yVv+eD_x6{1_fEX}QKVF+3c2PL;T|OH*HAq0W234pu0QO66lN zZgS<o{ZPW2jKjLO2IKZCldtOHy-5OPI))}_U##Q{OHBYAnh+m4EUxA{S^0~#f6rMe z^cELa`U~ZS#%CF0_O!!Li(#MTOl8gj(>d2=ota}7tV2sY0$J0Ab2oDCW-Na>u(PLL z$!8-ds5#vt1@t<#U)x>nFW6um_5be$m2{BW|M2{rsXEV3sXjM-KAUgJG28ral|~Ph zdFe4#`q42}dT8QLSraRCdKvG%lvZGRy4Or*C%XL71?9vxeaRwXUZps|eRA&NQDQ8S zTC5Rh{!rT@@h6Zrprw3<npm*#Hm(D9ffJ*mgG~FlHUUM+l-EkxvQ~nLP+rB|r~F34 z8wy;#O0_{5!K=?{mvDg5PHLss<hA^1^3t+G43K$C7O})j8uVd!{5?WStlFf2*Bcde zie6izpf983%M;cIr)8v{gF<++X*(=sOq5XPu8sX9Y7`fBtfM;S1(w;v^7Gfd5;4SC zKnGHa2D3C#yI?oq6*>6vKn@?l-?MF^rm}~U&;G5lOLP?O55)g!tr8&kE@@zeO)|#x zuAq(r(L@S-!tIjh65Y@bn2Mg~?25wX3ECI^8W}S8t}|UK)nBHl9RWyFbweo(d9Jji z-V|$#%FS-hQkkknd80wc=b9A!9@hryeD|-ZS35O8YBfzY6+`7WF^#F9f-03N=*53r zYcCi@4DM_#RO|UCnK{E!>NEC!?#j$vCWbExeMb!@HpA0LOI+nNm|3dA%rYHjmMSqb zuEosKxrS|E|57z(#ze;KDy^;4cS3nugu|8=(f6cRRH2!1jb_$OrI|53WX6@68Iymr ztI>?{i&>`F6v||zDzDtIhQjS@Iejk!OyOC4lsDW&k@TO6=HI2wm+?UXqwF&y?BWkg zH{xzrhpb?vQI{c+^aJHT&!RLs=*@>;-byQY<7Q3WtFP|vB*tN1NFM^p1DyHNGWdjE zT5IEa4hyk^uH~=ChXQD42*R`cdK)Cub1+V5JcsmWQ(A^(@!zwnWgM?>Z*CYnd=Z5A zH}q}S_n?G9Q~&Y-t^n53Pk8<38}lzOW=tr|5(O;nFI2(OLb1aUSfGZb744)VEBKuC zp&(LbsZ7CIFc-2LAlznG**akjdUF++te9O1n4%vP@RpL!m6Mt1hn?khk{S2J&T_6; z0d+ZN?2Iczv%EVt{UF!Z((6~kH4@F7vgzfU{3UbDrkAg?OWH!gIh);lQ@E+ouXyY9 z;!Scfp##m-uJlHt9}4}LX<^w-K}Vc%U+pYazGemOYev<tS*Cx@5(R9QX<+FLOmwgr zSHfn37B(xZVKYGwn^h`eGeHxZ)vIE&Oc$GF%GgZM#%2X|Y?kO_GeIGnagD6VaC0hI zIz<4aDbt~9S&9^{n9Xv2+*v`ro)tW~xdBamxy3Q$THeX$<d-j3N7vzy)~`T^%M_7| z4%bbG0|_0^h3NIOaYd=wst~q8Y>Du*$~A=+V^-s<aZo7*2NgE+12j`g+f(7DQZYJ^ zDph!%3-$`CK&UwJ_-#6bwQeO`N9B$UD_tt9vX%?0Vi;%0VQiUEY6CZoX{q{lqxiDa zd|7Jl<~mX*4FDYEn)B&q*RfqrMYetJN=wF@FPh6PnhW3VOCf={9l8=Ts!(Faa$!nV zHmdq=m1={NsIu}`tL32EoFyx#+KYrOZq#_js;Cz62tm`1BgusS7oMjYQ2;-gUL-{u zi{}<<uMS=GlZ$?GNc}`BituWF(N<Nd&?lI_(xVPDETy7>VV=8wQOy-Ey2ie`Mj{6W ztZG#GOY|nzk+iAuW~HJr%Fmmm?pLE{s6{<vl-D!F23KhrN`;mIG9i*Gxee+b=yb{E zX}ywxQX#M9G-`bpo#djE^sAE;eI}KR<$P6=Y{t#o%($a#FtwccYf@nHLieJ+v{GMk z2Yh{H`QFB*d~f{nYfASfp2Bv<n3uPLe*YYAAmi4iJ%rqDhsuc0TXbe=#dG5zK=~EB zkK1lf59opC>|`62zbYtWgU$}g*(l_I%yy9v`*?@s6bhO*r&H#&Bcc0-8-HIB%6mM* zq~DCoRU?u|Jl>bgO}q?3fYM-5pCn6^LV~s%&GUfzph<7jxZ$)B5^rvolOp7;$!ZTf zIc^y7gUH@F$?chimcyT3HqEkE^EriK-VZMM)T=eS=Y+|RQf`I+b1an$hc#!i?41~L z&zmH<{(2Kj)+72X!$@)?KH|iAE;01e3FUdgCzxh5qCYl4#z-%{C}8&^iKcJIdclGp zOMbl$g9q1vM>v2EC6w6f_@9H#yPN;2pLra$8lM{+wd}z;K9E9okh3#4%Q)5Bq!#}i zHoBXhHmaMAdVjMq89QM<*3ZGJ-Y6Xr*P=gqov8z#D%;P1>2b=;`O7#B$xAy-B4HE{ z<)a!Egc&D}d8azhqH*mxcH=&0(e`6yGATD$Avf%)V>*Y=Q8!c>(%HtZMSYd*XmrLl zYHhn~c`qGjP;+446FIgfL+NQ24CQE!vodssKRpJ1q{px%gF_yO7pzwo$Jme@W2I3M zwV=wfVQD`CjZz#0UbWR7W@l07onFWC2n*eO;|2Hksi*O@lVF;Y2hd|#CRrXtb70Y+ zrV$^!7mkxU?f|nRKWw59VE3s9mV{vt4%Q!bmHLn|{NEGkHa!CU#~oSG3+ZoW=mwkg z2F)@Y2Afz&Nx_Cu!VEL;WE@D2yI2tHTgjnYEh&Ja=Tfx6O$hV>_~diRF`>iFh&-3b z%5**W6WcGYT8XOTIjO~g$M7*w0|s)C_wncKB%QPPvANJ4n9;1?V5~z-+|u|7llPab zY#7V;b#m^5`H>}kp#vT)7M|;~Z9GErB)GKb0+5Sw@%Be4@UdP?PxNWT;hKb0zkaII z%Sfk}&=cn)7E8k?%&vEpWy6|S{J>q9IougY4FHgM_7W!&&M?yt{Kpl_L$+c>6Y7(g zCU?T$|8obE&39O`%K+ZJa{tY2iGY5n?Ml#f|0l!o0bCKsHHR?UE>>7^JVfDCxI3(g zL#b=9x$5E!j*4;gT99k@sv+S0gwh3jBH4yDXz5ZjaKglR4P{cPY*^Fd1Mxg=ElHo2 zU>Ko|6vYAj*sKwREKq<jaY9o9F3F<=9VIas5od5}8ygvS1(>_WiT}|Zge&jplWLky zD%uxw-WTUEtttjjJcE73_J$Qphc&fcErTFRHXgbn$vDRVK$5$_yqeO|e1PBVTzQyo zOdEsw$ZHShz+OH?YZ9!Rf($Nt*^%`!aX@l*P2u*y=0_U#h9i&SB-r>hXs^-Ijtu#m zgvJ42UmoYg2{ri+EkW?4Rz?|}CWDq6l_Mm^2(W_T9GS9xS|sU|Edmn4#Z)*8HqK%I zC~m$@*<MKg*tj8~-+nHUYxG>>DHksB9QcbW9Gz=?hjMF+zs2@3crE?sU~{anbM-RW zP85w$J+XG5h<8Jofcu|Wbi`TVuCJ+rGK>{jjL@OvNI$;=)yoOd5NxAwx$Akp8Hdrb zjw)hGLm^rwX?I8!b%rHqexZAO8J%Euh$GojE*#CGFZcWn0E5J&#r6P9(ShkWc{>q; zr`Q|NZMy6f?5t<@em2eKtfP{MXT4*@vr;#)4jJ*hb$D~pK3E`h<Y4DlyE$~MDa4Yr z4C3&|i`iZ^Bm&0Y^8%`{d!~QCNt-u7oTt<#D(iCz#>DiJ)kSOs46q-0^ty|Ef2=r~ zWF&4d`NehY_K;fc92~}(0Ab0D++&@Yy6+4sj+-biFo6+;pgVxvMJ<eeH(Gn<W3p+L zuIxKv8(Q1!r<*(j+BCh_Bq~jYT)T$4yQX$h>@|;G4`dT{eI}&3IV6F4k%p7*G?k_& zpGmk0kSe|{%$;A4XxSV~Mx{oMI?Br^)+@=@w=DBmXG=#`Y9*G@tHi1q;<Cv@p*xTr zZna5oFzo=3Kf_>aM!A_{f;eI`29^(}acqdw6h-hvCZCp0zH~t6Y05w7r*ofx*&qwk z??<?Kj*|}?^A$|JVQkGlx-r&vu61+g)#hufa_8-)Y_{IE+Cu5Xjoky8boG0>3)2qp zivPJhh)0-n2V8FLf7*FL@Nu&~_nB9+;KXJf#(?WKr+N@uVw36|A5y8(X=c$`r2VYw zY;3~W`!i1M6g(GS$A@gN2N|Exhqv(5bL-;aNEAO|!ZGKDp!LnMug=rTsv6}QCkLGa zr=EWMx;XGn!?&{7s6160OG&31^g!J_8=i$FC?osZSHqcc4JH=Q>61^LC)NqX+JK@~ zkFP6cK8vJ3&Sd?#A}X9!F9kQ8e3rDznv$eocowBm<kSrOci=PKkOt?5k8LxW9BrdT zM9k1$4q@_Kf|N=Fl8fTT+Z0MG5}TMUXQ(sd*;|Z8V(gE#=6OmpZNS}+zYTJ0I3xDP z_K4|UZ$j^B%9P9;q8%}Zju^I3sTnr$I0r0}et-XVu+pR=--w+OO(o1@uwldBQWZN^ zG*YSeZ|o(3?m6_-k((z>o8#906$So0*u?8i++r%wAGsq~@i5UZJv!hHHUY#TsG0^+ zvHaqkZUT7t;M&7*MqhNKiXjmY{&!+Y6@|lM^&c=dj(A?rCxPlNc}kBx18%}7x?XQA z&yAMD*cW$7?Fc$!z97VjhOQko44!Cs-`z=-#lxCB*-}iJ^-!quoZe*}io3U=coj)& zOll4zMU9V7OFXui-H4=U8Eia9vfy>tAUx06L{Ib0V&i$&*!u%>DGw)S)kPMS21K;i zhn<G%C*qS3jdYf-HxWiT-q|T-_VFB6>@_9__UR`=;q(MfSR4Gan*229LjwOulBHrK zatT0+_lGqF_;zd*7`zGSx^;cx>|}4B2LCtdD(G3xggqBMk{OhCLa*^LhnXkE5vw?7 z7gr2Gs6JqVT!(k#$)}Na9>#jUue&8JP*9^`h&u6UhKHRxS;m5KY3d03c?O-bpmAW! zVJ!ohH1)@mFe-gc=&)sssGyvgfazV;I(&#_rCPPK7RI%la`Dh&EDx-XT`Q-VD?zwk zn*P@?S3<H19>|<E=!9Fa4<s?ffyu?2U@N6uD=$kT?J#eL!4Qysd?#?WCmOq8;Qrs@ zScwKlIA9$qkzAWNSivybY+%J>ZDKR}IJjiZ$!mbvYu9Jdt?tvDCqlR{Jt9izj<c9E z)nh0+d9e$tD-3Hcy#nEO&zDPlb48L|wMkC5=Mo;mX8O<5=*0!FhM2nYSsL4HO$BCJ z%+^#`DLvedIsFHBpbbuvYh)PV!W_mqQkPYe+JO-!*6)}!xvF?r(~7O+$4fJoh`(eq zY01;8r_^^ldGuIeTc3jP<H8F*UFO7K=0tu-#Hf~X!La7RD|R5Zl(gVE&4m$!E*^5j z?{z<h_ZU+F$sWQKP}3>EiIPgEqaP~m`Q-M>51>EUq~V|Ix^PlAACv>lhiqK(>m!Bx z!<q)KU7y96FgIf|l!x0ph2uv5*&Xck@eATRBfgUa*yiRHP<)2)KSCb=eSi*=kbE8j z!Vjd@2<<tL`?U-6Zh~?xgiFx<IcvipQ(3kJ?xb&(guiD1@GYz#aKaAGo3mh!;unUX ziR6YuTvaRGAC@Lk-c7_?GMLq~<URZtzQY54O|uIyO{^XC+iW4~7H$C&pg;$2t`KiQ zcNnqWIGIY4hk1v2@H1-;%@x4voP0{uCpBmXePyfJ$%d5wdBI0^C-8f~TQ98sjPU+8 z9k4Ujzk7GSi|}U7t#AlC7S06bJuh+956;kVKJbXsR2=xd=`aI@xKe`nJne+@<LSTW z$M1~o)BcxLOPGIh?EQe)KN6#_8LL6gfOBE_RQ3NlZPszgX62V(iOKrAFm`9m>sy?K zySJGt9&>+I$3bVuI=ABKz|v709+c-%?0W&d?~1pF<#*&Un=}9>Igt9f6b67t7Dl!v z;mVC7#7UPFVA@u&?{V-mKMmCmNiR%&XlRGGv!<SmcjvI(9{ZS-6x(`o^zZ9p?DZIP zj^+#R9yFE*;b5tEBo-rCSSwgeBW|ei@1;*}yzIU!tA*Nf2<)dqW&jgFQF0SNAnxF{ zDSRoLKJ%(CoyqigR~*4XYU)3b80o|ezbwup4x|N0)=fwv$$FF`;t@7kgrT6j8L38e zs7=3zoiRgMlsdy{)6JpNV&0TF*}2Z4T1j)9Idr`>aOc32h!XdtW)bRn!Yra4aMttZ zec%ls!lz#PpbE(X?Vn?ykIAj0Zu4S$utN{?qGMVXjROmxJw##_`X21JE>lTJi*mq| zl?xLl$;QGR^}|fa(sESGIa#pQ$>&p@=W3X`80%QX>Jy(VvR;}jXEr;;K`b72e3==| zGb1GH0Eg-H`jk9PgZk-aYEIb@_9*td9+4Y@T>g~e{b8Z^Z!Y<ijM8(7Er#*62)c2- z%Q8go8xlF4Hw<Cd4)I+wgoEOCK)nMXzn{lJ<I%s_2eRE@tkHcstainI)v#nU;p#)M zPP&pe;u(k7)j%i56`dT_G)v!TBQ^TA<#|<Gxj%&i`*)9dL7zY8`H*aJJS5*g4)%qv z&vAbncWy$Fw1VEieQm>*1mpo9XDJ(&<^v8Lw!nLoEJA#2$USjdFJ>GE^_1oo`oDVA zb9#541GG6UqyjdmoBK$sn+XSrr>h)}oRu4!t~Xr#A4rcs45o49ul*ptUIZKeX{b10 znPU|RS}oC54^qde8knMzlW)eEXgSqHqne`)P0eBFjSXN@?3FPt$^0fX=A0BBk!~^N z8@<ih!%%ts)lVdrOeqp+l}szx#973~vq%cogl8l$X}HHD*Z?uH@gR_O7+4-zMQzWk z9rqr4ogbH*^>Y1{OpvrCXL0sN-7ts?&u`wHd}0iIhh(7_WSw)2Cr#Av$F}tw?AV?i z+qP}n#*S^<#*S^<#*S_4&hx(auX~fzNvBV$yDO<ms?IszPYD^?Xxl+q&f-f*xsD@o z{ww#G7h*i>q;FuY11{wIZOidDZ98>*Vn**WYL(nbu3qi;*W*f@CMO5E{r=3~qb%aY z8N{%#`)K+#p;00qvWpygzAUb~*N{4=r3<G*!Yg`r2Ax>43Cb0$B+u_E-LBt}HlqkL zyI$M^ZO3&bnta72KCSX2I%ZMLK1Y&rrQx}z!&TCLpj7jF<kRs70z+vBu^9o&4!b<j z#KZUIdU30|SKv=lY&4rW!=8uEeT7SbhLGWkva!MO8ED<)x!A{X<dy6^Aq}hsapMa} z<h{KuZI8de5%TUyLJPCFmfhCH@=6W=QJ4+lnf=;46m^b!hhCQnslni93h|l>mFiBe z6{l<`(YN41EMVVUy=6dn<_%KPe2ey{gA=utY1L+;37wme4qT{-%_%LV+a0hE9{};| z4ZL*LRk((pThQ&v|AVOiYgAO0*zj`=%n!mf#CIfmIp=j%5*4Jx4me~hHV6i-0uRZ6 z$y@H-sO)E~sx-_}`1E7RuZK9(rJb`f{_LVZwX=i|I0yURPZ;3+!{lMcc%}@T^IC}{ zA>Q4-IUJ2Rh14alxaC}VB3RS)5HP8w9XOM7lzI4E)5O!R%G4cmY6^%4c8Dr>LmZ}q z<UkP^n=R)}ct2dZ+PWePkCV+r=a#DBT8KM?vjfN-b&1mY9!%_x4(|ErZ^GuNQ!XgV zsi7b}3B+Li$ZB_cg5-FiEs`&`27BCm1dZJI$%5EHNL5}w1C#G#8Tin3M_bgGzOwsM zfyc|fs$W0nR1#j+L*&w&((I94;Q2FcYimrt=t7`xvEBbPO%0BGD_QS7TfpY`)POzA zndLw0O2Wo^yVAyTkBEQu!V0#(h-i%~qE$20(3-5=WCb|1K8fv8X9cPWh`R^yw|aV+ zbc%;HdZ2sWI|<68@qu`z{?X53XgW2AM`iBIxH;#mQo5jM2Tmuj{)c&!=sI4+K6}X7 zN(ys5A6tZoqk?!;L84cbjm+w&P<0>t&jir!&VmtaBMREJAsr-tIDxsI+BtJN0q2bi zcao5XFhH!`DM8OdbG!U;jQi!(4^qO|pP|=1fTimj4$2={O&AlT;uxtqwxbDh#x0C* zOKsG$ePFl8ZOkE-FtO5K9I!t#16Qb4+dzFmRD%zs2V3}X1n8hN`Q21y3MT)UePFA| z>i1i;jBkCy;|iYOMQ5+8UEb}GGe#_7!@^{*nQ9S2HEBL`S;o$=w3nN_)4)G@Dq<QA zF4<2;3JYDaJB)8oGZ8(%=t!>q*KPfU*6loe_PE_#!kHZ{zeZ$g@{XZMztR2yrSENq zo_GF!P8;4UTAo=K{eQ^_#+euH|CDUQL*270#?px(%toai-gB68LkBK>K5_0IK$@`k zeNFMeZ7mU_HxA5j`y&rork(i?fXLw)g-7d4MMn2Wzy!E|(MBIku|m1`<d94aUTbcL zz0K9Kiyi#%<?X18W%K_3%|=kDR)Kj64A(RW33{K@wPu_fAJQ*>@tBp*YH4eq(kEf! z<eEgSEg%RL|M5v-PJTr}lJTB)(J(t&1wWrfiRE8*-rJ1M>cF1R)68hg3w*TPuW-!n zuX)x#NKuiT+oj#+4NI6tm+?Xcwm<%t;Lx<aJzFRi8FC^J-Sb;$=E5LIy~op=ZHE1G zY==q)pXz?zsN$~h=b9bNZ6H%UxntV)qO4}qz0hUW$UeD|!c0Qhcp#<LawkD32?t$m zixdm57d*=h=id)q#|Y=!v)vAUPp@MsfwkM`)JJ4zq+%bfinW53Pm=biP6Akwra>L5 zX#0%Yv2^D5PE{)7B*AySWw}B_VqF%gzDetL<dV_TQuhO;w-_Un<2OR^VB!14#-UWQ zQEopD3ugzeEMuKaV7=b`dF-{oK0VHZ%CTO@SA#|+o!xD!%Mv9lGvG_U%2h?IJXv&7 z9sDKjWp8SkmLbb5$@AVK3BC{?%Y*b?snYAe+ffvNezu}6c1i81mUh5%1FhDVBgN>c z1gtQ3p9P}=1(fGASIbN41o;aUm$EXafDj0r{IE*WVAQFYR93f&_U?A;Lx3q6$m3J| zClBGAj=z=bay7QH=#YA**(9if&g_i7Jt%A?uuhdc|Mc%yrAl<vF9<i)s0x*g#L2Av zGkWZI{LZIeVRPEf=3iG9tf`7_IZfLrnR{cY0kw{v6ErH?rs+paQYxv~D>|m9a06s@ ze&u&eMuCQ|$;->9T>0Fz{X|lcCtmZ^6~mLQ_{`@eqmyY*jQbUnQ4(EiOXkC^gEUHJ zFeXfj$!ZqrLVHh5S>369#Wys(<G8j3gl}>p_t*1B6EAuG@=xi=uD7AZxDGuifdi#D zaN$J+<_BZUlL4(i02Z3A*P96~3vj#5s`BrXrLFA2mowN?AwrKqI3EjaZ^7Sa8)tI+ z!Fg7%=N3gsjm%*28opidcPDLV$nEm9pKD1eL>eE@7nax~=Np;07*O}WpswvsHfpW~ z9s^6h4nei|6rlL_9&_y`dpgq?6&R!zYZ`mxZzW-e5XAHY?vhm-6C<j2ot8rb3Db)c zz^wX|M{WJZGj&X030Y63RP<2{T}kyLeC2z!BstY2ObZGvQdWdbH<wr@UNgWJ4?AU; zYe1&%zDgc~w56nK^`KY8S?)QDQ|<0jC-0MVyQk?aV8O4IT<>M}N<@49RWC&T9vk|D zz@pSVj~lK^@nBTqW%3(*%6>Ro;ji*x2D)<%wo1Ec`ZDX!e`=Jt6*Du;b((5FW<a;E zR8@ITfn8dumitbDeOjs3`cE;zTc?!kGYddwq9@g96a-I!v04v5*8LioqBJ~31CA?^ z4y7`pRBYvBo8YK01uyngwO2WWU~y4JABj76CC^RN>(&NnI|*q{3ph=ng?n?>*|S^u z6<=|iO~HdX(Xf4KZ^~L8T?~^63kv<oRk5XLMEHxN7tJh5$zE8OPLP+bxSj)(niSC| ztDM{qhOtUr_LA2=h(^<#pSK+RXF_N*+@P2mNF~LgZ!Ok9$-6etM6|qXgQcYSYy*CG z0%qL=ygD;eJevi`K2FM_G*c(kl^%WVZdWC_-~jC*IqDig)S~=!+euaD1wnV6O8Ba` zDNP|5gE<A(si8q;$*s~ES48%i<Cxm7$r9mhbWPW+qFa3RpJ=jKRfH#UtT)podxG?f z-=0SWO1+Qy!_?gHKa0-wb0JLd!-70KMS-~prp^q##w8UhG?<dQhq6IDwMujSupl)C zoC7V&IidJhc+u-sULd_ln1s>LJxf9rU$n09LK2yZPK|QEsJp`K#ZSvc#HKResJpY! z)m^GXp>la%eq~|BLp*_Gux!S)&YBe-dG&+jTv3yof(mWrWZ$2@(HAGwXVsP@OtpGs z{?vgCm82}>B<m((X0Teyh!mqzvu<#HOS|Aqet3+X&W0*Fj-A^7e|GZ|CmwKTi;Ziq z%bfSi;<o-ga5GmvejhdT?cy=8L8N*o^&8-LL!p1g4QW9BNa)%7#|ZGBb{pHVkNAKG zpw$o;+q1_EFDX%lUQw;&h=FCv@3kNJUuA)MYI}M2y3eG`=fmis2oiW1YNMoO{RMZF z(C_zpPv|9SCt<)&vay%YcZ34}qTrB@DeQhum^zT4xQ2_sT=Frm=tyfiE@&n2Qq*R8 z`Ty;LgM7pE=G46XA!qPdyhMuN)H^5SR1nyMQ3t}T9V)CljZQ2FEfq~wZ_II!G<b<L z?4&~qY3}E)S5e(%c0M+3=#0JH)33ZL=TAQ!&_h8JqKp;2iG4@el~@jbDw^&88YcKB zH08<9{Z`Z2g0TZvOrTHJhmD-zT1}1wW|x<_r<;=DKqQQBzl4*7f&2fO!V-PO8)@*~ z6(w8;#Z&31p}TiicP&_moNT2W`IbmIL4%@R@4HAT-*%ElI&bgkQIG9crLV8OK!MLQ zHF{G|iH6jS*Kk=uhj@~>g&-aob^T#kuKq@cOuj-YWusfe=0ACug?*Lzf&l4+TMyaz zOf>A&F~^g!U(`*K=?aWmNpv8kEX>_CYmIg&?F&=n{t)50cgFLHV}pqie_@wtN3!Kv z{~c4Ho<Xi}=TDY6)qBJpm;<T8lWn7z!aSQuBz2ZR3-NHYreF7w<{k-JRglZDsb1dL zE#~X-RNavx<)k8O&}ZQ-xV$aXJIfx0UbGG7MH<YF4ND%`_|nk|mQn7#h@Ug4gTIs< zqdZqgNT?<rql8~#LT1p0CE&^uf{yVnm=MPJ>y%E?eE~Vc&zFbT?F^w3p1UwhY;2(t zPDcVtFxTG=YqPyW9&Mip-0|}ekD|y0XBv#c;`}mWR<Sd2Xzz3guuj6)*NlxvCr2sn zB&)n#gcJ9n6a_32V8YwxY-o#@$6R(%^D9D>((w5>Z8sH3j4w?i4IfA!7svrb`F7KN zu*(a=mIjS{eXm6an&a(Zufwi68vB~>pS@T6A-A;Hr{t;pW}FsKb)^$Yr($3(nG`yW zO$DuMYW&&WPY+jA+fHADrVkECytEHr^O8eVjZkO9<-KevcT31o82@B-syxMUi(P$m zPods4ty2j<h;Xx+hi{r1(1)zy5_$T!vKwhy_sB>}?%my4{*FQqo3HP2o)3d^BrB7` z4@#cwrZ!G>w5Gp3uB3<w_da@cMsgghS0@s8n&D5q2Y!0=jntBM(=s=wLWVYWLV9!b z6#oHajV)VZ-1+9AwJY@Q<p=zpd5p#~WW}Pnnzq=}$t&0%yn4HV8Q^s{cAko-li&G# zPaOL|u%~%6u_d(vFO)74+_PXWoM*=K5Ub;(FRNKWi79(Q;CB!yjG(SLEeWKxb@t4y zeaHsAp7d-NTjoIHT|@Dp{n%jI*ya!Q=4%1*5y4fa>Yql`E|a+MYC|Wv4aXQSyJ>fA zRrWM2_{ZKTXu7<JKxh7nr#)M(u(6!(EqN2;AeV_1w*<D6jb|V+QL!})*wg87)-VxU z`lE1^w+V3o>VR;K+d*o#fM|Yyn>*bupha*K9zPw`ZyUvFwPJwnLQYZ%DR{@Q+2}Ju zcon=K$K8q?ynEZrU3x9vy(vO&8}RR;NkVvRY)*T>_A=_|`8A)@NSt~k!1+DTS%W=H z6{r;m>9K=e?`CIfVA+koE1_>e#<h+7Y$71Fle}|}(g$)*?`&ZC8IEF&Y4OnA*)SwW zN|4gy-+|K!meo#Z+JDvN(G}BeQ+dL)XI>EXIb4O<BnU3LSG_jcifz&b0CI(r(5xLa z%UVy7i9Cf3Drr%xQ70nYdI3v)^5;iup@*@{9f3AVIYasnTEsnO_?t3BCOg<=-ezb< z-UtbfCxkWe9q0MHf|^aH%f+*3Zt{^WLe?OL2wiVo4@j|ng%k|TKkT7@%=Dxp+GH_; zpSQA;n)W1W=<a~v@AZz3gN*ER8DL4mG&R>gef&lBMkZngQKfjO8-{+<?})#K01$i{ zt68FPwY>2ZwUK&Iw{~ZnjpI9sZ%Kn-!GAfCzZ?+r&^ileY}f(X5esVf8Us5vTR<fB z26QNQx=SaC8I=r?GWPa_d}Cn+Cu1{NOw<`@9_+6+iFALV=f5fUoz#r>fPUXFT0n*^ zO)aolPZT$BiR=mlC{w&v5VrUg(PiKS1rkXidXwe<)3^>_Gu$fyvq5B&ab>n4-wJG` z?Y;14*qn*5jVA=s68Szg7F#IQ6qA_G;p#n-%E<YrkAHuWywS_mxGG-%4371Ew~8_- z$10idxDjph#%6H?{0OT1v^3D?w&L^ni_zPJrA4PzZp70p>UdakQ&hmtF7$n6?|d^< z>>j^!PpFIbcfDrxN03Q0_XABCzte)W{5@<QS832<Bj@UMx{TpO9{PPrNTo4?_yuz8 zRb{tySP1kSsr`%mBtegd=5j2ydio6_=-D7U#!Rh-^wcSXO=D&$vSjD)20KTldgQ$^ zhn+-a%CIpXprG78U13tM-%U&l3$nxZr*8<aQ6mZ3M<S+;%bL{yl&$1e<;t~NN5TyG zYf6Qu3_=}4)0~PqPn09y@FW8sBinzy2&(5tX|F!JtF#U?6!40@p`_EqxXe#=wMpxY z);-QL$En_bmRP$b5g+lRmSL|Fy~RR9YGLgkLBAc)t)HM@&xXu=!tfLW{X9E%-fZmY z+e&{wh0xsJh7HQdwWaGwOE~(;WqB|`br>lW-NUIDi`xRny}lox_@21T8UGK>fZLn@ zf>+ADgM?N}+1Oe>*8x6MKk0gm0GAtPo;<hc14!E&I+<c<L5|VPf-j2M<K3d+viK_| zDGG3R4gmDm3I>vA{0a<hIGe-u-za4H#mMt!`JNFXxI(Y|R@*#6H5|WMl~SOB`Errf z%zi6N`N5a`y}~$GtJo1ze{5QFRzFs6M1hMy%$xlr$&2cRnrPSkc_ruPSk)$T{DSAX zK)iD^sjV3D6)eRa+C<V7zJL6~c5FN9OVvrF&7V(*CTM%+H9+)n|9+3P2q*9l+jQ5> zKhSzQUK>b3Y|A3Qd_w00p|Qcih`QU6?NNNbg=B6_HBCd_MgGolf>k+vxiy=)(|eZw z_6=J8SA#bCt{69!qr+Q!@|Lr+<Ba{DEt-}c;c^l?`Wjn@z3ir>kN5HZ)zgmvbN)(w zVccMP0x-PMdEYmhAqa1A7}v#C{}0mlw2`>usBqw~Uyg*<8eWB;DIt+#`y_waC?QFO zUof&!UD;+DSkWlr{RF#$hBTw)9m>O58;>-ESsJ=lhuNB3Ym6h7Jt+ZteDm#SGW0B! zkn-`-e8!wiuzDN4gy*SbslP=-;U+?CywHI1!PX7C-24#FokFBuEy#VqH>C@T!(^`E z`{?B;fmSgpgdQPN?!5#j|35UuJJCEv!YWUosh^UR{-f){Bh03ETc$t#WrsZzo~D3y z>dj1G9;I?PQ`U5tj7LzlmnoI6?Up>hz_-&ke#=Spng6P_A7uJIBz1G1q(Y{oMNpD_ zAVQ037*L%SI7ZwR%ZIfx>Y?LFjm@Wk>(|YtZ*tOXPfw@>aZjSH1qe%TfD0zHs_PR; zJZZ<$V!*#Xhd;09T3)o`ld3Kon={Tq=4_EP&Y3l^sfX1wqeNeGBqnV%R#-KZ?s-VN zWs;W1cm$eDRJGU13k~T@+*+JV6i=it`LoMsr<LoOO}5k5ud+GjOb!{cDWBKUE%TX2 zAkU<eT}xuJ%WtOfuD8>bmauYxnVJO6WDyqAaW17nxs(pGe`52@OYsHK(?IE-`OJw; z@m*d@rCl6D+l%gYWY@N5vTY??CLTrEz-%K!SKLW(ILz3>!ErecX0VjX8@UU&0Y&n) zH!KmK9u$nmbzen}=2<^30p*q4abcb~!ZY;TL_<G(Nfa4%KSc#&lFv0kjHSm?&K!Jk zjK_!>i+Vmp(x{RuzH*ifl1~jZF-<RrqSJlQ@Iu|&^sq4LP`)JY1hFcya^VazOK*i= zE++~)N(dzJo+4%14G{>Y7>pg_`AibBw1oxoXS2n5Gr2()B$zhDhw_RNrpxjDlZAu4 ziV=?GLa8_nz6cNr+Kq8&U8}_kctvf3oR5^u320Oq#)li1J{shSWW=v{7sPGmgp{O2 zJx+Q|xDwb4-OA6WQdy^F{u2d0MOcvMQl><d%7YW@_&yx0jZSsZ2L%pANlC@o?+NK* z<A0utyS?-*3vW;GE`GI{V^J;yJ(4m<qg7Ch?HlTyRhu9_Bs(Cm#cQ)fEGA61{e0rD zIAE@u<>^EUoTk93*JO@R@$kPU;mRepvOiB77iWM{!yOVHO(dLln&{C@;mTnyCr<Hw zpyBTEstAkC!OPG3-V)LUsFv1}6(YN<5_#5@IUw)FC^Psh$3E8D=wHv`MBf#+3+Y{q zJP}-D6&t-4gVuOp{(31lb1FA@aXuWnSLFt66{20@KkB>2_Fv#9uk%QbU7gORLS*d! z*X^yslnZ=nI9?RL(rFs!omQ9U^5GZxg*PDiO`NUFE5B8~(UzInrgv0d+_y<BR^P6j z))g<TjkIh@hYLFXhqmt{g0LUvX9A0B$~=GgK6xN~MC%iyGTs{piK(4=lpHfAtRbjb zL8-EG6CXit$|Jv$yZX2r6G&zMz&e<Z30EzZVNXK;Fj8HS*&knI@<{tBWU5UG#E6Yw zCZcPlgXdA?+{`?+4;BjiNk`&u)4zB->Mm(A>{p|_HbSC<F5yo7+<MEO`P}<__E%1S zMDaVLFA0a+eALYjBK%_-)m~Q<`xlL^7qaZyyS|4HRFKv!Fu*%>-w7w%7>-u~e@3BV zX-^vHb1A?&lB3WArz?xBH8<%NIim|P3@hWQZ@r+;kz|UqiW8X~gf~i@HXF6;W|ZS= z3RqKNW2VbY=QkX}h@*?DAn$4FjGI(E@Z4AqTqDux*Nb#O`=w;)@eerSj#9PVbwao? z`*qfA+jfX*9ege@=C*A|&j*&JWUhTi-K>1)7RubP@3iwgOgfT@rtdOZ-(7`t3AFVr z-}ucu=7=nvf1K>zCLK%vIk$i>Lppt7`O8m1vkygjE*mG}jt!rvH>xk$4jgM4YBvUE zZ6|TrsFHAc?(?2EfQxk?vsqd{mIKFA&OZ^}ZRKk>tmbT2Guf1rG<V)xua`lKw~(_J zTR$+u##3TL*|*N0{xsq~mqZg3FC#j4r@A^g&mZ1tu~KQ-!Z~!WT<Tc-zLLRJmaHZ? z@ut6Iqoi`yR6;yxNm6e1W)ddtwvC-C=|yU{E23=j&GYoOP>a%5KF5LVu6rzQxLhDQ zyKCwQScmu7Psvq$hpd=QeZEFZ?l`Kax1KMz?&Oxn)Y+OYPAS}J<tg6;70P}uo)Q%y zt@ZeT<%+1#;uH7Nxn!$M+23hRt@zLV?ZQ>48RK_&Rcd(d=Dht_dANLKWVv=X-X%Gd za(yyzrZ!W#<+9jtn9LO!K}%3XUFsSuKarw#1xnTI9k(5|4&WK0SfJ~0jiB9`%emI* zU%KqE_-W3=_S4*a?rC!4+;yVS+T$=L&2R$JVqxjZ#$x5}?2~#Z1#!Nld@FqZ=hYoD z5wMC}XZN3XPwPI!v|74tzl&Dy0IX}i9$uGpu_?5*n_~*ruY@kG>pa;1xvvXW?*z{5 zo46=6hjEoRC`$&Lb+T-$TEu1=vf?+0&Aen^v&rtH1Dj)T)u~M0Md$gOm>g2DA0@T# z07N;}$MoobF9_)JTt)EQ{+=y%N&RDm+`tcoVa~9NwcF;B?{w&a`25=ZK{vy@GOcD( zAY}Xoy~Gdcs1DK(Y3(h0i*VX`@}RHd%emN(!QHFNI=dG**<K;r=N0|<eu_I~L39kg z(f^ukNlv(ng<oq-NU)Vwy*IkNXOFLvc7VFbzr9bvRA(jpA8pq?8yw|nSy9!d@14hG zh|e_}dp|b%25@#SRi#b`N1rw;0EwR{5k)zBxTjgmLm=GI!B->}c~&#a!21gg^m^^G z!r!aD4|@*I@gbEzayH76Rxc~*l*&XDZzGoNzkFQ(pIBbe{*g2`Kd!#QwWbYf@3V;P zw&|GIcEjWPj;~+6%<Ch;o^O{+&lEH_Ee>8yY?rY|JbQ>;FoONCFJI7|igvX>obZDH zh8N8G{dsbe){K3zQ)n?K+$k7OB=jco#W7(6GZ4dxvbKQW!s~A3t*AT~wU6E+C|sh2 zppyV+Y9bwLh!5AiU0$Mn$VC)>#*~`}nU$Vnmy@`=o!Z15_f9U_G%-JSr_G%iFHl%> z+S99AJJNjpC`5Ng=+~k12M{l8tl!_S)Zfr5SYWS1I-bDE@_q+=d^frB!O?uhATYkA zYV+d{0f7fXttP?WA3Ty4^^**)e0P!8ui(!0RYjm;Loj~xM+4D%5)tWLZjad_GaRX6 z{GY=a3kwY=^1Hwq$Oxn8t`7OTQnplK&HBFNye*7kiK?nZT%m}l^o^^s9-7dNsTfRK z_xtR(Z?@mJaQ(E==rQVC=}2hCY6=6Di6Ik&FY02>lE`*io>N?2kc_D^*#$*XQdDlK z#dow^y~HA^FBWfHq%Fh6$%^+0SGeB+FZ$#@Kq22SU6^ZT=70_6L{vT}ciGqpBltr< z-Mmfr<yGvVzc0-wr&ZeDm?)V9lka;d&`Pke_8)7IYkwIoQG#u|3FS<FY1ⅅrJfu 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 literal 0 HcmV?d00001 diff --git a/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz b/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz new file mode 100644 index 0000000000000000000000000000000000000000..5cc5690e15a771722e312656218f8a55ff512889 GIT binary patch literal 97562 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 YF6wtBSl76rsIMPrtscSvBV4fm0#jil?EnA( literal 0 HcmV?d00001 diff --git a/modules/simpletest/tests/upgrade/upgrade.test b/modules/simpletest/tests/upgrade/upgrade.test index 7f934fe7..01e1806c 100644 --- a/modules/simpletest/tests/upgrade/upgrade.test +++ b/modules/simpletest/tests/upgrade/upgrade.test @@ -27,10 +27,61 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { */ var $loadedModules = array(); + /** + * 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)); + $session_name = update_get_d6_session_name(); + 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); + // A session cannot be written without the ssid column which is missing on + // Drupal 6 sites. + db_add_field('sessions', 'ssid', array('description' => "Secure session ID. The value is generated by Drupal's session handlers.", 'type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '')); + _drupal_session_write($sid, ''); + // 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. @@ -92,7 +143,11 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { $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; } @@ -109,20 +164,7 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { $user = db_query('SELECT * FROM {users} WHERE uid = :uid', array(':uid' => 1))->fetchObject(); // Generate and set a D6-compatible session cookie. - $this->curlInitialize(); - $sid = drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55)); - $session_name = update_get_d6_session_name(); - 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); - // A session cannot be written without the ssid column which is missing on - // Drupal 6 sites. - db_add_field('sessions', 'ssid', array('description' => "Secure session ID. The value is generated by Drupal's session handlers.", 'type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '')); - _drupal_session_write($sid, ''); - // Remove the temporarily added ssid column. - db_drop_field('sessions', 'ssid'); - drupal_save_session(FALSE); + $this->prepareD7Session(); // Restore necessary variables. $this->variable_set('clean_url', $clean_url_original); @@ -137,6 +179,11 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { 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. simpletest_log_read($this->testId, $this->databasePrefix, get_class($this), TRUE); @@ -231,6 +278,11 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { * 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. @@ -245,6 +297,14 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { 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! $this->drupalPost(NULL, array(), t('Apply pending updates')); if (!$this->assertResponse(200)) { @@ -318,6 +378,26 @@ abstract class UpgradePathTestCase extends DrupalWebTestCase { } +/** + * 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); + } +} + /** * Perform basic upgrade tests. * @@ -351,7 +431,7 @@ class BasicUpgradePath extends UpgradePathTestCase { // 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 @@ class BasicUpgradePath extends UpgradePathTestCase { $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')); + } +} diff --git a/modules/simpletest/tests/url_alter_test.info b/modules/simpletest/tests/url_alter_test.info index 706d78a5..b266c3b4 100644 --- a/modules/simpletest/tests/url_alter_test.info +++ b/modules/simpletest/tests/url_alter_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/simpletest/tests/url_alter_test.module b/modules/simpletest/tests/url_alter_test.module index e229ab98..9287ff52 100644 --- a/modules/simpletest/tests/url_alter_test.module +++ b/modules/simpletest/tests/url_alter_test.module @@ -30,6 +30,10 @@ function url_alter_test_foo() { * 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])) { diff --git a/modules/simpletest/tests/xmlrpc_test.info b/modules/simpletest/tests/xmlrpc_test.info index dca67547..96c02f1c 100644 --- a/modules/simpletest/tests/xmlrpc_test.info +++ b/modules/simpletest/tests/xmlrpc_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/statistics/statistics.info b/modules/statistics/statistics.info index 17a5542e..60841f6a 100644 --- a/modules/statistics/statistics.info +++ b/modules/statistics/statistics.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module index 69e06f33..a9c944b9 100644 --- a/modules/statistics/statistics.module +++ b/modules/statistics/statistics.module @@ -75,11 +75,14 @@ function statistics_exit() { } 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, diff --git a/modules/statistics/statistics.test b/modules/statistics/statistics.test index 126828f4..f12490ac 100644 --- a/modules/statistics/statistics.test +++ b/modules/statistics/statistics.test @@ -63,9 +63,10 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { 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 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { $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)); + } } diff --git a/modules/syslog/syslog.info b/modules/syslog/syslog.info index 83e80637..8a97ef00 100644 --- a/modules/syslog/syslog.info +++ b/modules/syslog/syslog.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index e250bf17..63685906 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -811,6 +811,7 @@ function system_modules($form, $form_state = array()) { // 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, @@ -818,6 +819,14 @@ function system_modules($form, $form_state = array()) { )); $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; + } elseif ($files[$requires]->status) { $extra['requires'][$requires] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $requires_name)); } diff --git a/modules/system/system.api.php b/modules/system/system.api.php index ae76ab44..f241eea7 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -991,7 +991,8 @@ function hook_menu_get_item_alter(&$router_item, $path, $original_map) { * ); * @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 @@ function hook_mail_alter(&$message) { * 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 @@ function hook_requirements($phase) { // 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 @@ function hook_requirements($phase) { ); } - $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 @@ function hook_requirements($phase) { * 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. * diff --git a/modules/system/system.base.css b/modules/system/system.base.css index a6748de4..addbf113 100644 --- a/modules/system/system.base.css +++ b/modules/system/system.base.css @@ -157,12 +157,9 @@ table.sticky-header { .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 @@ table.sticky-header { margin: 2px; width: 15px; } +.ajax-progress .message { + padding-left: 20px; +} tr .ajax-progress .throbber { margin: 0 2px; } diff --git a/modules/system/system.info b/modules/system/system.info index f91c3545..6fb99b68 100644 --- a/modules/system/system.info +++ b/modules/system/system.info @@ -12,8 +12,8 @@ files[] = system.test 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" diff --git a/modules/system/system.install b/modules/system/system.install index 219f067d..95ee8c5d 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -465,7 +465,7 @@ function system_requirements($phase) { $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 { diff --git a/modules/system/system.test b/modules/system/system.test index a75153f6..8b305bc6 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -421,6 +421,35 @@ class ModuleDependencyTestCase extends ModuleTestCase { $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.')); + } + /** * Tests enabling a module that depends on a module which fails hook_requirements(). */ @@ -2086,7 +2115,7 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase { } 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')); } @@ -2122,6 +2151,58 @@ class UpdateScriptFunctionalTest extends DrupalWebTestCase { $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.'); + } + /** * Tests the effect of using the update script on the theme system. */ diff --git a/modules/taxonomy/taxonomy.info b/modules/taxonomy/taxonomy.info index 8c6a8cc3..b7c13d6a 100644 --- a/modules/taxonomy/taxonomy.info +++ b/modules/taxonomy/taxonomy.info @@ -8,8 +8,8 @@ files[] = taxonomy.module 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" diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index df047e70..379de71c 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -863,7 +863,8 @@ function taxonomy_vocabulary_get_names() { * 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()); diff --git a/modules/taxonomy/taxonomy.pages.inc b/modules/taxonomy/taxonomy.pages.inc index 2a8d961a..26304136 100644 --- a/modules/taxonomy/taxonomy.pages.inc +++ b/modules/taxonomy/taxonomy.pages.inc @@ -77,7 +77,35 @@ function taxonomy_term_feed($term) { } /** - * 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); diff --git a/modules/toolbar/toolbar.info b/modules/toolbar/toolbar.info index 0ce95df6..adc9eba5 100644 --- a/modules/toolbar/toolbar.info +++ b/modules/toolbar/toolbar.info @@ -4,8 +4,8 @@ core = 7.x 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" diff --git a/modules/tracker/tracker.info b/modules/tracker/tracker.info index 90c40c84..a0d821d6 100644 --- a/modules/tracker/tracker.info +++ b/modules/tracker/tracker.info @@ -6,8 +6,8 @@ version = VERSION 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" diff --git a/modules/translation/tests/translation_test.info b/modules/translation/tests/translation_test.info index 6411ef4d..d252b74c 100644 --- a/modules/translation/tests/translation_test.info +++ b/modules/translation/tests/translation_test.info @@ -5,8 +5,8 @@ package = Testing 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" diff --git a/modules/translation/translation.info b/modules/translation/translation.info index 87c037c0..0c850e85 100644 --- a/modules/translation/translation.info +++ b/modules/translation/translation.info @@ -6,8 +6,8 @@ version = VERSION 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" diff --git a/modules/trigger/tests/trigger_test.info b/modules/trigger/tests/trigger_test.info index 27ae210c..3aea92f7 100644 --- a/modules/trigger/tests/trigger_test.info +++ b/modules/trigger/tests/trigger_test.info @@ -4,8 +4,8 @@ package = Testing 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" diff --git a/modules/trigger/trigger.info b/modules/trigger/trigger.info index d2cfba3f..b2ee810a 100644 --- a/modules/trigger/trigger.info +++ b/modules/trigger/trigger.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/update/tests/aaa_update_test.info b/modules/update/tests/aaa_update_test.info index a6670264..755a4ee9 100644 --- a/modules/update/tests/aaa_update_test.info +++ b/modules/update/tests/aaa_update_test.info @@ -4,8 +4,8 @@ package = Testing 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" diff --git a/modules/update/tests/bbb_update_test.info b/modules/update/tests/bbb_update_test.info index 1757fd89..5c6227b2 100644 --- a/modules/update/tests/bbb_update_test.info +++ b/modules/update/tests/bbb_update_test.info @@ -4,8 +4,8 @@ package = Testing 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" diff --git a/modules/update/tests/ccc_update_test.info b/modules/update/tests/ccc_update_test.info index aaf929d1..9b3312dd 100644 --- a/modules/update/tests/ccc_update_test.info +++ b/modules/update/tests/ccc_update_test.info @@ -4,8 +4,8 @@ package = Testing 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" diff --git a/modules/update/tests/update_test.info b/modules/update/tests/update_test.info index 8f577b2e..7626a96c 100644 --- a/modules/update/tests/update_test.info +++ b/modules/update/tests/update_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/update/update.info b/modules/update/update.info index ecdfa546..c3d5c345 100644 --- a/modules/update/update.info +++ b/modules/update/update.info @@ -6,8 +6,8 @@ core = 7.x 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" diff --git a/modules/user/tests/user_form_test.info b/modules/user/tests/user_form_test.info index fb9be0c1..30d2f3f8 100644 --- a/modules/user/tests/user_form_test.info +++ b/modules/user/tests/user_form_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/modules/user/user.info b/modules/user/user.info index ffd23a90..00b2db3e 100644 --- a/modules/user/user.info +++ b/modules/user/user.info @@ -9,8 +9,8 @@ required = TRUE 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" diff --git a/profiles/minimal/minimal.info b/profiles/minimal/minimal.info index 8460d5a0..e5d1cc53 100644 --- a/profiles/minimal/minimal.info +++ b/profiles/minimal/minimal.info @@ -6,8 +6,8 @@ dependencies[] = block 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" diff --git a/profiles/standard/standard.info b/profiles/standard/standard.info index ec9b2b9c..2ff24a7a 100644 --- a/profiles/standard/standard.info +++ b/profiles/standard/standard.info @@ -25,8 +25,8 @@ dependencies[] = file 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" diff --git a/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info index 3fa1c742..82b257c8 100644 --- a/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +++ b/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info index a34fd600..3c1a631b 100644 --- a/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +++ b/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info @@ -8,8 +8,8 @@ version = VERSION 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" diff --git a/profiles/testing/testing.info b/profiles/testing/testing.info index 436fad73..e4deb306 100644 --- a/profiles/testing/testing.info +++ b/profiles/testing/testing.info @@ -4,8 +4,8 @@ version = VERSION 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" diff --git a/scripts/dump-database-d7.sh b/scripts/dump-database-d7.sh new file mode 100644 index 00000000..7692c40d --- /dev/null +++ b/scripts/dump-database-d7.sh @@ -0,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; diff --git a/scripts/generate-d7-content.sh b/scripts/generate-d7-content.sh new file mode 100644 index 00000000..2ad9e528 --- /dev/null +++ b/scripts/generate-d7-content.sh @@ -0,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@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(); diff --git a/scripts/test.script b/scripts/test.script new file mode 100644 index 00000000..a45f3f0c --- /dev/null +++ b/scripts/test.script @@ -0,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. diff --git a/themes/bartik/bartik.info b/themes/bartik/bartik.info index 36548d34..7af315a7 100644 --- a/themes/bartik/bartik.info +++ b/themes/bartik/bartik.info @@ -34,8 +34,8 @@ regions[footer] = Footer 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" diff --git a/themes/garland/garland.info b/themes/garland/garland.info index 832df4d1..dc48613d 100644 --- a/themes/garland/garland.info +++ b/themes/garland/garland.info @@ -7,8 +7,8 @@ stylesheets[all][] = style.css 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" diff --git a/themes/seven/seven.info b/themes/seven/seven.info index 0aae3160..d4dcda2b 100644 --- a/themes/seven/seven.info +++ b/themes/seven/seven.info @@ -13,8 +13,8 @@ regions[page_bottom] = Page bottom 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" diff --git a/themes/seven/style.css b/themes/seven/style.css index dea99bf1..d2da561e 100644 --- a/themes/seven/style.css +++ b/themes/seven/style.css @@ -851,7 +851,6 @@ ol.task-list li.active { color: #000; } ol.task-list li.done { - color: #393; background: transparent url(images/task-check.png) no-repeat 0 50%; color: green; } diff --git a/themes/stark/stark.info b/themes/stark/stark.info index e0c14d88..8eb875e7 100644 --- a/themes/stark/stark.info +++ b/themes/stark/stark.info @@ -5,8 +5,8 @@ version = VERSION 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" diff --git a/themes/tests/block_test_theme/block_test_theme.info b/themes/tests/block_test_theme/block_test_theme.info new file mode 100644 index 00000000..65d2580e --- /dev/null +++ b/themes/tests/block_test_theme/block_test_theme.info @@ -0,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" + diff --git a/themes/tests/block_test_theme/page.tpl.php b/themes/tests/block_test_theme/page.tpl.php new file mode 100644 index 00000000..ba72882e --- /dev/null +++ b/themes/tests/block_test_theme/page.tpl.php @@ -0,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 --> diff --git a/themes/tests/test_theme/test_theme.info b/themes/tests/test_theme/test_theme.info index b9e41384..0adb8457 100644 --- a/themes/tests/test_theme/test_theme.info +++ b/themes/tests/test_theme/test_theme.info @@ -15,8 +15,8 @@ hidden = TRUE ; 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" diff --git a/themes/tests/update_test_basetheme/update_test_basetheme.info b/themes/tests/update_test_basetheme/update_test_basetheme.info index ed9b9f1d..a079e934 100644 --- a/themes/tests/update_test_basetheme/update_test_basetheme.info +++ b/themes/tests/update_test_basetheme/update_test_basetheme.info @@ -3,8 +3,8 @@ description = Test theme which acts as a base theme for other test subthemes. 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" diff --git a/themes/tests/update_test_subtheme/update_test_subtheme.info b/themes/tests/update_test_subtheme/update_test_subtheme.info index 798de4f7..c69ec81d 100644 --- a/themes/tests/update_test_subtheme/update_test_subtheme.info +++ b/themes/tests/update_test_subtheme/update_test_subtheme.info @@ -4,8 +4,8 @@ core = 7.x 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" diff --git a/update.php b/update.php index b223e768..f96b4715 100644 --- a/update.php +++ b/update.php @@ -108,6 +108,9 @@ function update_script_selection_form($form, &$form_state) { $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 @@ function update_info_page() { $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 @@ function update_extra_requirements($requirements = NULL) { } /** - * Check update requirements and report any errors. + * 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() { +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(); } @@ -387,8 +397,9 @@ if (empty($op) && update_access_allowed()) { // 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'); @@ -420,8 +431,12 @@ if (update_access_allowed()) { 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) { @@ -435,7 +450,12 @@ if (update_access_allowed()) { 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; } -- GitLab