diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/simpletest/tests/common.test | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index 5ce0d95cd..437b67cd1 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -1343,6 +1343,48 @@ class JavaScriptTestCase extends DrupalWebTestCase { } /** + * Tests JavaScript aggregation when files are added to a different scope. + */ + function testAggregationOrder() { + // Enable JavaScript aggregation. + variable_set('preprocess_js', 1); + drupal_static_reset('drupal_add_js'); + + // Add two JavaScript files to the current request and build the cache. + drupal_add_js('misc/ajax.js'); + drupal_add_js('misc/autocomplete.js'); + + $js_items = drupal_add_js(); + drupal_build_js_cache(array( + 'misc/ajax.js' => $js_items['misc/ajax.js'], + 'misc/autocomplete.js' => $js_items['misc/autocomplete.js'] + )); + + // Store the expected key for the first item in the cache. + $cache = array_keys(variable_get('drupal_js_cache_files', array())); + $expected_key = $cache[0]; + + // Reset variables and add a file in a different scope first. + variable_del('drupal_js_cache_files'); + drupal_static_reset('drupal_add_js'); + drupal_add_js('some/custom/javascript_file.js', array('scope' => 'footer')); + drupal_add_js('misc/ajax.js'); + drupal_add_js('misc/autocomplete.js'); + + // Rebuild the cache. + $js_items = drupal_add_js(); + drupal_build_js_cache(array( + 'misc/ajax.js' => $js_items['misc/ajax.js'], + 'misc/autocomplete.js' => $js_items['misc/autocomplete.js'] + )); + + // Compare the expected key for the first file to the current one. + $cache = array_keys(variable_get('drupal_js_cache_files', array())); + $key = $cache[0]; + $this->assertEqual($key, $expected_key, 'JavaScript aggregation is not affected by ordering in different scopes.'); + } + + /** * Test JavaScript ordering. */ function testRenderOrder() { |