dist/ember-testing.js in ember-source-2.7.2 vs dist/ember-testing.js in ember-source-2.8.0.beta.1

- old
+ new

@@ -4,11 +4,11 @@ * @copyright Copyright 2011-2016 Tilde Inc. and contributors * Portions Copyright 2006-2011 Strobe Inc. * Portions Copyright 2008-2011 Apple Inc. All rights reserved. * @license Licensed under MIT license * See https://raw.github.com/emberjs/ember.js/master/LICENSE - * @version 2.7.2 + * @version 2.8.0-beta.1 */ var enifed, requireModule, require, Ember; var mainContext = this; @@ -217,20 +217,17 @@ * In a production build, this method is defined as an empty function (NOP). Uses of this method in Ember itself are stripped from the ember.prod.js build. @method deprecate @param {String} message A description of the deprecation. - @param {Boolean} test A boolean. If falsy, the deprecation will be displayed. - @param {Object} options - @param {String} options.id A unique id for this deprecation. The id can be - used by Ember debugging tools to change the behavior (raise, log or silence) - for that specific deprecation. The id should be namespaced by dots, e.g. - "view.helper.select". - @param {string} options.until The version of Ember when this deprecation - warning will be removed. - @param {String} [options.url] An optional url to the transition guide on the - emberjs.com website. + @param {Boolean} test A boolean. If falsy, the deprecation + will be displayed. + @param {Object} options An object that can be used to pass + in a `url` to the transition guide on the emberjs.com website, and a unique + `id` for this deprecation. The `id` can be used by Ember debugging tools + to change the behavior (raise, log or silence) for that specific deprecation. + The `id` should be namespaced by dots, e.g. "view.helper.select". @for Ember @public */ function deprecate(message, test, options) { @@ -482,40 +479,42 @@ } } } if (!_emberMetalTesting.isTesting()) { - // Complain if they're using FEATURE flags in builds other than canary - _emberMetalFeatures.FEATURES['features-stripped-test'] = true; - var featuresWereStripped = true; + (function () { + // Complain if they're using FEATURE flags in builds other than canary + _emberMetalFeatures.FEATURES['features-stripped-test'] = true; + var featuresWereStripped = true; - if (false) { - exports.featuresWereStripped = featuresWereStripped = false; - } + if (false) { + featuresWereStripped = false; + } - delete _emberMetalFeatures.FEATURES['features-stripped-test']; - _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped); + delete _emberMetalFeatures.FEATURES['features-stripped-test']; + _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped); - // Inform the developer about the Ember Inspector if not installed. - var isFirefox = _emberEnvironment.environment.isFirefox; - var isChrome = _emberEnvironment.environment.isChrome; + // Inform the developer about the Ember Inspector if not installed. + var isFirefox = _emberEnvironment.environment.isFirefox; + var isChrome = _emberEnvironment.environment.isChrome; - if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) { - window.addEventListener('load', function () { - if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset.emberExtension) { - var downloadURL; + if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) { + window.addEventListener('load', function () { + if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset.emberExtension) { + var downloadURL; - if (isChrome) { - downloadURL = 'https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi'; - } else if (isFirefox) { - downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/'; - } + if (isChrome) { + downloadURL = 'https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi'; + } else if (isFirefox) { + downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/'; + } - _emberMetalDebug.debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL); - } - }, false); - } + _emberMetalDebug.debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL); + } + }, false); + } + })(); } /** @public @class Ember.Debug */ @@ -686,11 +685,11 @@ @class Adapter @namespace Ember.Test @public */ - var Adapter = _emberRuntimeSystemObject.default.extend({ + exports.default = _emberRuntimeSystemObject.default.extend({ /** This callback will be called whenever an async operation is about to start. Override this to call your framework's methods that handle async operations. @public @@ -721,12 +720,10 @@ */ exception: function (error) { throw error; } }); - - exports.default = Adapter; }); enifed('ember-testing/adapters/qunit', ['exports', 'ember-testing/adapters/adapter', 'ember-metal/utils'], function (exports, _emberTestingAdaptersAdapter, _emberMetalUtils) { 'use strict'; /** @@ -949,14 +946,14 @@ this.removeTestHelpers(); } }); this.testHelpers = {}; - for (var name in _emberTestingTestHelpers.helpers) { - this.originalMethods[name] = this.helperContainer[name]; - this.testHelpers[name] = this.helperContainer[name] = helper(this, name); - protoWrap(_emberTestingTestPromise.default.prototype, name, helper(this, name), _emberTestingTestHelpers.helpers[name].meta.wait); + for (var _name in _emberTestingTestHelpers.helpers) { + this.originalMethods[_name] = this.helperContainer[_name]; + this.testHelpers[_name] = this.helperContainer[_name] = helper(this, _name); + protoWrap(_emberTestingTestPromise.default.prototype, _name, helper(this, _name), _emberTestingTestHelpers.helpers[_name].meta.wait); } _emberTestingTestOn_inject_helpers.invokeInjectHelpersCallbacks(this); }, @@ -973,15 +970,15 @@ removeTestHelpers: function () { if (!this.helperContainer) { return; } - for (var name in _emberTestingTestHelpers.helpers) { - this.helperContainer[name] = this.originalMethods[name]; - delete _emberTestingTestPromise.default.prototype[name]; - delete this.testHelpers[name]; - delete this.originalMethods[name]; + for (var _name2 in _emberTestingTestHelpers.helpers) { + this.helperContainer[_name2] = this.originalMethods[_name2]; + delete _emberTestingTestPromise.default.prototype[_name2]; + delete this.testHelpers[_name2]; + delete this.originalMethods[_name2]; } } }); // This method is no longer needed @@ -1096,11 +1093,10 @@ }); ``` @method click @param {String} selector jQuery selector for finding element on the DOM - @param {Object} context A DOM Element, Document, or jQuery to use as context @return {RSVP.Promise} @public */ _emberTestingTestHelpers.registerAsyncHelper('click', _emberTestingHelpersClick.default); @@ -1204,31 +1200,11 @@ @return {RSVP.Promise} @public */ _emberTestingTestHelpers.registerAsyncHelper('wait', _emberTestingHelpersWait.default); _emberTestingTestHelpers.registerAsyncHelper('andThen', _emberTestingHelpersAnd_then.default); - - /** - Returns the currently active route name. - - Example: - - ```javascript - function validateRouteName() { - equal(currentRouteName(), 'some.path', "correct route was transitioned into."); - } - - visit('/some/path').then(validateRouteName) - ``` - - @method currentRouteName - @return {Object} The name of the currently active route. - @since 1.5.0 - @public - */ _emberTestingTestHelpers.registerHelper('currentRouteName', _emberTestingHelpersCurrent_route_name.default); - /** Returns the current path. Example: @@ -1264,56 +1240,11 @@ @return {Object} The currently active URL. @since 1.5.0 @public */ _emberTestingTestHelpers.registerHelper('currentURL', _emberTestingHelpersCurrent_url.default); - - /** - Pauses the current test - this is useful for debugging while testing or for test-driving. - It allows you to inspect the state of your application at any point. - - Example (The test will pause before clicking the button): - - ```javascript - visit('/') - return pauseTest(); - - click('.btn'); - ``` - - @since 1.9.0 - @method pauseTest - @return {Object} A promise that will never resolve - @public - */ _emberTestingTestHelpers.registerAsyncHelper('pauseTest', _emberTestingHelpersPause_test.default); - - /** - Triggers the given DOM event on the element identified by the provided selector. - - Example: - - ```javascript - triggerEvent('#some-elem-id', 'blur'); - ``` - - This is actually used internally by the `keyEvent` helper like so: - - ```javascript - triggerEvent('#some-elem-id', 'keypress', { keyCode: 13 }); - ``` - - @method triggerEvent - @param {String} selector jQuery selector for finding element on the DOM - @param {String} [context] jQuery selector that will limit the selector - argument to find only within the context's children - @param {String} type The event type to be triggered. - @param {Object} [options] The options to be passed to jQuery.Event. - @return {RSVP.Promise} - @since 1.5.0 - @public - */ _emberTestingTestHelpers.registerAsyncHelper('triggerEvent', _emberTestingHelpersTrigger_event.default); }); enifed("ember-testing/helpers/and_then", ["exports"], function (exports) { "use strict"; @@ -1321,25 +1252,25 @@ function andThen(app, callback) { return app.testHelpers.wait(callback(app)); } }); -enifed('ember-testing/helpers/click', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) { +enifed('ember-testing/helpers/click', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) { 'use strict'; exports.default = click; function click(app, selector, context) { var $el = app.testHelpers.findWithAssert(selector, context); var el = $el[0]; - _emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'mousedown'); + _emberTestingEvents.fireEvent(el, 'mousedown'); _emberTestingEvents.focus(el); - _emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'mouseup'); - _emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'click'); + _emberTestingEvents.fireEvent(el, 'mouseup'); + _emberTestingEvents.fireEvent(el, 'click'); return app.testHelpers.wait(); } }); enifed('ember-testing/helpers/current_path', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) { @@ -1351,14 +1282,33 @@ var routingService = app.__container__.lookup('service:-routing'); return _emberMetalProperty_get.get(routingService, 'currentPath'); } }); enifed('ember-testing/helpers/current_route_name', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) { + /** + @module ember + @submodule ember-testing + */ 'use strict'; exports.default = currentRouteName; + /** + Returns the currently active route name. + Example: + ```javascript + function validateRouteName() { + equal(currentRouteName(), 'some.path', "correct route was transitioned into."); + } + visit('/some/path').then(validateRouteName) + ``` + @method currentRouteName + @return {Object} The name of the currently active route. + @since 1.5.0 + @public + */ + function currentRouteName(app) { var routingService = app.__container__.lookup('service:-routing'); return _emberMetalProperty_get.get(routingService, 'currentRouteName'); } }); @@ -1370,30 +1320,32 @@ function currentURL(app) { var router = app.__container__.lookup('router:main'); return _emberMetalProperty_get.get(router, 'location').getURL(); } }); -enifed('ember-testing/helpers/fill_in', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) { +enifed('ember-testing/helpers/fill_in', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) { 'use strict'; exports.default = fillIn; function fillIn(app, selector, contextOrText, text) { - var $el, el, context; + var $el = undefined, + el = undefined, + context = undefined; if (typeof text === 'undefined') { text = contextOrText; } else { context = contextOrText; } $el = app.testHelpers.findWithAssert(selector, context); el = $el[0]; _emberTestingEvents.focus(el); - _emberMetalRun_loop.default(function () { - $el.val(text); - _emberTestingEvents.fireEvent(el, 'input'); - _emberTestingEvents.fireEvent(el, 'change'); - }); + + $el.val(text); + _emberTestingEvents.fireEvent(el, 'input'); + _emberTestingEvents.fireEvent(el, 'change'); + return app.testHelpers.wait(); } }); enifed('ember-testing/helpers/find', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) { 'use strict'; @@ -1424,11 +1376,12 @@ 'use strict'; exports.default = keyEvent; function keyEvent(app, selector, contextOrType, typeOrKeyCode, keyCode) { - var context, type; + var context = undefined, + type = undefined; if (typeof keyCode === 'undefined') { context = null; keyCode = typeOrKeyCode; type = contextOrType; @@ -1439,26 +1392,72 @@ return app.testHelpers.triggerEvent(selector, context, type, { keyCode: keyCode, which: keyCode }); } }); enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp'], function (exports, _emberRuntimeExtRsvp) { + /** + @module ember + @submodule ember-testing + */ 'use strict'; exports.default = pauseTest; + /** + Pauses the current test - this is useful for debugging while testing or for test-driving. + It allows you to inspect the state of your application at any point. + Example (The test will pause before clicking the button): + ```javascript + visit('/') + return pauseTest(); + click('.btn'); + ``` + @since 1.9.0 + @method pauseTest + @return {Object} A promise that will never resolve + @public + */ + function pauseTest() { return new _emberRuntimeExtRsvp.default.Promise(function () {}, 'TestAdapter paused promise'); } }); -enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) { +enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) { + /** + @module ember + @submodule ember-testing + */ 'use strict'; exports.default = triggerEvent; + /** + Triggers the given DOM event on the element identified by the provided selector. + Example: + ```javascript + triggerEvent('#some-elem-id', 'blur'); + ``` + This is actually used internally by the `keyEvent` helper like so: + ```javascript + triggerEvent('#some-elem-id', 'keypress', { keyCode: 13 }); + ``` + @method triggerEvent + @param {String} selector jQuery selector for finding element on the DOM + @param {String} [context] jQuery selector that will limit the selector + argument to find only within the context's children + @param {String} type The event type to be triggered. + @param {Object} [options] The options to be passed to jQuery.Event. + @return {RSVP.Promise} + @since 1.5.0 + @public + */ + function triggerEvent(app, selector, contextOrType, typeOrOptions, possibleOptions) { var arity = arguments.length; - var context, type, options; + var context = undefined, + type = undefined, + options = undefined; if (arity === 3) { // context and options are optional, so this is // app, selector, type context = null; @@ -1486,11 +1485,11 @@ } var $el = app.testHelpers.findWithAssert(selector, context); var el = $el[0]; - _emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, type, options); + _emberTestingEvents.fireEvent(el, type, options); return app.testHelpers.wait(); } }); enifed('ember-testing/helpers/visit', ['exports', 'ember-metal/run_loop'], function (exports, _emberMetalRun_loop) { @@ -1728,11 +1727,11 @@ resolve: _emberTestingTestPromise.resolve, registerWaiter: _emberTestingTestWaiters.registerWaiter, unregisterWaiter: _emberTestingTestWaiters.unregisterWaiter }; - if (false) { + if (true) { Test.checkWaiters = _emberTestingTestWaiters.checkWaiters; } /** Used to allow ember-testing to communicate with a specific testing @@ -2242,10 +2241,10 @@ } return -1; } function generateDeprecatedWaitersArray() { - _emberMetalDebug.deprecate('Usage of `Ember.Test.waiters` is deprecated. Please refactor to `Ember.Test.checkWaiters`.', !false, { until: '2.8.0', id: 'ember-testing.test-waiters' }); + _emberMetalDebug.deprecate('Usage of `Ember.Test.waiters` is deprecated. Please refactor to `Ember.Test.checkWaiters`.', !true, { until: '2.8.0', id: 'ember-testing.test-waiters' }); var array = new Array(callbacks.length); for (var i = 0; i < callbacks.length; i++) { var context = contexts[i]; var callback = callbacks[i];