ember-source 2.6.2 → 2.7.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +7988 -8585
- data/dist/ember-template-compiler.js +8939 -10472
- data/dist/ember-testing.js +950 -662
- data/dist/ember.debug.js +32406 -32152
- data/dist/ember.js +32406 -32152
- data/dist/ember.min.js +14 -14
- data/dist/ember.prod.js +18736 -18813
- metadata +6 -6
data/dist/ember-testing.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.
|
9
|
+
* @version 2.7.0-beta.1
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -82,10 +82,9 @@ var mainContext = this;
|
|
82
82
|
|
83
83
|
var deps = mod.deps;
|
84
84
|
var callback = mod.callback;
|
85
|
-
var
|
86
|
-
var reified = new Array(length);
|
85
|
+
var reified = new Array(deps.length);
|
87
86
|
|
88
|
-
for (var i = 0; i < length; i++) {
|
87
|
+
for (var i = 0; i < deps.length; i++) {
|
89
88
|
if (deps[i] === 'exports') {
|
90
89
|
reified[i] = exports;
|
91
90
|
} else if (deps[i] === 'require') {
|
@@ -113,7 +112,7 @@ var mainContext = this;
|
|
113
112
|
}
|
114
113
|
})();
|
115
114
|
|
116
|
-
enifed('ember-debug/deprecate', ['exports', 'ember-metal/
|
115
|
+
enifed('ember-debug/deprecate', ['exports', 'ember-metal/error', 'ember-console', 'ember-environment', 'ember-debug/handlers'], function (exports, _emberMetalError, _emberConsole, _emberEnvironment, _emberDebugHandlers) {
|
117
116
|
/*global __fail__*/
|
118
117
|
|
119
118
|
'use strict';
|
@@ -143,7 +142,7 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
|
|
143
142
|
registerHandler(function logDeprecationToConsole(message, options) {
|
144
143
|
var updatedMessage = formatMessage(message, options);
|
145
144
|
|
146
|
-
|
145
|
+
_emberConsole.default.warn('DEPRECATION: ' + updatedMessage);
|
147
146
|
});
|
148
147
|
|
149
148
|
var captureErrorForStack = undefined;
|
@@ -163,7 +162,7 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
|
|
163
162
|
}
|
164
163
|
|
165
164
|
registerHandler(function logDeprecationStackTrace(message, options, next) {
|
166
|
-
if (
|
165
|
+
if (_emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION) {
|
167
166
|
var stackStr = '';
|
168
167
|
var error = captureErrorForStack();
|
169
168
|
var stack = undefined;
|
@@ -183,14 +182,14 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
|
|
183
182
|
|
184
183
|
var updatedMessage = formatMessage(message, options);
|
185
184
|
|
186
|
-
|
185
|
+
_emberConsole.default.warn('DEPRECATION: ' + updatedMessage + stackStr);
|
187
186
|
} else {
|
188
187
|
next.apply(undefined, arguments);
|
189
188
|
}
|
190
189
|
});
|
191
190
|
|
192
191
|
registerHandler(function raiseOnDeprecation(message, options, next) {
|
193
|
-
if (
|
192
|
+
if (_emberEnvironment.ENV.RAISE_ON_DEPRECATION) {
|
194
193
|
var updatedMessage = formatMessage(message);
|
195
194
|
|
196
195
|
throw new _emberMetalError.default(updatedMessage);
|
@@ -292,7 +291,7 @@ enifed("ember-debug/handlers", ["exports"], function (exports) {
|
|
292
291
|
}
|
293
292
|
}
|
294
293
|
});
|
295
|
-
enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-
|
294
|
+
enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment', 'ember-metal/testing', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-console', 'ember-debug/deprecate', 'ember-debug/warn'], function (exports, _emberMetalCore, _emberEnvironment, _emberMetalTesting, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberConsole, _emberDebugDeprecate, _emberDebugWarn) {
|
296
295
|
'use strict';
|
297
296
|
|
298
297
|
exports._warnIfUsingStrippedFeatureFlags = _warnIfUsingStrippedFeatureFlags;
|
@@ -349,7 +348,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
|
|
349
348
|
@public
|
350
349
|
*/
|
351
350
|
_emberMetalDebug.setDebugFunction('debug', function debug(message) {
|
352
|
-
|
351
|
+
_emberConsole.default.debug('DEBUG: ' + message);
|
353
352
|
});
|
354
353
|
|
355
354
|
/**
|
@@ -362,7 +361,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
|
|
362
361
|
@private
|
363
362
|
*/
|
364
363
|
_emberMetalDebug.setDebugFunction('info', function info() {
|
365
|
-
|
364
|
+
_emberConsole.default.info.apply(undefined, arguments);
|
366
365
|
});
|
367
366
|
|
368
367
|
/**
|
@@ -467,7 +466,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
|
|
467
466
|
|
468
467
|
function _warnIfUsingStrippedFeatureFlags(FEATURES, knownFeatures, featuresWereStripped) {
|
469
468
|
if (featuresWereStripped) {
|
470
|
-
_emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !
|
469
|
+
_emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !_emberEnvironment.ENV.ENABLE_OPTIONAL_FEATURES, { id: 'ember-debug.feature-flag-with-features-stripped' });
|
471
470
|
|
472
471
|
var keys = Object.keys(FEATURES || {});
|
473
472
|
for (var i = 0; i < keys.length; i++) {
|
@@ -481,17 +480,17 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
|
|
481
480
|
}
|
482
481
|
}
|
483
482
|
|
484
|
-
if (!
|
483
|
+
if (!_emberMetalTesting.isTesting()) {
|
485
484
|
// Complain if they're using FEATURE flags in builds other than canary
|
486
485
|
_emberMetalFeatures.FEATURES['features-stripped-test'] = true;
|
487
486
|
var featuresWereStripped = true;
|
488
487
|
|
489
488
|
delete _emberMetalFeatures.FEATURES['features-stripped-test'];
|
490
|
-
_warnIfUsingStrippedFeatureFlags(
|
489
|
+
_warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
|
491
490
|
|
492
491
|
// Inform the developer about the Ember Inspector if not installed.
|
493
|
-
var isFirefox =
|
494
|
-
var isChrome =
|
492
|
+
var isFirefox = _emberEnvironment.environment.isFirefox;
|
493
|
+
var isChrome = _emberEnvironment.environment.isChrome;
|
495
494
|
|
496
495
|
if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) {
|
497
496
|
window.addEventListener('load', function () {
|
@@ -595,7 +594,8 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
|
|
595
594
|
_emberMetalDebug.warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.');
|
596
595
|
}
|
597
596
|
});
|
598
|
-
|
597
|
+
// reexports
|
598
|
+
enifed('ember-debug/warn', ['exports', 'ember-console', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberConsole, _emberMetalDebug, _emberDebugHandlers) {
|
599
599
|
'use strict';
|
600
600
|
|
601
601
|
var _slice = Array.prototype.slice;
|
@@ -607,9 +607,9 @@ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug'
|
|
607
607
|
}
|
608
608
|
|
609
609
|
registerHandler(function logWarning(message, options) {
|
610
|
-
|
611
|
-
if ('trace' in
|
612
|
-
|
610
|
+
_emberConsole.default.warn('WARNING: ' + message);
|
611
|
+
if ('trace' in _emberConsole.default) {
|
612
|
+
_emberConsole.default.trace();
|
613
613
|
}
|
614
614
|
});
|
615
615
|
|
@@ -743,70 +743,49 @@ enifed('ember-testing/adapters/qunit', ['exports', 'ember-testing/adapters/adapt
|
|
743
743
|
}
|
744
744
|
});
|
745
745
|
});
|
746
|
-
enifed('ember-testing/
|
746
|
+
enifed('ember-testing/events', ['exports', 'ember-views/system/jquery', 'ember-metal/run_loop'], function (exports, _emberViewsSystemJquery, _emberMetalRun_loop) {
|
747
747
|
'use strict';
|
748
748
|
|
749
|
-
|
750
|
-
|
751
|
-
@submodule ember-testing
|
752
|
-
*/
|
749
|
+
exports.focus = focus;
|
750
|
+
exports.fireEvent = fireEvent;
|
753
751
|
|
754
|
-
var
|
755
|
-
var
|
756
|
-
|
757
|
-
var keyboardEventTypes, mouseEventTypes, buildKeyboardEvent, buildMouseEvent, buildBasicEvent, fireEvent, focus;
|
758
|
-
|
759
|
-
var defaultEventOptions = { canBubble: true, cancelable: true };
|
760
|
-
keyboardEventTypes = ['keydown', 'keypress', 'keyup'];
|
761
|
-
mouseEventTypes = ['click', 'mousedown', 'mouseup', 'dblclick', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover'];
|
762
|
-
|
763
|
-
buildKeyboardEvent = function buildKeyboardEvent(type) {
|
764
|
-
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
752
|
+
var DEFAULT_EVENT_OPTIONS = { canBubble: true, cancelable: true };
|
753
|
+
var KEYBOARD_EVENT_TYPES = ['keydown', 'keypress', 'keyup'];
|
754
|
+
var MOUSE_EVENT_TYPES = ['click', 'mousedown', 'mouseup', 'dblclick', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover'];
|
765
755
|
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
var eventOpts = _emberViewsSystemJquery.default.extend({}, defaultEventOptions, options);
|
770
|
-
event.initKeyEvent(type, eventOpts.canBubble, eventOpts.cancelable, window, eventOpts.ctrlKey, eventOpts.altKey, eventOpts.shiftKey, eventOpts.metaKey, eventOpts.keyCode, eventOpts.charCode);
|
771
|
-
} catch (e) {
|
772
|
-
event = buildBasicEvent(type, options);
|
756
|
+
function focus(el) {
|
757
|
+
if (!el) {
|
758
|
+
return;
|
773
759
|
}
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
760
|
+
var $el = _emberViewsSystemJquery.default(el);
|
761
|
+
if ($el.is(':input, [contenteditable=true]')) {
|
762
|
+
var type = $el.prop('type');
|
763
|
+
if (type !== 'checkbox' && type !== 'radio' && type !== 'hidden') {
|
764
|
+
_emberMetalRun_loop.default(null, function () {
|
765
|
+
// Firefox does not trigger the `focusin` event if the window
|
766
|
+
// does not have focus. If the document doesn't have focus just
|
767
|
+
// use trigger('focusin') instead.
|
779
768
|
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
769
|
+
if (!document.hasFocus || document.hasFocus()) {
|
770
|
+
el.focus();
|
771
|
+
} else {
|
772
|
+
$el.trigger('focusin');
|
773
|
+
}
|
774
|
+
});
|
775
|
+
}
|
787
776
|
}
|
788
|
-
|
789
|
-
};
|
790
|
-
|
791
|
-
buildBasicEvent = function buildBasicEvent(type) {
|
792
|
-
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
793
|
-
|
794
|
-
var event = document.createEvent('Events');
|
795
|
-
event.initEvent(type, true, true);
|
796
|
-
_emberViewsSystemJquery.default.extend(event, options);
|
797
|
-
return event;
|
798
|
-
};
|
777
|
+
}
|
799
778
|
|
800
|
-
|
779
|
+
function fireEvent(element, type) {
|
801
780
|
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
802
781
|
|
803
782
|
if (!element) {
|
804
783
|
return;
|
805
784
|
}
|
806
785
|
var event = undefined;
|
807
|
-
if (
|
786
|
+
if (KEYBOARD_EVENT_TYPES.indexOf(type) > -1) {
|
808
787
|
event = buildKeyboardEvent(type, options);
|
809
|
-
} else if (
|
788
|
+
} else if (MOUSE_EVENT_TYPES.indexOf(type) > -1) {
|
810
789
|
var rect = element.getBoundingClientRect();
|
811
790
|
var x = rect.left + 1;
|
812
791
|
var y = rect.top + 1;
|
@@ -821,144 +800,317 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
821
800
|
event = buildBasicEvent(type, options);
|
822
801
|
}
|
823
802
|
element.dispatchEvent(event);
|
824
|
-
}
|
825
|
-
|
826
|
-
focus = function focus(el) {
|
827
|
-
if (!el) {
|
828
|
-
return;
|
829
|
-
}
|
830
|
-
var $el = _emberViewsSystemJquery.default(el);
|
831
|
-
if ($el.is(':input, [contenteditable=true]')) {
|
832
|
-
var type = $el.prop('type');
|
833
|
-
if (type !== 'checkbox' && type !== 'radio' && type !== 'hidden') {
|
834
|
-
_emberMetalRun_loop.default(null, function () {
|
835
|
-
// Firefox does not trigger the `focusin` event if the window
|
836
|
-
// does not have focus. If the document doesn't have focus just
|
837
|
-
// use trigger('focusin') instead.
|
838
|
-
|
839
|
-
if (!document.hasFocus || document.hasFocus()) {
|
840
|
-
el.focus();
|
841
|
-
} else {
|
842
|
-
$el.trigger('focusin');
|
843
|
-
}
|
844
|
-
});
|
845
|
-
}
|
846
|
-
}
|
847
|
-
};
|
803
|
+
}
|
848
804
|
|
849
|
-
function
|
850
|
-
var
|
805
|
+
function buildBasicEvent(type) {
|
806
|
+
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
851
807
|
|
852
|
-
|
808
|
+
var event = document.createEvent('Events');
|
809
|
+
event.initEvent(type, true, true);
|
810
|
+
_emberViewsSystemJquery.default.extend(event, options);
|
811
|
+
return event;
|
853
812
|
}
|
854
813
|
|
855
|
-
function
|
856
|
-
var
|
814
|
+
function buildMouseEvent(type) {
|
815
|
+
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
857
816
|
|
858
|
-
|
817
|
+
var event = undefined;
|
818
|
+
try {
|
819
|
+
event = document.createEvent('MouseEvents');
|
820
|
+
var eventOpts = _emberViewsSystemJquery.default.extend({}, DEFAULT_EVENT_OPTIONS, options);
|
821
|
+
event.initMouseEvent(type, eventOpts.canBubble, eventOpts.cancelable, window, eventOpts.detail, eventOpts.screenX, eventOpts.screenY, eventOpts.clientX, eventOpts.clientY, eventOpts.ctrlKey, eventOpts.altKey, eventOpts.shiftKey, eventOpts.metaKey, eventOpts.button, eventOpts.relatedTarget);
|
822
|
+
} catch (e) {
|
823
|
+
event = buildBasicEvent(type, options);
|
824
|
+
}
|
825
|
+
return event;
|
859
826
|
}
|
860
827
|
|
861
|
-
function
|
862
|
-
var
|
828
|
+
function buildKeyboardEvent(type) {
|
829
|
+
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
863
830
|
|
864
|
-
|
831
|
+
var event = undefined;
|
832
|
+
try {
|
833
|
+
event = document.createEvent('KeyEvents');
|
834
|
+
var eventOpts = _emberViewsSystemJquery.default.extend({}, DEFAULT_EVENT_OPTIONS, options);
|
835
|
+
event.initKeyEvent(type, eventOpts.canBubble, eventOpts.cancelable, window, eventOpts.ctrlKey, eventOpts.altKey, eventOpts.shiftKey, eventOpts.metaKey, eventOpts.keyCode, eventOpts.charCode);
|
836
|
+
} catch (e) {
|
837
|
+
event = buildBasicEvent(type, options);
|
838
|
+
}
|
839
|
+
return event;
|
865
840
|
}
|
841
|
+
});
|
842
|
+
enifed('ember-testing/ext/application', ['exports', 'ember-application/system/application', 'ember-testing/setup_for_testing', 'ember-testing/test/helpers', 'ember-testing/test/promise', 'ember-testing/test/run', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/adapter'], function (exports, _emberApplicationSystemApplication, _emberTestingSetup_for_testing, _emberTestingTestHelpers, _emberTestingTestPromise, _emberTestingTestRun, _emberTestingTestOn_inject_helpers, _emberTestingTestAdapter) {
|
843
|
+
'use strict';
|
866
844
|
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
845
|
+
_emberApplicationSystemApplication.default.reopen({
|
846
|
+
/**
|
847
|
+
This property contains the testing helpers for the current application. These
|
848
|
+
are created once you call `injectTestHelpers` on your `Ember.Application`
|
849
|
+
instance. The included helpers are also available on the `window` object by
|
850
|
+
default, but can be used from this object on the individual application also.
|
851
|
+
@property testHelpers
|
852
|
+
@type {Object}
|
853
|
+
@default {}
|
854
|
+
@public
|
855
|
+
*/
|
856
|
+
testHelpers: {},
|
871
857
|
|
872
|
-
|
873
|
-
|
874
|
-
|
858
|
+
/**
|
859
|
+
This property will contain the original methods that were registered
|
860
|
+
on the `helperContainer` before `injectTestHelpers` is called.
|
861
|
+
When `removeTestHelpers` is called, these methods are restored to the
|
862
|
+
`helperContainer`.
|
863
|
+
@property originalMethods
|
864
|
+
@type {Object}
|
865
|
+
@default {}
|
866
|
+
@private
|
867
|
+
@since 1.3.0
|
868
|
+
*/
|
869
|
+
originalMethods: {},
|
875
870
|
|
876
|
-
|
877
|
-
|
871
|
+
/**
|
872
|
+
This property indicates whether or not this application is currently in
|
873
|
+
testing mode. This is set when `setupForTesting` is called on the current
|
874
|
+
application.
|
875
|
+
@property testing
|
876
|
+
@type {Boolean}
|
877
|
+
@default false
|
878
|
+
@since 1.3.0
|
879
|
+
@public
|
880
|
+
*/
|
881
|
+
testing: false,
|
878
882
|
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
+
/**
|
884
|
+
This hook defers the readiness of the application, so that you can start
|
885
|
+
the app when your tests are ready to run. It also sets the router's
|
886
|
+
location to 'none', so that the window's location will not be modified
|
887
|
+
(preventing both accidental leaking of state between tests and interference
|
888
|
+
with your testing framework).
|
889
|
+
Example:
|
890
|
+
```
|
891
|
+
App.setupForTesting();
|
892
|
+
```
|
893
|
+
@method setupForTesting
|
894
|
+
@public
|
895
|
+
*/
|
896
|
+
setupForTesting: function () {
|
897
|
+
_emberTestingSetup_for_testing.default();
|
883
898
|
|
884
|
-
|
885
|
-
router['initialURL'] = url;
|
886
|
-
_emberMetalRun_loop.default(app, 'advanceReadiness');
|
887
|
-
delete router['initialURL'];
|
888
|
-
} else {
|
889
|
-
shouldHandleURL = true;
|
890
|
-
}
|
899
|
+
this.testing = true;
|
891
900
|
|
892
|
-
|
893
|
-
|
901
|
+
this.Router.reopen({
|
902
|
+
location: 'none'
|
903
|
+
});
|
904
|
+
},
|
894
905
|
|
895
|
-
|
896
|
-
|
897
|
-
|
906
|
+
/**
|
907
|
+
This will be used as the container to inject the test helpers into. By
|
908
|
+
default the helpers are injected into `window`.
|
909
|
+
@property helperContainer
|
910
|
+
@type {Object} The object to be used for test helpers.
|
911
|
+
@default window
|
912
|
+
@since 1.2.0
|
913
|
+
@private
|
914
|
+
*/
|
915
|
+
helperContainer: null,
|
898
916
|
|
899
|
-
|
917
|
+
/**
|
918
|
+
This injects the test helpers into the `helperContainer` object. If an object is provided
|
919
|
+
it will be used as the helperContainer. If `helperContainer` is not set it will default
|
920
|
+
to `window`. If a function of the same name has already been defined it will be cached
|
921
|
+
(so that it can be reset if the helper is removed with `unregisterHelper` or
|
922
|
+
`removeTestHelpers`).
|
923
|
+
Any callbacks registered with `onInjectHelpers` will be called once the
|
924
|
+
helpers have been injected.
|
925
|
+
Example:
|
926
|
+
```
|
927
|
+
App.injectTestHelpers();
|
928
|
+
```
|
929
|
+
@method injectTestHelpers
|
930
|
+
@public
|
931
|
+
*/
|
932
|
+
injectTestHelpers: function (helperContainer) {
|
933
|
+
if (helperContainer) {
|
934
|
+
this.helperContainer = helperContainer;
|
935
|
+
} else {
|
936
|
+
this.helperContainer = window;
|
937
|
+
}
|
900
938
|
|
901
|
-
|
939
|
+
this.reopen({
|
940
|
+
willDestroy: function () {
|
941
|
+
this._super.apply(this, arguments);
|
942
|
+
this.removeTestHelpers();
|
943
|
+
}
|
944
|
+
});
|
902
945
|
|
903
|
-
|
904
|
-
|
946
|
+
this.testHelpers = {};
|
947
|
+
for (var name in _emberTestingTestHelpers.helpers) {
|
948
|
+
this.originalMethods[name] = this.helperContainer[name];
|
949
|
+
this.testHelpers[name] = this.helperContainer[name] = helper(this, name);
|
950
|
+
protoWrap(_emberTestingTestPromise.default.prototype, name, helper(this, name), _emberTestingTestHelpers.helpers[name].meta.wait);
|
951
|
+
}
|
905
952
|
|
906
|
-
|
907
|
-
|
953
|
+
_emberTestingTestOn_inject_helpers.invokeInjectHelpersCallbacks(this);
|
954
|
+
},
|
908
955
|
|
909
|
-
|
910
|
-
|
911
|
-
|
956
|
+
/**
|
957
|
+
This removes all helpers that have been registered, and resets and functions
|
958
|
+
that were overridden by the helpers.
|
959
|
+
Example:
|
960
|
+
```javascript
|
961
|
+
App.removeTestHelpers();
|
962
|
+
```
|
963
|
+
@public
|
964
|
+
@method removeTestHelpers
|
965
|
+
*/
|
966
|
+
removeTestHelpers: function () {
|
967
|
+
if (!this.helperContainer) {
|
968
|
+
return;
|
969
|
+
}
|
912
970
|
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
}
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
971
|
+
for (var name in _emberTestingTestHelpers.helpers) {
|
972
|
+
this.helperContainer[name] = this.originalMethods[name];
|
973
|
+
delete _emberTestingTestPromise.default.prototype[name];
|
974
|
+
delete this.testHelpers[name];
|
975
|
+
delete this.originalMethods[name];
|
976
|
+
}
|
977
|
+
}
|
978
|
+
});
|
979
|
+
|
980
|
+
// This method is no longer needed
|
981
|
+
// But still here for backwards compatibility
|
982
|
+
// of helper chaining
|
983
|
+
function protoWrap(proto, name, callback, isAsync) {
|
984
|
+
proto[name] = function () {
|
985
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
986
|
+
args[_key] = arguments[_key];
|
987
|
+
}
|
988
|
+
|
989
|
+
if (isAsync) {
|
990
|
+
return callback.apply(this, args);
|
927
991
|
} else {
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
992
|
+
return this.then(function () {
|
993
|
+
return callback.apply(this, args);
|
994
|
+
});
|
995
|
+
}
|
996
|
+
};
|
997
|
+
}
|
998
|
+
|
999
|
+
function helper(app, name) {
|
1000
|
+
var fn = _emberTestingTestHelpers.helpers[name].method;
|
1001
|
+
var meta = _emberTestingTestHelpers.helpers[name].meta;
|
1002
|
+
if (!meta.wait) {
|
1003
|
+
return function () {
|
1004
|
+
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
1005
|
+
args[_key2] = arguments[_key2];
|
1006
|
+
}
|
1007
|
+
|
1008
|
+
return fn.apply(app, [app].concat(args));
|
1009
|
+
};
|
1010
|
+
}
|
1011
|
+
|
1012
|
+
return function () {
|
1013
|
+
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
1014
|
+
args[_key3] = arguments[_key3];
|
933
1015
|
}
|
1016
|
+
|
1017
|
+
var lastPromise = _emberTestingTestRun.default(function () {
|
1018
|
+
return _emberTestingTestPromise.resolve(_emberTestingTestPromise.getLastPromise());
|
1019
|
+
});
|
1020
|
+
|
1021
|
+
// wait for last helper's promise to resolve and then
|
1022
|
+
// execute. To be safe, we need to tell the adapter we're going
|
1023
|
+
// asynchronous here, because fn may not be invoked before we
|
1024
|
+
// return.
|
1025
|
+
_emberTestingTestAdapter.asyncStart();
|
1026
|
+
return lastPromise.then(function () {
|
1027
|
+
return fn.apply(app, [app].concat(args));
|
1028
|
+
}).finally(_emberTestingTestAdapter.asyncEnd);
|
1029
|
+
};
|
1030
|
+
}
|
1031
|
+
});
|
1032
|
+
enifed('ember-testing/ext/rsvp', ['exports', 'ember-runtime/ext/rsvp', 'ember-metal/run_loop', 'ember-metal/testing', 'ember-testing/test/adapter'], function (exports, _emberRuntimeExtRsvp, _emberMetalRun_loop, _emberMetalTesting, _emberTestingTestAdapter) {
|
1033
|
+
'use strict';
|
1034
|
+
|
1035
|
+
_emberRuntimeExtRsvp.default.configure('async', function (callback, promise) {
|
1036
|
+
// if schedule will cause autorun, we need to inform adapter
|
1037
|
+
if (_emberMetalTesting.isTesting() && !_emberMetalRun_loop.default.backburner.currentInstance) {
|
1038
|
+
_emberTestingTestAdapter.asyncStart();
|
1039
|
+
_emberMetalRun_loop.default.backburner.schedule('actions', function () {
|
1040
|
+
_emberTestingTestAdapter.asyncEnd();
|
1041
|
+
callback(promise);
|
1042
|
+
});
|
934
1043
|
} else {
|
935
|
-
|
936
|
-
|
937
|
-
|
1044
|
+
_emberMetalRun_loop.default.backburner.schedule('actions', function () {
|
1045
|
+
return callback(promise);
|
1046
|
+
});
|
938
1047
|
}
|
1048
|
+
});
|
1049
|
+
|
1050
|
+
exports.default = _emberRuntimeExtRsvp.default;
|
1051
|
+
});
|
1052
|
+
enifed("ember-testing/helpers/and_then", ["exports"], function (exports) {
|
1053
|
+
"use strict";
|
1054
|
+
|
1055
|
+
exports.default = andThen;
|
1056
|
+
|
1057
|
+
function andThen(app, callback) {
|
1058
|
+
return app.testHelpers.wait(callback(app));
|
1059
|
+
}
|
1060
|
+
});
|
1061
|
+
enifed('ember-testing/helpers/click', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) {
|
1062
|
+
'use strict';
|
1063
|
+
|
1064
|
+
exports.default = click;
|
939
1065
|
|
1066
|
+
function click(app, selector, context) {
|
940
1067
|
var $el = app.testHelpers.findWithAssert(selector, context);
|
941
1068
|
var el = $el[0];
|
942
1069
|
|
943
|
-
_emberMetalRun_loop.default(null, fireEvent, el,
|
1070
|
+
_emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'mousedown');
|
1071
|
+
|
1072
|
+
_emberTestingEvents.focus(el);
|
1073
|
+
|
1074
|
+
_emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'mouseup');
|
1075
|
+
_emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, 'click');
|
944
1076
|
|
945
1077
|
return app.testHelpers.wait();
|
946
1078
|
}
|
1079
|
+
});
|
1080
|
+
enifed('ember-testing/helpers/current_path', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1081
|
+
'use strict';
|
947
1082
|
|
948
|
-
|
949
|
-
var context, type;
|
1083
|
+
exports.default = currentPath;
|
950
1084
|
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
}
|
1085
|
+
function currentPath(app) {
|
1086
|
+
var routingService = app.__container__.lookup('service:-routing');
|
1087
|
+
return _emberMetalProperty_get.get(routingService, 'currentPath');
|
1088
|
+
}
|
1089
|
+
});
|
1090
|
+
enifed('ember-testing/helpers/current_route_name', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1091
|
+
'use strict';
|
959
1092
|
|
960
|
-
|
1093
|
+
exports.default = currentRouteName;
|
1094
|
+
|
1095
|
+
function currentRouteName(app) {
|
1096
|
+
var routingService = app.__container__.lookup('service:-routing');
|
1097
|
+
return _emberMetalProperty_get.get(routingService, 'currentRouteName');
|
1098
|
+
}
|
1099
|
+
});
|
1100
|
+
enifed('ember-testing/helpers/current_url', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1101
|
+
'use strict';
|
1102
|
+
|
1103
|
+
exports.default = currentURL;
|
1104
|
+
|
1105
|
+
function currentURL(app) {
|
1106
|
+
var router = app.__container__.lookup('router:main');
|
1107
|
+
return _emberMetalProperty_get.get(router, 'location').getURL();
|
961
1108
|
}
|
1109
|
+
});
|
1110
|
+
enifed('ember-testing/helpers/fill_in', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) {
|
1111
|
+
'use strict';
|
1112
|
+
|
1113
|
+
exports.default = fillIn;
|
962
1114
|
|
963
1115
|
function fillIn(app, selector, contextOrText, text) {
|
964
1116
|
var $el, el, context;
|
@@ -969,34 +1121,146 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
969
1121
|
}
|
970
1122
|
$el = app.testHelpers.findWithAssert(selector, context);
|
971
1123
|
el = $el[0];
|
972
|
-
focus(el);
|
1124
|
+
_emberTestingEvents.focus(el);
|
973
1125
|
_emberMetalRun_loop.default(function () {
|
974
1126
|
$el.val(text);
|
975
|
-
fireEvent(el, 'input');
|
976
|
-
fireEvent(el, 'change');
|
1127
|
+
_emberTestingEvents.fireEvent(el, 'input');
|
1128
|
+
_emberTestingEvents.fireEvent(el, 'change');
|
977
1129
|
});
|
978
1130
|
return app.testHelpers.wait();
|
979
1131
|
}
|
1132
|
+
});
|
1133
|
+
enifed('ember-testing/helpers/find', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1134
|
+
'use strict';
|
1135
|
+
|
1136
|
+
exports.default = find;
|
1137
|
+
|
1138
|
+
function find(app, selector, context) {
|
1139
|
+
var $el = undefined;
|
1140
|
+
context = context || _emberMetalProperty_get.get(app, 'rootElement');
|
1141
|
+
$el = app.$(selector, context);
|
1142
|
+
return $el;
|
1143
|
+
}
|
1144
|
+
});
|
1145
|
+
enifed('ember-testing/helpers/find_with_assert', ['exports'], function (exports) {
|
1146
|
+
'use strict';
|
1147
|
+
|
1148
|
+
exports.default = findWithAssert;
|
980
1149
|
|
981
1150
|
function findWithAssert(app, selector, context) {
|
982
1151
|
var $el = app.testHelpers.find(selector, context);
|
983
1152
|
if ($el.length === 0) {
|
984
|
-
throw new
|
1153
|
+
throw new Error('Element ' + selector + ' not found.');
|
985
1154
|
}
|
986
1155
|
return $el;
|
987
1156
|
}
|
1157
|
+
});
|
1158
|
+
enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
|
1159
|
+
'use strict';
|
988
1160
|
|
989
|
-
|
990
|
-
var $el;
|
991
|
-
context = context || _emberMetalProperty_get.get(app, 'rootElement');
|
992
|
-
$el = app.$(selector, context);
|
1161
|
+
exports.default = keyEvent;
|
993
1162
|
|
994
|
-
|
1163
|
+
function keyEvent(app, selector, contextOrType, typeOrKeyCode, keyCode) {
|
1164
|
+
var context, type;
|
1165
|
+
|
1166
|
+
if (typeof keyCode === 'undefined') {
|
1167
|
+
context = null;
|
1168
|
+
keyCode = typeOrKeyCode;
|
1169
|
+
type = contextOrType;
|
1170
|
+
} else {
|
1171
|
+
context = contextOrType;
|
1172
|
+
type = typeOrKeyCode;
|
1173
|
+
}
|
1174
|
+
|
1175
|
+
return app.testHelpers.triggerEvent(selector, context, type, { keyCode: keyCode, which: keyCode });
|
995
1176
|
}
|
1177
|
+
});
|
1178
|
+
enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp', 'ember-testing/test'], function (exports, _emberRuntimeExtRsvp, _emberTestingTest) {
|
1179
|
+
'use strict';
|
996
1180
|
|
997
|
-
|
998
|
-
|
1181
|
+
exports.default = pauseTest;
|
1182
|
+
|
1183
|
+
function pauseTest() {
|
1184
|
+
_emberTestingTest.default.adapter.asyncStart();
|
1185
|
+
return new _emberRuntimeExtRsvp.default.Promise(function () {}, 'TestAdapter paused promise');
|
1186
|
+
}
|
1187
|
+
});
|
1188
|
+
enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-metal/run_loop', 'ember-testing/events'], function (exports, _emberMetalRun_loop, _emberTestingEvents) {
|
1189
|
+
'use strict';
|
1190
|
+
|
1191
|
+
exports.default = triggerEvent;
|
1192
|
+
|
1193
|
+
function triggerEvent(app, selector, contextOrType, typeOrOptions, possibleOptions) {
|
1194
|
+
var arity = arguments.length;
|
1195
|
+
var context, type, options;
|
1196
|
+
|
1197
|
+
if (arity === 3) {
|
1198
|
+
// context and options are optional, so this is
|
1199
|
+
// app, selector, type
|
1200
|
+
context = null;
|
1201
|
+
type = contextOrType;
|
1202
|
+
options = {};
|
1203
|
+
} else if (arity === 4) {
|
1204
|
+
// context and options are optional, so this is
|
1205
|
+
if (typeof typeOrOptions === 'object') {
|
1206
|
+
// either
|
1207
|
+
// app, selector, type, options
|
1208
|
+
context = null;
|
1209
|
+
type = contextOrType;
|
1210
|
+
options = typeOrOptions;
|
1211
|
+
} else {
|
1212
|
+
// or
|
1213
|
+
// app, selector, context, type
|
1214
|
+
context = contextOrType;
|
1215
|
+
type = typeOrOptions;
|
1216
|
+
options = {};
|
1217
|
+
}
|
1218
|
+
} else {
|
1219
|
+
context = contextOrType;
|
1220
|
+
type = typeOrOptions;
|
1221
|
+
options = possibleOptions;
|
1222
|
+
}
|
1223
|
+
|
1224
|
+
var $el = app.testHelpers.findWithAssert(selector, context);
|
1225
|
+
var el = $el[0];
|
1226
|
+
|
1227
|
+
_emberMetalRun_loop.default(null, _emberTestingEvents.fireEvent, el, type, options);
|
1228
|
+
|
1229
|
+
return app.testHelpers.wait();
|
1230
|
+
}
|
1231
|
+
});
|
1232
|
+
enifed('ember-testing/helpers/visit', ['exports', 'ember-metal/run_loop'], function (exports, _emberMetalRun_loop) {
|
1233
|
+
'use strict';
|
1234
|
+
|
1235
|
+
exports.default = visit;
|
1236
|
+
|
1237
|
+
function visit(app, url) {
|
1238
|
+
var router = app.__container__.lookup('router:main');
|
1239
|
+
var shouldHandleURL = false;
|
1240
|
+
|
1241
|
+
app.boot().then(function () {
|
1242
|
+
router.location.setURL(url);
|
1243
|
+
|
1244
|
+
if (shouldHandleURL) {
|
1245
|
+
_emberMetalRun_loop.default(app.__deprecatedInstance__, 'handleURL', url);
|
1246
|
+
}
|
1247
|
+
});
|
1248
|
+
|
1249
|
+
if (app._readinessDeferrals > 0) {
|
1250
|
+
router['initialURL'] = url;
|
1251
|
+
_emberMetalRun_loop.default(app, 'advanceReadiness');
|
1252
|
+
delete router['initialURL'];
|
1253
|
+
} else {
|
1254
|
+
shouldHandleURL = true;
|
1255
|
+
}
|
1256
|
+
|
1257
|
+
return app.testHelpers.wait();
|
999
1258
|
}
|
1259
|
+
});
|
1260
|
+
enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', 'ember-runtime/ext/rsvp', 'ember-metal/run_loop', 'ember-testing/test/pending_requests'], function (exports, _emberTestingTestWaiters, _emberRuntimeExtRsvp, _emberMetalRun_loop, _emberTestingTestPending_requests) {
|
1261
|
+
'use strict';
|
1262
|
+
|
1263
|
+
exports.default = wait;
|
1000
1264
|
|
1001
1265
|
function wait(app, value) {
|
1002
1266
|
return new _emberRuntimeExtRsvp.default.Promise(function (resolve) {
|
@@ -1011,7 +1275,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1011
1275
|
}
|
1012
1276
|
|
1013
1277
|
// 2. If there are pending Ajax requests, keep polling
|
1014
|
-
if (
|
1278
|
+
if (_emberTestingTestPending_requests.pendingRequests()) {
|
1015
1279
|
return;
|
1016
1280
|
}
|
1017
1281
|
|
@@ -1019,13 +1283,11 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1019
1283
|
if (_emberMetalRun_loop.default.hasScheduledTimers() || _emberMetalRun_loop.default.currentRunLoop) {
|
1020
1284
|
return;
|
1021
1285
|
}
|
1022
|
-
|
1023
|
-
|
1024
|
-
var callback = waiter[1];
|
1025
|
-
return !callback.call(context);
|
1026
|
-
})) {
|
1286
|
+
|
1287
|
+
if (_emberTestingTestWaiters.checkWaiters()) {
|
1027
1288
|
return;
|
1028
1289
|
}
|
1290
|
+
|
1029
1291
|
// Stop polling
|
1030
1292
|
clearInterval(watcher);
|
1031
1293
|
|
@@ -1034,6 +1296,14 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1034
1296
|
}, 10);
|
1035
1297
|
});
|
1036
1298
|
}
|
1299
|
+
});
|
1300
|
+
enifed('ember-testing/helpers', ['exports', 'ember-testing/test/helpers', 'ember-testing/helpers/and_then', 'ember-testing/helpers/click', 'ember-testing/helpers/current_path', 'ember-testing/helpers/current_route_name', 'ember-testing/helpers/current_url', 'ember-testing/helpers/fill_in', 'ember-testing/helpers/find', 'ember-testing/helpers/find_with_assert', 'ember-testing/helpers/key_event', 'ember-testing/helpers/pause_test', 'ember-testing/helpers/trigger_event', 'ember-testing/helpers/visit', 'ember-testing/helpers/wait'], function (exports, _emberTestingTestHelpers, _emberTestingHelpersAnd_then, _emberTestingHelpersClick, _emberTestingHelpersCurrent_path, _emberTestingHelpersCurrent_route_name, _emberTestingHelpersCurrent_url, _emberTestingHelpersFill_in, _emberTestingHelpersFind, _emberTestingHelpersFind_with_assert, _emberTestingHelpersKey_event, _emberTestingHelpersPause_test, _emberTestingHelpersTrigger_event, _emberTestingHelpersVisit, _emberTestingHelpersWait) {
|
1301
|
+
'use strict';
|
1302
|
+
|
1303
|
+
/**
|
1304
|
+
@module ember
|
1305
|
+
@submodule ember-testing
|
1306
|
+
*/
|
1037
1307
|
|
1038
1308
|
/**
|
1039
1309
|
Loads a route, sets up any controllers, and renders any templates associated
|
@@ -1053,7 +1323,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1053
1323
|
@return {RSVP.Promise}
|
1054
1324
|
@public
|
1055
1325
|
*/
|
1056
|
-
|
1326
|
+
_emberTestingTestHelpers.registerAsyncHelper('visit', _emberTestingHelpersVisit.default);
|
1057
1327
|
|
1058
1328
|
/**
|
1059
1329
|
Clicks an element and triggers any actions triggered by the element's `click`
|
@@ -1072,7 +1342,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1072
1342
|
@return {RSVP.Promise}
|
1073
1343
|
@public
|
1074
1344
|
*/
|
1075
|
-
|
1345
|
+
_emberTestingTestHelpers.registerAsyncHelper('click', _emberTestingHelpersClick.default);
|
1076
1346
|
|
1077
1347
|
/**
|
1078
1348
|
Simulates a key event, e.g. `keypress`, `keydown`, `keyup` with the desired keyCode
|
@@ -1093,7 +1363,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1093
1363
|
@since 1.5.0
|
1094
1364
|
@public
|
1095
1365
|
*/
|
1096
|
-
|
1366
|
+
_emberTestingTestHelpers.registerAsyncHelper('keyEvent', _emberTestingHelpersKey_event.default);
|
1097
1367
|
|
1098
1368
|
/**
|
1099
1369
|
Fills in an input element with some text.
|
@@ -1113,7 +1383,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1113
1383
|
@return {RSVP.Promise}
|
1114
1384
|
@public
|
1115
1385
|
*/
|
1116
|
-
|
1386
|
+
_emberTestingTestHelpers.registerAsyncHelper('fillIn', _emberTestingHelpersFill_in.default);
|
1117
1387
|
|
1118
1388
|
/**
|
1119
1389
|
Finds an element in the context of the app's container element. A simple alias
|
@@ -1130,7 +1400,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1130
1400
|
@return {Object} jQuery object representing the results of the query
|
1131
1401
|
@public
|
1132
1402
|
*/
|
1133
|
-
|
1403
|
+
_emberTestingTestHelpers.registerHelper('find', _emberTestingHelpersFind.default);
|
1134
1404
|
|
1135
1405
|
/**
|
1136
1406
|
Like `find`, but throws an error if the element selector returns no results.
|
@@ -1148,7 +1418,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1148
1418
|
@throws {Error} throws error if jQuery object returned has a length of 0
|
1149
1419
|
@public
|
1150
1420
|
*/
|
1151
|
-
|
1421
|
+
_emberTestingTestHelpers.registerHelper('findWithAssert', _emberTestingHelpersFind_with_assert.default);
|
1152
1422
|
|
1153
1423
|
/**
|
1154
1424
|
Causes the run loop to process any pending events. This is used to ensure that
|
@@ -1174,8 +1444,8 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1174
1444
|
@return {RSVP.Promise}
|
1175
1445
|
@public
|
1176
1446
|
*/
|
1177
|
-
|
1178
|
-
|
1447
|
+
_emberTestingTestHelpers.registerAsyncHelper('wait', _emberTestingHelpersWait.default);
|
1448
|
+
_emberTestingTestHelpers.registerAsyncHelper('andThen', _emberTestingHelpersAnd_then.default);
|
1179
1449
|
|
1180
1450
|
/**
|
1181
1451
|
Returns the currently active route name.
|
@@ -1195,7 +1465,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1195
1465
|
@since 1.5.0
|
1196
1466
|
@public
|
1197
1467
|
*/
|
1198
|
-
|
1468
|
+
_emberTestingTestHelpers.registerHelper('currentRouteName', _emberTestingHelpersCurrent_route_name.default);
|
1199
1469
|
|
1200
1470
|
/**
|
1201
1471
|
Returns the current path.
|
@@ -1215,7 +1485,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1215
1485
|
@since 1.5.0
|
1216
1486
|
@public
|
1217
1487
|
*/
|
1218
|
-
|
1488
|
+
_emberTestingTestHelpers.registerHelper('currentPath', _emberTestingHelpersCurrent_path.default);
|
1219
1489
|
|
1220
1490
|
/**
|
1221
1491
|
Returns the current URL.
|
@@ -1235,7 +1505,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1235
1505
|
@since 1.5.0
|
1236
1506
|
@public
|
1237
1507
|
*/
|
1238
|
-
|
1508
|
+
_emberTestingTestHelpers.registerHelper('currentURL', _emberTestingHelpersCurrent_url.default);
|
1239
1509
|
|
1240
1510
|
/**
|
1241
1511
|
Pauses the current test - this is useful for debugging while testing or for test-driving.
|
@@ -1255,7 +1525,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1255
1525
|
@return {Object} A promise that will never resolve
|
1256
1526
|
@public
|
1257
1527
|
*/
|
1258
|
-
|
1528
|
+
_emberTestingTestHelpers.registerHelper('pauseTest', _emberTestingHelpersPause_test.default);
|
1259
1529
|
|
1260
1530
|
/**
|
1261
1531
|
Triggers the given DOM event on the element identified by the provided selector.
|
@@ -1282,16 +1552,12 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
|
|
1282
1552
|
@since 1.5.0
|
1283
1553
|
@public
|
1284
1554
|
*/
|
1285
|
-
|
1555
|
+
_emberTestingTestHelpers.registerAsyncHelper('triggerEvent', _emberTestingHelpersTrigger_event.default);
|
1286
1556
|
});
|
1287
|
-
|
1288
|
-
// Firefox does not trigger the `focusin` event if the window
|
1289
|
-
// does not have focus. If the document doesn't have focus just
|
1290
|
-
// use trigger('focusin') instead.
|
1291
|
-
enifed('ember-testing/index', ['exports', 'ember-metal/core', 'ember-testing/initializers', 'ember-testing/support', 'ember-testing/setup_for_testing', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/adapters/qunit', 'ember-testing/helpers'], function (exports, _emberMetalCore, _emberTestingInitializers, _emberTestingSupport, _emberTestingSetup_for_testing, _emberTestingTest, _emberTestingAdaptersAdapter, _emberTestingAdaptersQunit, _emberTestingHelpers) {
|
1557
|
+
enifed('ember-testing/index', ['exports', 'ember-metal/core', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/setup_for_testing', 'require', 'ember-testing/support', 'ember-testing/ext/application', 'ember-testing/ext/rsvp', 'ember-testing/helpers', 'ember-testing/initializers'], function (exports, _emberMetalCore, _emberTestingTest, _emberTestingAdaptersAdapter, _emberTestingSetup_for_testing, _require, _emberTestingSupport, _emberTestingExtApplication, _emberTestingExtRsvp, _emberTestingHelpers, _emberTestingInitializers) {
|
1292
1558
|
'use strict';
|
1293
1559
|
|
1294
|
-
//
|
1560
|
+
// to setup initializer
|
1295
1561
|
|
1296
1562
|
/**
|
1297
1563
|
@module ember
|
@@ -1300,11 +1566,16 @@ enifed('ember-testing/index', ['exports', 'ember-metal/core', 'ember-testing/ini
|
|
1300
1566
|
|
1301
1567
|
_emberMetalCore.default.Test = _emberTestingTest.default;
|
1302
1568
|
_emberMetalCore.default.Test.Adapter = _emberTestingAdaptersAdapter.default;
|
1303
|
-
_emberMetalCore.default.Test.QUnitAdapter = _emberTestingAdaptersQunit.default;
|
1304
1569
|
_emberMetalCore.default.setupForTesting = _emberTestingSetup_for_testing.default;
|
1570
|
+
Object.defineProperty(_emberTestingTest.default, 'QUnitAdapter', {
|
1571
|
+
get: function () {
|
1572
|
+
return _require.default('ember-testing/adapters/qunit').default;
|
1573
|
+
}
|
1574
|
+
});
|
1305
1575
|
});
|
1306
|
-
//
|
1576
|
+
// reexports
|
1307
1577
|
// to handle various edge cases
|
1578
|
+
// adds helpers to helpers object in Test
|
1308
1579
|
enifed('ember-testing/initializers', ['exports', 'ember-runtime/system/lazy_load'], function (exports, _emberRuntimeSystemLazy_load) {
|
1309
1580
|
'use strict';
|
1310
1581
|
|
@@ -1324,27 +1595,11 @@ enifed('ember-testing/initializers', ['exports', 'ember-runtime/system/lazy_load
|
|
1324
1595
|
}
|
1325
1596
|
});
|
1326
1597
|
});
|
1327
|
-
enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal/
|
1598
|
+
enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal/testing', 'ember-views/system/jquery', 'ember-testing/test/adapter', 'ember-testing/test/pending_requests', 'require'], function (exports, _emberMetalTesting, _emberViewsSystemJquery, _emberTestingTestAdapter, _emberTestingTestPending_requests, _require) {
|
1328
1599
|
'use strict';
|
1329
1600
|
|
1330
1601
|
exports.default = setupForTesting;
|
1331
1602
|
|
1332
|
-
var Test, requests;
|
1333
|
-
|
1334
|
-
function incrementAjaxPendingRequests(_, xhr) {
|
1335
|
-
requests.push(xhr);
|
1336
|
-
Test.pendingAjaxRequests = requests.length;
|
1337
|
-
}
|
1338
|
-
|
1339
|
-
function decrementAjaxPendingRequests(_, xhr) {
|
1340
|
-
for (var i = 0; i < requests.length; i++) {
|
1341
|
-
if (xhr === requests[i]) {
|
1342
|
-
requests.splice(i, 1);
|
1343
|
-
}
|
1344
|
-
}
|
1345
|
-
Test.pendingAjaxRequests = requests.length;
|
1346
|
-
}
|
1347
|
-
|
1348
1603
|
/**
|
1349
1604
|
Sets Ember up for testing. This is useful to perform
|
1350
1605
|
basic setup steps in order to unit test.
|
@@ -1359,29 +1614,25 @@ enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal/core', 'ember
|
|
1359
1614
|
*/
|
1360
1615
|
|
1361
1616
|
function setupForTesting() {
|
1362
|
-
|
1363
|
-
Test = requireModule('ember-testing/test')['default'];
|
1364
|
-
}
|
1365
|
-
|
1366
|
-
_emberMetalCore.default.testing = true;
|
1617
|
+
_emberMetalTesting.setTesting(true);
|
1367
1618
|
|
1619
|
+
var adapter = _emberTestingTestAdapter.getAdapter();
|
1368
1620
|
// if adapter is not manually set default to QUnit
|
1369
|
-
if (!
|
1370
|
-
|
1621
|
+
if (!adapter) {
|
1622
|
+
var QUnitAdapter = _require.default('ember-testing/adapters/qunit').default;
|
1623
|
+
_emberTestingTestAdapter.setAdapter(new QUnitAdapter());
|
1371
1624
|
}
|
1372
1625
|
|
1373
|
-
|
1374
|
-
|
1626
|
+
_emberViewsSystemJquery.default(document).off('ajaxSend', _emberTestingTestPending_requests.incrementPendingRequests);
|
1627
|
+
_emberViewsSystemJquery.default(document).off('ajaxComplete', _emberTestingTestPending_requests.decrementPendingRequests);
|
1628
|
+
|
1629
|
+
_emberTestingTestPending_requests.clearPendingRequests();
|
1375
1630
|
|
1376
|
-
_emberViewsSystemJquery.default(document).
|
1377
|
-
_emberViewsSystemJquery.default(document).
|
1378
|
-
_emberViewsSystemJquery.default(document).on('ajaxSend', incrementAjaxPendingRequests);
|
1379
|
-
_emberViewsSystemJquery.default(document).on('ajaxComplete', decrementAjaxPendingRequests);
|
1631
|
+
_emberViewsSystemJquery.default(document).on('ajaxSend', _emberTestingTestPending_requests.incrementPendingRequests);
|
1632
|
+
_emberViewsSystemJquery.default(document).on('ajaxComplete', _emberTestingTestPending_requests.decrementPendingRequests);
|
1380
1633
|
}
|
1381
1634
|
});
|
1382
|
-
|
1383
|
-
// import Test from "ember-testing/test"; // ES6TODO: fix when cycles are supported
|
1384
|
-
enifed('ember-testing/support', ['exports', 'ember-metal/debug', 'ember-views/system/jquery', 'ember-metal/environment'], function (exports, _emberMetalDebug, _emberViewsSystemJquery, _emberMetalEnvironment) {
|
1635
|
+
enifed('ember-testing/support', ['exports', 'ember-metal/debug', 'ember-views/system/jquery', 'ember-environment'], function (exports, _emberMetalDebug, _emberViewsSystemJquery, _emberEnvironment) {
|
1385
1636
|
'use strict';
|
1386
1637
|
|
1387
1638
|
/**
|
@@ -1403,7 +1654,7 @@ enifed('ember-testing/support', ['exports', 'ember-metal/debug', 'ember-views/sy
|
|
1403
1654
|
$('<input type="checkbox">').css({ position: 'absolute', left: '-1000px', top: '-1000px' }).appendTo('body').on('click', handler).trigger('click').remove();
|
1404
1655
|
}
|
1405
1656
|
|
1406
|
-
if (
|
1657
|
+
if (_emberEnvironment.environment.hasDOM) {
|
1407
1658
|
$(function () {
|
1408
1659
|
/*
|
1409
1660
|
Determine whether a checkbox checked using jQuery's "click" method will have
|
@@ -1433,463 +1684,324 @@ enifed('ember-testing/support', ['exports', 'ember-metal/debug', 'ember-views/sy
|
|
1433
1684
|
});
|
1434
1685
|
}
|
1435
1686
|
});
|
1436
|
-
enifed('ember-testing/test', ['exports', 'ember-
|
1687
|
+
enifed('ember-testing/test/adapter', ['exports', 'ember-console', 'ember-metal/error_handler'], function (exports, _emberConsole, _emberMetalError_handler) {
|
1437
1688
|
'use strict';
|
1438
1689
|
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
var helpers = {};
|
1444
|
-
var injectHelpersCallbacks = [];
|
1690
|
+
exports.getAdapter = getAdapter;
|
1691
|
+
exports.setAdapter = setAdapter;
|
1692
|
+
exports.asyncStart = asyncStart;
|
1693
|
+
exports.asyncEnd = asyncEnd;
|
1445
1694
|
|
1446
|
-
|
1447
|
-
|
1695
|
+
var adapter = undefined;
|
1696
|
+
|
1697
|
+
function getAdapter() {
|
1698
|
+
return adapter;
|
1699
|
+
}
|
1700
|
+
|
1701
|
+
function setAdapter(value) {
|
1702
|
+
adapter = value;
|
1703
|
+
if (value) {
|
1704
|
+
_emberMetalError_handler.setDispatchOverride(adapterDispatch);
|
1705
|
+
} else {
|
1706
|
+
_emberMetalError_handler.setDispatchOverride(null);
|
1707
|
+
}
|
1708
|
+
}
|
1709
|
+
|
1710
|
+
function asyncStart() {
|
1711
|
+
if (adapter) {
|
1712
|
+
adapter.asyncStart();
|
1713
|
+
}
|
1714
|
+
}
|
1715
|
+
|
1716
|
+
function asyncEnd() {
|
1717
|
+
if (adapter) {
|
1718
|
+
adapter.asyncEnd();
|
1719
|
+
}
|
1720
|
+
}
|
1721
|
+
|
1722
|
+
function adapterDispatch(error) {
|
1723
|
+
adapter.exception(error);
|
1724
|
+
_emberConsole.default.error(error.stack);
|
1725
|
+
}
|
1726
|
+
});
|
1727
|
+
enifed('ember-testing/test/helpers', ['exports', 'ember-testing/test/promise'], function (exports, _emberTestingTestPromise) {
|
1728
|
+
'use strict';
|
1729
|
+
|
1730
|
+
exports.registerHelper = registerHelper;
|
1731
|
+
exports.registerAsyncHelper = registerAsyncHelper;
|
1732
|
+
exports.unregisterHelper = unregisterHelper;
|
1733
|
+
var helpers = {};
|
1734
|
+
|
1735
|
+
exports.helpers = helpers;
|
1736
|
+
/**
|
1737
|
+
`registerHelper` is used to register a test helper that will be injected
|
1738
|
+
when `App.injectTestHelpers` is called.
|
1448
1739
|
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1740
|
+
The helper method will always be called with the current Application as
|
1741
|
+
the first parameter.
|
1742
|
+
|
1743
|
+
For example:
|
1744
|
+
|
1745
|
+
```javascript
|
1746
|
+
Ember.Test.registerHelper('boot', function(app) {
|
1747
|
+
Ember.run(app, app.advanceReadiness);
|
1748
|
+
});
|
1749
|
+
```
|
1750
|
+
|
1751
|
+
This helper can later be called without arguments because it will be
|
1752
|
+
called with `app` as the first parameter.
|
1753
|
+
|
1754
|
+
```javascript
|
1755
|
+
App = Ember.Application.create();
|
1756
|
+
App.injectTestHelpers();
|
1757
|
+
boot();
|
1758
|
+
```
|
1453
1759
|
|
1454
|
-
@class Test
|
1455
|
-
@namespace Ember
|
1456
1760
|
@public
|
1761
|
+
@for Ember.Test
|
1762
|
+
@method registerHelper
|
1763
|
+
@param {String} name The name of the helper method to add.
|
1764
|
+
@param {Function} helperMethod
|
1765
|
+
@param options {Object}
|
1457
1766
|
*/
|
1458
|
-
var Test = {
|
1459
|
-
/**
|
1460
|
-
Hash containing all known test helpers.
|
1461
|
-
@property _helpers
|
1462
|
-
@private
|
1463
|
-
@since 1.7.0
|
1464
|
-
*/
|
1465
|
-
_helpers: helpers,
|
1466
1767
|
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
```javascript
|
1474
|
-
Ember.Test.registerHelper('boot', function(app) {
|
1475
|
-
Ember.run(app, app.advanceReadiness);
|
1476
|
-
});
|
1477
|
-
```
|
1478
|
-
This helper can later be called without arguments because it will be
|
1479
|
-
called with `app` as the first parameter.
|
1480
|
-
```javascript
|
1481
|
-
App = Ember.Application.create();
|
1482
|
-
App.injectTestHelpers();
|
1483
|
-
boot();
|
1484
|
-
```
|
1485
|
-
@public
|
1486
|
-
@method registerHelper
|
1487
|
-
@param {String} name The name of the helper method to add.
|
1488
|
-
@param {Function} helperMethod
|
1489
|
-
@param options {Object}
|
1490
|
-
*/
|
1491
|
-
registerHelper: function (name, helperMethod) {
|
1492
|
-
helpers[name] = {
|
1493
|
-
method: helperMethod,
|
1494
|
-
meta: { wait: false }
|
1495
|
-
};
|
1496
|
-
},
|
1768
|
+
function registerHelper(name, helperMethod) {
|
1769
|
+
helpers[name] = {
|
1770
|
+
method: helperMethod,
|
1771
|
+
meta: { wait: false }
|
1772
|
+
};
|
1773
|
+
}
|
1497
1774
|
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1534
|
-
|
1775
|
+
/**
|
1776
|
+
`registerAsyncHelper` is used to register an async test helper that will be injected
|
1777
|
+
when `App.injectTestHelpers` is called.
|
1778
|
+
|
1779
|
+
The helper method will always be called with the current Application as
|
1780
|
+
the first parameter.
|
1781
|
+
|
1782
|
+
For example:
|
1783
|
+
|
1784
|
+
```javascript
|
1785
|
+
Ember.Test.registerAsyncHelper('boot', function(app) {
|
1786
|
+
Ember.run(app, app.advanceReadiness);
|
1787
|
+
});
|
1788
|
+
```
|
1789
|
+
|
1790
|
+
The advantage of an async helper is that it will not run
|
1791
|
+
until the last async helper has completed. All async helpers
|
1792
|
+
after it will wait for it complete before running.
|
1793
|
+
|
1794
|
+
|
1795
|
+
For example:
|
1796
|
+
|
1797
|
+
```javascript
|
1798
|
+
Ember.Test.registerAsyncHelper('deletePost', function(app, postId) {
|
1799
|
+
click('.delete-' + postId);
|
1800
|
+
});
|
1801
|
+
|
1802
|
+
// ... in your test
|
1803
|
+
visit('/post/2');
|
1804
|
+
deletePost(2);
|
1805
|
+
visit('/post/3');
|
1806
|
+
deletePost(3);
|
1807
|
+
```
|
1808
|
+
|
1809
|
+
@public
|
1810
|
+
@for Ember.Test
|
1811
|
+
@method registerAsyncHelper
|
1812
|
+
@param {String} name The name of the helper method to add.
|
1813
|
+
@param {Function} helperMethod
|
1814
|
+
@since 1.2.0
|
1815
|
+
*/
|
1535
1816
|
|
1536
|
-
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
@public
|
1543
|
-
@method unregisterHelper
|
1544
|
-
@param {String} name The helper to remove.
|
1545
|
-
*/
|
1546
|
-
unregisterHelper: function (name) {
|
1547
|
-
delete helpers[name];
|
1548
|
-
delete Test.Promise.prototype[name];
|
1549
|
-
},
|
1817
|
+
function registerAsyncHelper(name, helperMethod) {
|
1818
|
+
helpers[name] = {
|
1819
|
+
method: helperMethod,
|
1820
|
+
meta: { wait: true }
|
1821
|
+
};
|
1822
|
+
}
|
1550
1823
|
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
});
|
1565
|
-
```
|
1566
|
-
@public
|
1567
|
-
@method onInjectHelpers
|
1568
|
-
@param {Function} callback The function to be called.
|
1569
|
-
*/
|
1570
|
-
onInjectHelpers: function (callback) {
|
1571
|
-
injectHelpersCallbacks.push(callback);
|
1572
|
-
},
|
1824
|
+
/**
|
1825
|
+
Remove a previously added helper method.
|
1826
|
+
|
1827
|
+
Example:
|
1828
|
+
|
1829
|
+
```javascript
|
1830
|
+
Ember.Test.unregisterHelper('wait');
|
1831
|
+
```
|
1832
|
+
|
1833
|
+
@public
|
1834
|
+
@method unregisterHelper
|
1835
|
+
@param {String} name The helper to remove.
|
1836
|
+
*/
|
1573
1837
|
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
@param {Function} resolver The function used to resolve the promise.
|
1582
|
-
@param {String} label An optional string for identifying the promise.
|
1583
|
-
*/
|
1584
|
-
promise: function (resolver, label) {
|
1585
|
-
var fullLabel = 'Ember.Test.promise: ' + (label || '<Unknown Promise>');
|
1586
|
-
return new Test.Promise(resolver, fullLabel);
|
1587
|
-
},
|
1838
|
+
function unregisterHelper(name) {
|
1839
|
+
delete helpers[name];
|
1840
|
+
delete _emberTestingTestPromise.default.prototype[name];
|
1841
|
+
}
|
1842
|
+
});
|
1843
|
+
enifed("ember-testing/test/on_inject_helpers", ["exports"], function (exports) {
|
1844
|
+
"use strict";
|
1588
1845
|
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
You can manually set it before calling `App.setupForTesting()`.
|
1593
|
-
Example:
|
1594
|
-
```javascript
|
1595
|
-
Ember.Test.adapter = MyCustomAdapter.create()
|
1596
|
-
```
|
1597
|
-
If you do not set it, ember-testing will default to `Ember.Test.QUnitAdapter`.
|
1598
|
-
@public
|
1599
|
-
@property adapter
|
1600
|
-
@type {Class} The adapter to be used.
|
1601
|
-
@default Ember.Test.QUnitAdapter
|
1602
|
-
*/
|
1603
|
-
adapter: null,
|
1846
|
+
exports.onInjectHelpers = onInjectHelpers;
|
1847
|
+
exports.invokeInjectHelpersCallbacks = invokeInjectHelpersCallbacks;
|
1848
|
+
var callbacks = [];
|
1604
1849
|
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1850
|
+
exports.callbacks = callbacks;
|
1851
|
+
/**
|
1852
|
+
Used to register callbacks to be fired whenever `App.injectTestHelpers`
|
1853
|
+
is called.
|
1854
|
+
|
1855
|
+
The callback will receive the current application as an argument.
|
1856
|
+
|
1857
|
+
Example:
|
1858
|
+
|
1859
|
+
```javascript
|
1860
|
+
Ember.Test.onInjectHelpers(function() {
|
1861
|
+
Ember.$(document).ajaxSend(function() {
|
1862
|
+
Test.pendingRequests++;
|
1617
1863
|
});
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
The `context` argument allows you to optionally specify the `this`
|
1631
|
-
with which your callback will be invoked.
|
1632
|
-
For example:
|
1633
|
-
```javascript
|
1634
|
-
Ember.Test.registerWaiter(MyDB, MyDB.hasPendingTransactions);
|
1635
|
-
```
|
1636
|
-
@public
|
1637
|
-
@method registerWaiter
|
1638
|
-
@param {Object} context (optional)
|
1639
|
-
@param {Function} callback
|
1640
|
-
@since 1.2.0
|
1641
|
-
*/
|
1642
|
-
registerWaiter: function (context, callback) {
|
1643
|
-
if (arguments.length === 1) {
|
1644
|
-
callback = context;
|
1645
|
-
context = null;
|
1646
|
-
}
|
1647
|
-
if (!this.waiters) {
|
1648
|
-
this.waiters = _emberRuntimeSystemNative_array.A();
|
1649
|
-
}
|
1650
|
-
this.waiters.push([context, callback]);
|
1651
|
-
},
|
1652
|
-
/**
|
1653
|
-
`unregisterWaiter` is used to unregister a callback that was
|
1654
|
-
registered with `registerWaiter`.
|
1655
|
-
@public
|
1656
|
-
@method unregisterWaiter
|
1657
|
-
@param {Object} context (optional)
|
1658
|
-
@param {Function} callback
|
1659
|
-
@since 1.2.0
|
1660
|
-
*/
|
1661
|
-
unregisterWaiter: function (context, callback) {
|
1662
|
-
if (!this.waiters) {
|
1663
|
-
return;
|
1664
|
-
}
|
1665
|
-
if (arguments.length === 1) {
|
1666
|
-
callback = context;
|
1667
|
-
context = null;
|
1668
|
-
}
|
1669
|
-
this.waiters = _emberRuntimeSystemNative_array.A(this.waiters.filter(function (elt) {
|
1670
|
-
return !(elt[0] === context && elt[1] === callback);
|
1671
|
-
}));
|
1672
|
-
}
|
1673
|
-
};
|
1674
|
-
|
1675
|
-
function helper(app, name) {
|
1676
|
-
var fn = helpers[name].method;
|
1677
|
-
var meta = helpers[name].meta;
|
1864
|
+
|
1865
|
+
Ember.$(document).ajaxComplete(function() {
|
1866
|
+
Test.pendingRequests--;
|
1867
|
+
});
|
1868
|
+
});
|
1869
|
+
```
|
1870
|
+
|
1871
|
+
@public
|
1872
|
+
@for Ember.Test
|
1873
|
+
@method onInjectHelpers
|
1874
|
+
@param {Function} callback The function to be called.
|
1875
|
+
*/
|
1678
1876
|
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
}
|
1877
|
+
function onInjectHelpers(callback) {
|
1878
|
+
callbacks.push(callback);
|
1879
|
+
}
|
1683
1880
|
|
1684
|
-
|
1881
|
+
function invokeInjectHelpersCallbacks(app) {
|
1882
|
+
for (var i = 0; i < callbacks.length; i++) {
|
1883
|
+
callbacks[i](app);
|
1884
|
+
}
|
1885
|
+
}
|
1886
|
+
});
|
1887
|
+
enifed("ember-testing/test/pending_requests", ["exports"], function (exports) {
|
1888
|
+
"use strict";
|
1685
1889
|
|
1686
|
-
|
1890
|
+
exports.pendingRequests = pendingRequests;
|
1891
|
+
exports.clearPendingRequests = clearPendingRequests;
|
1892
|
+
exports.incrementPendingRequests = incrementPendingRequests;
|
1893
|
+
exports.decrementPendingRequests = decrementPendingRequests;
|
1894
|
+
var requests = [];
|
1687
1895
|
|
1688
|
-
|
1689
|
-
|
1690
|
-
|
1691
|
-
if (!meta.wait) {
|
1692
|
-
return fn.apply(app, args);
|
1693
|
-
}
|
1896
|
+
function pendingRequests() {
|
1897
|
+
return requests.length;
|
1898
|
+
}
|
1694
1899
|
|
1695
|
-
|
1696
|
-
|
1697
|
-
|
1900
|
+
function clearPendingRequests() {
|
1901
|
+
requests.length = 0;
|
1902
|
+
}
|
1698
1903
|
|
1699
|
-
|
1700
|
-
|
1701
|
-
// asynchronous here, because fn may not be invoked before we
|
1702
|
-
// return.
|
1703
|
-
Test.adapter.asyncStart();
|
1704
|
-
return lastPromise.then(function () {
|
1705
|
-
return fn.apply(app, args);
|
1706
|
-
}).finally(function () {
|
1707
|
-
Test.adapter.asyncEnd();
|
1708
|
-
});
|
1709
|
-
};
|
1904
|
+
function incrementPendingRequests(_, xhr) {
|
1905
|
+
requests.push(xhr);
|
1710
1906
|
}
|
1711
1907
|
|
1712
|
-
function
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1908
|
+
function decrementPendingRequests(_, xhr) {
|
1909
|
+
for (var i = 0; i < requests.length; i++) {
|
1910
|
+
if (xhr === requests[i]) {
|
1911
|
+
requests.splice(i, 1);
|
1912
|
+
break;
|
1913
|
+
}
|
1717
1914
|
}
|
1718
1915
|
}
|
1916
|
+
});
|
1917
|
+
enifed('ember-testing/test/promise', ['exports', 'ember-runtime/ext/rsvp', 'ember-testing/test/run'], function (exports, _emberRuntimeExtRsvp, _emberTestingTestRun) {
|
1918
|
+
'use strict';
|
1719
1919
|
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
are created once you call `injectTestHelpers` on your `Ember.Application`
|
1724
|
-
instance. The included helpers are also available on the `window` object by
|
1725
|
-
default, but can be used from this object on the individual application also.
|
1726
|
-
@property testHelpers
|
1727
|
-
@type {Object}
|
1728
|
-
@default {}
|
1729
|
-
@public
|
1730
|
-
*/
|
1731
|
-
testHelpers: {},
|
1920
|
+
exports.promise = promise;
|
1921
|
+
exports.resolve = resolve;
|
1922
|
+
exports.getLastPromise = getLastPromise;
|
1732
1923
|
|
1733
|
-
|
1734
|
-
This property will contain the original methods that were registered
|
1735
|
-
on the `helperContainer` before `injectTestHelpers` is called.
|
1736
|
-
When `removeTestHelpers` is called, these methods are restored to the
|
1737
|
-
`helperContainer`.
|
1738
|
-
@property originalMethods
|
1739
|
-
@type {Object}
|
1740
|
-
@default {}
|
1741
|
-
@private
|
1742
|
-
@since 1.3.0
|
1743
|
-
*/
|
1744
|
-
originalMethods: {},
|
1924
|
+
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
|
1745
1925
|
|
1746
|
-
|
1747
|
-
This property indicates whether or not this application is currently in
|
1748
|
-
testing mode. This is set when `setupForTesting` is called on the current
|
1749
|
-
application.
|
1750
|
-
@property testing
|
1751
|
-
@type {Boolean}
|
1752
|
-
@default false
|
1753
|
-
@since 1.3.0
|
1754
|
-
@public
|
1755
|
-
*/
|
1756
|
-
testing: false,
|
1926
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
1757
1927
|
|
1758
|
-
|
1759
|
-
This hook defers the readiness of the application, so that you can start
|
1760
|
-
the app when your tests are ready to run. It also sets the router's
|
1761
|
-
location to 'none', so that the window's location will not be modified
|
1762
|
-
(preventing both accidental leaking of state between tests and interference
|
1763
|
-
with your testing framework).
|
1764
|
-
Example:
|
1765
|
-
```
|
1766
|
-
App.setupForTesting();
|
1767
|
-
```
|
1768
|
-
@method setupForTesting
|
1769
|
-
@public
|
1770
|
-
*/
|
1771
|
-
setupForTesting: function () {
|
1772
|
-
_emberTestingSetup_for_testing.default();
|
1928
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
|
1773
1929
|
|
1774
|
-
|
1930
|
+
var lastPromise = undefined;
|
1775
1931
|
|
1776
|
-
|
1777
|
-
|
1778
|
-
});
|
1779
|
-
},
|
1932
|
+
var TestPromise = (function (_RSVP$Promise) {
|
1933
|
+
_inherits(TestPromise, _RSVP$Promise);
|
1780
1934
|
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
@since 1.2.0
|
1788
|
-
@private
|
1789
|
-
*/
|
1790
|
-
helperContainer: null,
|
1935
|
+
function TestPromise() {
|
1936
|
+
_classCallCheck(this, TestPromise);
|
1937
|
+
|
1938
|
+
_RSVP$Promise.apply(this, arguments);
|
1939
|
+
lastPromise = this;
|
1940
|
+
}
|
1791
1941
|
|
1792
1942
|
/**
|
1793
|
-
This
|
1794
|
-
|
1795
|
-
|
1796
|
-
|
1797
|
-
`
|
1798
|
-
|
1799
|
-
helpers have been injected.
|
1800
|
-
Example:
|
1801
|
-
```
|
1802
|
-
App.injectTestHelpers();
|
1803
|
-
```
|
1804
|
-
@method injectTestHelpers
|
1943
|
+
This returns a thenable tailored for testing. It catches failed
|
1944
|
+
`onSuccess` callbacks and invokes the `Ember.Test.adapter.exception`
|
1945
|
+
callback in the last chained then.
|
1946
|
+
|
1947
|
+
This method should be returned by async helpers such as `wait`.
|
1948
|
+
|
1805
1949
|
@public
|
1950
|
+
@for Ember.Test
|
1951
|
+
@method promise
|
1952
|
+
@param {Function} resolver The function used to resolve the promise.
|
1953
|
+
@param {String} label An optional string for identifying the promise.
|
1806
1954
|
*/
|
1807
|
-
injectTestHelpers: function (helperContainer) {
|
1808
|
-
if (helperContainer) {
|
1809
|
-
this.helperContainer = helperContainer;
|
1810
|
-
} else {
|
1811
|
-
this.helperContainer = window;
|
1812
|
-
}
|
1813
1955
|
|
1814
|
-
|
1815
|
-
|
1816
|
-
|
1817
|
-
this.removeTestHelpers();
|
1818
|
-
}
|
1956
|
+
TestPromise.resolve = function resolve(val) {
|
1957
|
+
return new TestPromise(function (resolve) {
|
1958
|
+
return resolve(val);
|
1819
1959
|
});
|
1960
|
+
};
|
1820
1961
|
|
1821
|
-
|
1822
|
-
|
1823
|
-
this.originalMethods[name] = this.helperContainer[name];
|
1824
|
-
this.testHelpers[name] = this.helperContainer[name] = helper(this, name);
|
1825
|
-
protoWrap(Test.Promise.prototype, name, helper(this, name), helpers[name].meta.wait);
|
1826
|
-
}
|
1962
|
+
TestPromise.prototype.then = function then(onFulfillment) {
|
1963
|
+
var _RSVP$Promise$prototype$then;
|
1827
1964
|
|
1828
|
-
for (var
|
1829
|
-
|
1965
|
+
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
1966
|
+
args[_key - 1] = arguments[_key];
|
1830
1967
|
}
|
1831
|
-
},
|
1832
1968
|
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
```javascript
|
1838
|
-
App.removeTestHelpers();
|
1839
|
-
```
|
1840
|
-
@public
|
1841
|
-
@method removeTestHelpers
|
1842
|
-
*/
|
1843
|
-
removeTestHelpers: function () {
|
1844
|
-
if (!this.helperContainer) {
|
1845
|
-
return;
|
1846
|
-
}
|
1969
|
+
return (_RSVP$Promise$prototype$then = _RSVP$Promise.prototype.then).call.apply(_RSVP$Promise$prototype$then, [this, function (result) {
|
1970
|
+
return isolate(onFulfillment, result);
|
1971
|
+
}].concat(args));
|
1972
|
+
};
|
1847
1973
|
|
1848
|
-
|
1849
|
-
|
1850
|
-
delete Test.Promise.prototype[name];
|
1851
|
-
delete this.testHelpers[name];
|
1852
|
-
delete this.originalMethods[name];
|
1853
|
-
}
|
1854
|
-
}
|
1855
|
-
});
|
1974
|
+
return TestPromise;
|
1975
|
+
})(_emberRuntimeExtRsvp.default.Promise);
|
1856
1976
|
|
1857
|
-
|
1858
|
-
// But still here for backwards compatibility
|
1859
|
-
// of helper chaining
|
1860
|
-
function protoWrap(proto, name, callback, isAsync) {
|
1861
|
-
proto[name] = function () {
|
1862
|
-
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
1863
|
-
args[_key2] = arguments[_key2];
|
1864
|
-
}
|
1977
|
+
exports.default = TestPromise;
|
1865
1978
|
|
1866
|
-
|
1867
|
-
|
1868
|
-
|
1869
|
-
return this.then(function () {
|
1870
|
-
return callback.apply(this, args);
|
1871
|
-
});
|
1872
|
-
}
|
1873
|
-
};
|
1979
|
+
function promise(resolver, label) {
|
1980
|
+
var fullLabel = 'Ember.Test.promise: ' + (label || '<Unknown Promise>');
|
1981
|
+
return new TestPromise(resolver, fullLabel);
|
1874
1982
|
}
|
1875
1983
|
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
1879
|
-
|
1984
|
+
/**
|
1985
|
+
Replacement for `Ember.RSVP.resolve`
|
1986
|
+
The only difference is this uses
|
1987
|
+
an instance of `Ember.Test.Promise`
|
1988
|
+
|
1989
|
+
@public
|
1990
|
+
@for Ember.Test
|
1991
|
+
@method resolve
|
1992
|
+
@param {Mixed} The value to resolve
|
1993
|
+
@since 1.2.0
|
1994
|
+
*/
|
1880
1995
|
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1889
|
-
|
1890
|
-
return isolate(onSuccess, val);
|
1891
|
-
}, onFailure);
|
1892
|
-
};
|
1996
|
+
function resolve(result) {
|
1997
|
+
return new TestPromise(function (resolve) {
|
1998
|
+
return resolve(result);
|
1999
|
+
});
|
2000
|
+
}
|
2001
|
+
|
2002
|
+
function getLastPromise() {
|
2003
|
+
return lastPromise;
|
2004
|
+
}
|
1893
2005
|
|
1894
2006
|
// This method isolates nested async methods
|
1895
2007
|
// so that they don't conflict with other last promises.
|
@@ -1897,30 +2009,206 @@ enifed('ember-testing/test', ['exports', 'ember-metal/run_loop', 'ember-runtime/
|
|
1897
2009
|
// 1. Set `Ember.Test.lastPromise` to null
|
1898
2010
|
// 2. Invoke method
|
1899
2011
|
// 3. Return the last promise created during method
|
1900
|
-
function isolate(
|
1901
|
-
var value, lastPromise;
|
1902
|
-
|
2012
|
+
function isolate(onFulfillment, result) {
|
1903
2013
|
// Reset lastPromise for nested helpers
|
1904
|
-
|
2014
|
+
lastPromise = null;
|
1905
2015
|
|
1906
|
-
value =
|
2016
|
+
var value = onFulfillment(result);
|
1907
2017
|
|
1908
|
-
|
1909
|
-
|
2018
|
+
var promise = lastPromise;
|
2019
|
+
lastPromise = null;
|
1910
2020
|
|
1911
2021
|
// If the method returned a promise
|
1912
2022
|
// return that promise. If not,
|
1913
2023
|
// return the last async helper's promise
|
1914
|
-
if (value && value instanceof
|
2024
|
+
if (value && value instanceof TestPromise || !promise) {
|
1915
2025
|
return value;
|
1916
2026
|
} else {
|
1917
|
-
return
|
1918
|
-
return
|
2027
|
+
return _emberTestingTestRun.default(function () {
|
2028
|
+
return resolve(promise).then(function () {
|
1919
2029
|
return value;
|
1920
2030
|
});
|
1921
2031
|
});
|
1922
2032
|
}
|
1923
2033
|
}
|
2034
|
+
});
|
2035
|
+
enifed('ember-testing/test/run', ['exports', 'ember-metal/run_loop'], function (exports, _emberMetalRun_loop) {
|
2036
|
+
'use strict';
|
2037
|
+
|
2038
|
+
exports.default = run;
|
2039
|
+
|
2040
|
+
function run(fn) {
|
2041
|
+
if (!_emberMetalRun_loop.default.currentRunLoop) {
|
2042
|
+
return _emberMetalRun_loop.default(fn);
|
2043
|
+
} else {
|
2044
|
+
return fn();
|
2045
|
+
}
|
2046
|
+
}
|
2047
|
+
});
|
2048
|
+
enifed("ember-testing/test/waiters", ["exports"], function (exports) {
|
2049
|
+
"use strict";
|
2050
|
+
|
2051
|
+
exports.registerWaiter = registerWaiter;
|
2052
|
+
exports.unregisterWaiter = unregisterWaiter;
|
2053
|
+
exports.checkWaiters = checkWaiters;
|
2054
|
+
var contexts = [];
|
2055
|
+
var callbacks = [];
|
2056
|
+
|
2057
|
+
/**
|
2058
|
+
This allows ember-testing to play nicely with other asynchronous
|
2059
|
+
events, such as an application that is waiting for a CSS3
|
2060
|
+
transition or an IndexDB transaction.
|
2061
|
+
|
2062
|
+
For example:
|
2063
|
+
|
2064
|
+
```javascript
|
2065
|
+
Ember.Test.registerWaiter(function() {
|
2066
|
+
return myPendingTransactions() == 0;
|
2067
|
+
});
|
2068
|
+
```
|
2069
|
+
The `context` argument allows you to optionally specify the `this`
|
2070
|
+
with which your callback will be invoked.
|
2071
|
+
|
2072
|
+
For example:
|
2073
|
+
|
2074
|
+
```javascript
|
2075
|
+
Ember.Test.registerWaiter(MyDB, MyDB.hasPendingTransactions);
|
2076
|
+
```
|
2077
|
+
|
2078
|
+
@public
|
2079
|
+
@for Ember.Test
|
2080
|
+
@method registerWaiter
|
2081
|
+
@param {Object} context (optional)
|
2082
|
+
@param {Function} callback
|
2083
|
+
@since 1.2.0
|
2084
|
+
*/
|
2085
|
+
|
2086
|
+
function registerWaiter(context, callback) {
|
2087
|
+
if (arguments.length === 1) {
|
2088
|
+
callback = context;
|
2089
|
+
context = null;
|
2090
|
+
}
|
2091
|
+
if (indexOf(context, callback) > -1) {
|
2092
|
+
return;
|
2093
|
+
}
|
2094
|
+
contexts.push(context);
|
2095
|
+
callbacks.push(callback);
|
2096
|
+
}
|
2097
|
+
|
2098
|
+
/**
|
2099
|
+
`unregisterWaiter` is used to unregister a callback that was
|
2100
|
+
registered with `registerWaiter`.
|
2101
|
+
|
2102
|
+
@public
|
2103
|
+
@for Ember.Test
|
2104
|
+
@method unregisterWaiter
|
2105
|
+
@param {Object} context (optional)
|
2106
|
+
@param {Function} callback
|
2107
|
+
@since 1.2.0
|
2108
|
+
*/
|
2109
|
+
|
2110
|
+
function unregisterWaiter(context, callback) {
|
2111
|
+
if (!callbacks.length) {
|
2112
|
+
return;
|
2113
|
+
}
|
2114
|
+
if (arguments.length === 1) {
|
2115
|
+
callback = context;
|
2116
|
+
context = null;
|
2117
|
+
}
|
2118
|
+
var i = indexOf(context, callback);
|
2119
|
+
if (i === -1) {
|
2120
|
+
return;
|
2121
|
+
}
|
2122
|
+
contexts.splice(i, 1);
|
2123
|
+
callbacks.splice(i, 1);
|
2124
|
+
}
|
2125
|
+
|
2126
|
+
function checkWaiters() {
|
2127
|
+
if (!callbacks.length) {
|
2128
|
+
return false;
|
2129
|
+
}
|
2130
|
+
for (var i = 0; i < callbacks.length; i++) {
|
2131
|
+
var context = contexts[i];
|
2132
|
+
var callback = callbacks[i];
|
2133
|
+
if (!callback.call(context)) {
|
2134
|
+
return true;
|
2135
|
+
}
|
2136
|
+
}
|
2137
|
+
return false;
|
2138
|
+
}
|
2139
|
+
|
2140
|
+
function indexOf(context, callback) {
|
2141
|
+
for (var i = 0; i < callbacks.length; i++) {
|
2142
|
+
if (callbacks[i] === callback && contexts[i] === context) {
|
2143
|
+
return i;
|
2144
|
+
}
|
2145
|
+
}
|
2146
|
+
return -1;
|
2147
|
+
}
|
2148
|
+
});
|
2149
|
+
enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter) {
|
2150
|
+
/**
|
2151
|
+
@module ember
|
2152
|
+
@submodule ember-testing
|
2153
|
+
*/
|
2154
|
+
'use strict';
|
2155
|
+
|
2156
|
+
/**
|
2157
|
+
This is a container for an assortment of testing related functionality:
|
2158
|
+
|
2159
|
+
* Choose your default test adapter (for your framework of choice).
|
2160
|
+
* Register/Unregister additional test helpers.
|
2161
|
+
* Setup callbacks to be fired when the test helpers are injected into
|
2162
|
+
your application.
|
2163
|
+
|
2164
|
+
@class Test
|
2165
|
+
@namespace Ember
|
2166
|
+
@public
|
2167
|
+
*/
|
2168
|
+
var Test = {
|
2169
|
+
/**
|
2170
|
+
Hash containing all known test helpers.
|
2171
|
+
@property _helpers
|
2172
|
+
@private
|
2173
|
+
@since 1.7.0
|
2174
|
+
*/
|
2175
|
+
_helpers: _emberTestingTestHelpers.helpers,
|
2176
|
+
|
2177
|
+
registerHelper: _emberTestingTestHelpers.registerHelper,
|
2178
|
+
registerAsyncHelper: _emberTestingTestHelpers.registerAsyncHelper,
|
2179
|
+
unregisterHelper: _emberTestingTestHelpers.unregisterHelper,
|
2180
|
+
onInjectHelpers: _emberTestingTestOn_inject_helpers.onInjectHelpers,
|
2181
|
+
Promise: _emberTestingTestPromise.default,
|
2182
|
+
promise: _emberTestingTestPromise.promise,
|
2183
|
+
resolve: _emberTestingTestPromise.resolve,
|
2184
|
+
registerWaiter: _emberTestingTestWaiters.registerWaiter,
|
2185
|
+
unregisterWaiter: _emberTestingTestWaiters.unregisterWaiter
|
2186
|
+
};
|
2187
|
+
|
2188
|
+
/**
|
2189
|
+
Used to allow ember-testing to communicate with a specific testing
|
2190
|
+
framework.
|
2191
|
+
|
2192
|
+
You can manually set it before calling `App.setupForTesting()`.
|
2193
|
+
|
2194
|
+
Example:
|
2195
|
+
|
2196
|
+
```javascript
|
2197
|
+
Ember.Test.adapter = MyCustomAdapter.create()
|
2198
|
+
```
|
2199
|
+
|
2200
|
+
If you do not set it, ember-testing will default to `Ember.Test.QUnitAdapter`.
|
2201
|
+
|
2202
|
+
@public
|
2203
|
+
@for Ember.Test
|
2204
|
+
@property adapter
|
2205
|
+
@type {Class} The adapter to be used.
|
2206
|
+
@default Ember.Test.QUnitAdapter
|
2207
|
+
*/
|
2208
|
+
Object.defineProperty(Test, 'adapter', {
|
2209
|
+
get: _emberTestingTestAdapter.getAdapter,
|
2210
|
+
set: _emberTestingTestAdapter.setAdapter
|
2211
|
+
});
|
1924
2212
|
|
1925
2213
|
exports.default = Test;
|
1926
2214
|
});
|