From c727dfea1cbaf2628a598006bdf737d678e0569e Mon Sep 17 00:00:00 2001 From: machty Date: Thu, 24 Jan 2013 01:55:17 -0500 Subject: [PATCH] Allow libraries loaded before ember to tie into ember load hooks --- packages/ember-runtime/lib/system/lazy_load.js | 2 +- .../ember-runtime/tests/system/lazy_load_test.js | 12 ++++++++++++ tests/index.html | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/ember-runtime/lib/system/lazy_load.js b/packages/ember-runtime/lib/system/lazy_load.js index e50f8d5ac5c..ba81467e99c 100644 --- a/packages/ember-runtime/lib/system/lazy_load.js +++ b/packages/ember-runtime/lib/system/lazy_load.js @@ -3,7 +3,7 @@ @submodule ember-runtime */ -var loadHooks = {}; +var loadHooks = Ember.ENV.EMBER_LOAD_HOOKS || {}; var loaded = {}; /** diff --git a/packages/ember-runtime/tests/system/lazy_load_test.js b/packages/ember-runtime/tests/system/lazy_load_test.js index eeae211a61e..649487f560e 100644 --- a/packages/ember-runtime/tests/system/lazy_load_test.js +++ b/packages/ember-runtime/tests/system/lazy_load_test.js @@ -37,3 +37,15 @@ test("if runLoadHooks was already run, it executes newly added hooks immediately equal(count, 1, "the original object was passed into the load hook"); }); + +test("hooks in ENV.EMBER_LOAD_HOOKS['hookName'] get executed", function() { + + // Note that the necessary code to perform this test is run before + // the Ember lib is loaded in tests/index.html + + Ember.run(function() { + Ember.runLoadHooks("__before_ember_test_hook__", 1); + }); + + equal(window.ENV.__test_hook_count__, 1, "the object was passed into the load hook"); +}); diff --git a/tests/index.html b/tests/index.html index f7b788b37a1..f5981ba8a79 100644 --- a/tests/index.html +++ b/tests/index.html @@ -67,6 +67,14 @@ } window.ENV = window.ENV || {}; + // Test for "hooks in ENV.EMBER_LOAD_HOOKS['hookName'] get executed" + ENV.EMBER_LOAD_HOOKS = ENV.EMBER_LOAD_HOOKS || {}; + ENV.EMBER_LOAD_HOOKS.__before_ember_test_hook__ = ENV.EMBER_LOAD_HOOKS.__before_ember_test_hook__ || []; + ENV.__test_hook_count__ = 0; + ENV.EMBER_LOAD_HOOKS.__before_ember_test_hook__.push(function(object) { + ENV.__test_hook_count__ += object; + }); + // Handle extending prototypes QUnit.config.urlConfig.push('extendprototypes');