ember-source 2.16.0 → 2.16.1

Sign up to get free protection for your applications and to get access to all the features.
data/dist/ember-tests.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.16.0
9
+ * @version 2.16.1
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -12973,7 +12973,7 @@ enifed('ember-glimmer/tests/integration/components/contextual-components-test',
12973
12973
 
12974
12974
  expectAssertion(function () {
12975
12975
  _this36.render('{{component (component "input" type="text")}}');
12976
- }, 'You cannot use the input helper as a contextual helper. Please extend Ember.TextField or Ember.Checkbox to use it as a contextual component.');
12976
+ }, 'You cannot use the input helper as a contextual helper. Please extend TextField or Checkbox to use it as a contextual component.');
12977
12977
  };
12978
12978
 
12979
12979
  _class.prototype['@test GH#14632 give useful warning when calling contextual components with textarea as a name'] = function testGH14632GiveUsefulWarningWhenCallingContextualComponentsWithTextareaAsAName() {
@@ -12981,7 +12981,7 @@ enifed('ember-glimmer/tests/integration/components/contextual-components-test',
12981
12981
 
12982
12982
  expectAssertion(function () {
12983
12983
  _this37.render('{{component (component "textarea" type="text")}}');
12984
- }, 'You cannot use the textarea helper as a contextual helper. Please extend Ember.TextArea to use it as a contextual component.');
12984
+ }, 'You cannot use the textarea helper as a contextual helper. Please extend TextArea to use it as a contextual component.');
12985
12985
  };
12986
12986
 
12987
12987
  return _class;
@@ -15672,7 +15672,7 @@ enifed('ember-glimmer/tests/integration/components/curly-components-test', ['emb
15672
15672
  if (_features.MANDATORY_SETTER) {
15673
15673
  expectAssertion(function () {
15674
15674
  component.bar = 'foo-bar';
15675
- }, /You must use Ember\.set\(\) to set the `bar` property \(of .+\) to `foo-bar`\./);
15675
+ }, /You must use set\(\) to set the `bar` property \(of .+\) to `foo-bar`\./);
15676
15676
 
15677
15677
  this.assertText('initial value - initial value');
15678
15678
  }
@@ -29984,7 +29984,9 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
29984
29984
  'use strict';
29985
29985
 
29986
29986
  var _templateObject = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
29987
- _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']);
29987
+ _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
29988
+ _templateObject3 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
29989
+ _templateObject4 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
29988
29990
 
29989
29991
  (0, _testCase.moduleFor)('Helpers test: {{partial}}', function (_RenderingTest) {
29990
29992
  (0, _emberBabel.inherits)(_class, _RenderingTest);
@@ -30135,6 +30137,38 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30135
30137
  this.assertText('Nothing!');
30136
30138
  };
30137
30139
 
30140
+ _class.prototype['@test partials which contain contextual components'] = function testPartialsWhichContainContextualComponents() {
30141
+ var _this6 = this;
30142
+
30143
+ this.registerComponent('outer-component', {
30144
+ template: '{{yield (hash inner=(component "inner-component" name=name))}}'
30145
+ });
30146
+
30147
+ this.registerComponent('inner-component', {
30148
+ template: '{{yield (hash name=name)}}'
30149
+ });
30150
+
30151
+ this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject3));
30152
+
30153
+ this.render((0, _abstractTestCase.strip)(_templateObject4), { name: 'Sophie' });
30154
+
30155
+ this.assertStableRerender();
30156
+
30157
+ this.assertText('inner.name: Sophie');
30158
+
30159
+ this.runTask(function () {
30160
+ return (0, _emberMetal.set)(_this6.context, 'name', 'Ben');
30161
+ });
30162
+
30163
+ this.assertText('inner.name: Ben');
30164
+
30165
+ this.runTask(function () {
30166
+ return (0, _emberMetal.set)(_this6.context, 'name', 'Sophie');
30167
+ });
30168
+
30169
+ this.assertText('inner.name: Sophie');
30170
+ };
30171
+
30138
30172
  return _class;
30139
30173
  }(_testCase.RenderingTest));
30140
30174
  });
@@ -38447,7 +38481,7 @@ enifed('ember-metal/tests/accessors/mandatory_setters_test', ['ember/features',
38447
38481
  obj.someProp = 'foo-bar';
38448
38482
  });
38449
38483
 
38450
- QUnit.test('should assert if set without Ember.set when property is being watched', function () {
38484
+ QUnit.test('should assert if set without set when property is being watched', function () {
38451
38485
  var obj = {
38452
38486
  someProp: null,
38453
38487
  toString: function () {
@@ -38459,10 +38493,10 @@ enifed('ember-metal/tests/accessors/mandatory_setters_test', ['ember/features',
38459
38493
 
38460
38494
  expectAssertion(function () {
38461
38495
  obj.someProp = 'foo-bar';
38462
- }, 'You must use Ember.set() to set the `someProp` property (of custom-object) to `foo-bar`.');
38496
+ }, 'You must use set() to set the `someProp` property (of custom-object) to `foo-bar`.');
38463
38497
  });
38464
38498
 
38465
- QUnit.test('should not assert if set with Ember.set when property is being watched', function () {
38499
+ QUnit.test('should not assert if set with set when property is being watched', function () {
38466
38500
  var obj = {
38467
38501
  someProp: null,
38468
38502
  toString: function () {
@@ -38615,7 +38649,7 @@ enifed('ember-metal/tests/accessors/mandatory_setters_test', ['ember/features',
38615
38649
 
38616
38650
  expectAssertion(function () {
38617
38651
  obj2.someProp = 'foo-bar';
38618
- }, 'You must use Ember.set() to set the `someProp` property (of custom-object) to `foo-bar`.');
38652
+ }, 'You must use set() to set the `someProp` property (of custom-object) to `foo-bar`.');
38619
38653
  });
38620
38654
 
38621
38655
  QUnit.test('inheritance remains live', function () {
@@ -39546,7 +39580,7 @@ enifed('ember-metal/tests/computed_test', ['ember-runtime', 'internal-test-helpe
39546
39580
  QUnit.test('computed properties check for the presence of a function or configuration object', function () {
39547
39581
  expectAssertion(function () {
39548
39582
  (0, _emberMetal.computed)('nolastargument');
39549
- }, 'Ember.computed expects a function or an object as last argument.');
39583
+ }, 'computed expects a function or an object as last argument.');
39550
39584
  });
39551
39585
 
39552
39586
  QUnit.test('computed properties defined with an object only allow `get` and `set` keys', function () {
@@ -39556,7 +39590,7 @@ enifed('ember-metal/tests/computed_test', ['ember-runtime', 'internal-test-helpe
39556
39590
  set: function () {},
39557
39591
  other: function () {}
39558
39592
  });
39559
- }, 'Config object passed to an Ember.computed can only contain `get` or `set` keys.');
39593
+ }, 'Config object passed to computed can only contain `get` or `set` keys.');
39560
39594
  });
39561
39595
 
39562
39596
  QUnit.test('defining computed property should invoke property on get', function () {
@@ -41063,13 +41097,13 @@ enifed('ember-metal/tests/events_test', ['ember-metal'], function (_emberMetal)
41063
41097
  _emberMetal.Mixin.create({
41064
41098
  foo1: (0, _emberMetal.on)('bar')
41065
41099
  });
41066
- }, 'Ember.on expects function as last argument');
41100
+ }, 'on expects function as last argument');
41067
41101
 
41068
41102
  expectAssertion(function () {
41069
41103
  _emberMetal.Mixin.create({
41070
41104
  foo1: (0, _emberMetal.on)(function () {})
41071
41105
  });
41072
- }, 'Ember.on called without valid event names');
41106
+ }, 'on called without valid event names');
41073
41107
  });
41074
41108
 
41075
41109
  QUnit.test('a listener added as part of a mixin may be overridden', function () {
@@ -43634,7 +43668,7 @@ enifed('ember-metal/tests/mixin/observer_test', ['internal-test-helpers', 'ember
43634
43668
  });
43635
43669
 
43636
43670
  (0, _internalTestHelpers.testBoth)('providing the arguments in reverse order is deprecated', function (get, set) {
43637
- expectDeprecation(/Passing the dependentKeys after the callback function in Ember\.observer is deprecated. Ensure the callback function is the last argument/);
43671
+ expectDeprecation(/Passing the dependentKeys after the callback function in observer is deprecated. Ensure the callback function is the last argument/);
43638
43672
 
43639
43673
  _emberMetal.Mixin.create({
43640
43674
  count: 0,
@@ -43801,13 +43835,13 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
43801
43835
  (0, _internalTestHelpers.testBoth)('observer should assert to invalid input', function (get, set) {
43802
43836
  expectAssertion(function () {
43803
43837
  (0, _emberMetal.observer)(function () {});
43804
- }, 'Ember.observer called without valid path');
43838
+ }, 'observer called without valid path');
43805
43839
 
43806
- expectDeprecation('Passing the dependentKeys after the callback function in Ember.observer is deprecated. Ensure the callback function is the last argument.');
43840
+ expectDeprecation('Passing the dependentKeys after the callback function in observer is deprecated. Ensure the callback function is the last argument.');
43807
43841
 
43808
43842
  expectAssertion(function () {
43809
43843
  (0, _emberMetal.observer)(null);
43810
- }, 'Ember.observer called without a function');
43844
+ }, 'observer called without a function');
43811
43845
  });
43812
43846
 
43813
43847
  (0, _internalTestHelpers.testBoth)('observer should fire when property is modified', function (get, set) {
@@ -44794,7 +44828,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
44794
44828
  QUnit.module('Ember.immediateObserver (Deprecated)');
44795
44829
 
44796
44830
  (0, _internalTestHelpers.testBoth)('immediate observers should fire synchronously', function (get, set) {
44797
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
44831
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
44798
44832
  var obj = {};
44799
44833
  var observerCalled = 0;
44800
44834
  var mixin = void 0;
@@ -44869,7 +44903,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
44869
44903
  }
44870
44904
 
44871
44905
  (0, _internalTestHelpers.testBoth)('immediate observers watching multiple properties via brace expansion fire synchronously', function (get, set) {
44872
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
44906
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
44873
44907
  var obj = {};
44874
44908
  var observerCalled = 0;
44875
44909
  var mixin = void 0;
@@ -44905,7 +44939,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
44905
44939
  });
44906
44940
 
44907
44941
  (0, _internalTestHelpers.testBoth)('immediate observers are for internal properties only', function (get, set) {
44908
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
44942
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
44909
44943
  expectAssertion(function () {
44910
44944
  (0, _emberMetal._immediateObserver)('foo.bar', function () {
44911
44945
  return this;
@@ -50753,6 +50787,13 @@ enifed('ember-runtime/tests/computed/reduce_computed_macros_test', ['ember-metal
50753
50787
  deepEqual(obj.get('sortedItems').mapBy('fname'), ['Robb', 'Jaime', 'Cersei'], 'after changing removed item array is not updated');
50754
50788
  });
50755
50789
 
50790
+ QUnit.test('sort works if array property is null (non array value) on first evaluation of computed prop', function () {
50791
+ obj.set('items', null);
50792
+ deepEqual(obj.get('sortedItems'), []);
50793
+ obj.set('items', (0, _native_array.A)([{ fname: 'Cersei', lname: 'Lanister' }]));
50794
+ deepEqual(obj.get('sortedItems'), [{ fname: 'Cersei', lname: 'Lanister' }]);
50795
+ });
50796
+
50756
50797
  QUnit.test('updating sort properties updates the sorted array', function () {
50757
50798
  deepEqual(obj.get('sortedItems').mapBy('fname'), ['Cersei', 'Jaime', 'Bran', 'Robb'], 'precond - array is initially sorted');
50758
50799
 
@@ -75112,6 +75153,64 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75112
75153
  });
75113
75154
  };
75114
75155
 
75156
+ _class.prototype['@test Setting bound query param property to null or undefined does not serialize to url'] = function testSettingBoundQueryParamPropertyToNullOrUndefinedDoesNotSerializeToUrl(assert) {
75157
+ var _this36 = this;
75158
+
75159
+ assert.expect(9);
75160
+
75161
+ this.router.map(function () {
75162
+ this.route('home');
75163
+ });
75164
+
75165
+ this.setSingleQPController('home', 'foo', [1, 2]);
75166
+
75167
+ return this.visitAndAssert('/home').then(function () {
75168
+ var controller = _this36.getController('home');
75169
+
75170
+ assert.deepEqual(controller.get('foo'), [1, 2]);
75171
+ _this36.assertCurrentPath('/home');
75172
+
75173
+ _this36.setAndFlush(controller, 'foo', (0, _emberRuntime.A)([1, 3]));
75174
+ _this36.assertCurrentPath('/home?foo=%5B1%2C3%5D');
75175
+
75176
+ return _this36.transitionTo('/home').then(function () {
75177
+ assert.deepEqual(controller.get('foo'), [1, 2]);
75178
+ _this36.assertCurrentPath('/home');
75179
+
75180
+ _this36.setAndFlush(controller, 'foo', null);
75181
+ _this36.assertCurrentPath('/home', 'Setting property to null');
75182
+
75183
+ _this36.setAndFlush(controller, 'foo', (0, _emberRuntime.A)([1, 3]));
75184
+ _this36.assertCurrentPath('/home?foo=%5B1%2C3%5D');
75185
+
75186
+ _this36.setAndFlush(controller, 'foo', undefined);
75187
+ _this36.assertCurrentPath('/home', 'Setting property to undefined');
75188
+ });
75189
+ });
75190
+ };
75191
+
75192
+ _class.prototype['@test {{link-to}} with null or undefined QPs does not get serialized into url'] = function testLinkToWithNullOrUndefinedQPsDoesNotGetSerializedIntoUrl(assert) {
75193
+ var _this37 = this;
75194
+
75195
+ assert.expect(3);
75196
+
75197
+ this.addTemplate('home', '{{link-to \'Home\' \'home\' (query-params foo=nullValue) id=\'null-link\'}}{{link-to \'Home\' \'home\' (query-params foo=undefinedValue) id=\'undefined-link\'}}');
75198
+
75199
+ this.router.map(function () {
75200
+ this.route('home');
75201
+ });
75202
+
75203
+ this.setSingleQPController('home', 'foo', [], {
75204
+ nullValue: null,
75205
+ undefinedValue: undefined
75206
+ });
75207
+
75208
+ return this.visitAndAssert('/home').then(function () {
75209
+ assert.equal(_this37.$('#null-link').attr('href'), '/home');
75210
+ assert.equal(_this37.$('#undefined-link').attr('href'), '/home');
75211
+ });
75212
+ };
75213
+
75115
75214
  _class.prototype['@test A child of a resource route still defaults to parent route\'s model even if the child route has a query param'] = function testAChildOfAResourceRouteStillDefaultsToParentRouteSModelEvenIfTheChildRouteHasAQueryParam(assert) {
75116
75215
  assert.expect(2);
75117
75216
 
@@ -75135,7 +75234,7 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75135
75234
  };
75136
75235
 
75137
75236
  _class.prototype['@test opting into replace does not affect transitions between routes'] = function testOptingIntoReplaceDoesNotAffectTransitionsBetweenRoutes(assert) {
75138
- var _this36 = this;
75237
+ var _this38 = this;
75139
75238
 
75140
75239
  assert.expect(5);
75141
75240
 
@@ -75157,27 +75256,27 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75157
75256
  }));
75158
75257
 
75159
75258
  return this.visit('/').then(function () {
75160
- var controller = _this36.getController('bar');
75259
+ var controller = _this38.getController('bar');
75161
75260
 
75162
- _this36.expectedPushURL = '/foo';
75261
+ _this38.expectedPushURL = '/foo';
75163
75262
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#foo-link'), 'click');
75164
75263
 
75165
- _this36.expectedPushURL = '/bar';
75264
+ _this38.expectedPushURL = '/bar';
75166
75265
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#bar-no-qp-link'), 'click');
75167
75266
 
75168
- _this36.expectedReplaceURL = '/bar?raytiley=woot';
75169
- _this36.setAndFlush(controller, 'raytiley', 'woot');
75267
+ _this38.expectedReplaceURL = '/bar?raytiley=woot';
75268
+ _this38.setAndFlush(controller, 'raytiley', 'woot');
75170
75269
 
75171
- _this36.expectedPushURL = '/foo';
75270
+ _this38.expectedPushURL = '/foo';
75172
75271
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#foo-link'), 'click');
75173
75272
 
75174
- _this36.expectedPushURL = '/bar?raytiley=isthebest';
75273
+ _this38.expectedPushURL = '/bar?raytiley=isthebest';
75175
75274
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#bar-link'), 'click');
75176
75275
  });
75177
75276
  };
75178
75277
 
75179
75278
  _class.prototype['@test undefined isn\'t serialized or deserialized into a string'] = function testUndefinedIsnTSerializedOrDeserializedIntoAString(assert) {
75180
- var _this37 = this;
75279
+ var _this39 = this;
75181
75280
 
75182
75281
  assert.expect(4);
75183
75282
 
@@ -75198,10 +75297,10 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75198
75297
  }));
75199
75298
 
75200
75299
  return this.visitAndAssert('/').then(function () {
75201
- assert.equal(_this37.$('#the-link').attr('href'), '/example', 'renders without undefined qp serialized');
75300
+ assert.equal(_this39.$('#the-link').attr('href'), '/example', 'renders without undefined qp serialized');
75202
75301
 
75203
- return _this37.transitionTo('example', { queryParams: { foo: undefined } }).then(function () {
75204
- _this37.assertCurrentPath('/example');
75302
+ return _this39.transitionTo('example', { queryParams: { foo: undefined } }).then(function () {
75303
+ _this39.assertCurrentPath('/example');
75205
75304
  });
75206
75305
  });
75207
75306
  };
@@ -75219,7 +75318,7 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75219
75318
  };
75220
75319
 
75221
75320
  _class.prototype['@test warn user that Route\'s queryParams configuration must be an Object, not an Array'] = function testWarnUserThatRouteSQueryParamsConfigurationMustBeAnObjectNotAnArray(assert) {
75222
- var _this38 = this;
75321
+ var _this40 = this;
75223
75322
 
75224
75323
  assert.expect(1);
75225
75324
 
@@ -75228,12 +75327,12 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75228
75327
  }));
75229
75328
 
75230
75329
  expectAssertion(function () {
75231
- _this38.visit('/');
75330
+ _this40.visit('/');
75232
75331
  }, 'You passed in `[{"commitBy":{"replace":true}}]` as the value for `queryParams` but `queryParams` cannot be an Array');
75233
75332
  };
75234
75333
 
75235
75334
  _class.prototype['@test handle route names that clash with Object.prototype properties'] = function testHandleRouteNamesThatClashWithObjectPrototypeProperties(assert) {
75236
- var _this39 = this;
75335
+ var _this41 = this;
75237
75336
 
75238
75337
  assert.expect(1);
75239
75338
 
@@ -75250,8 +75349,8 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
75250
75349
  }));
75251
75350
 
75252
75351
  return this.visit('/').then(function () {
75253
- _this39.transitionTo('constructor', { queryParams: { foo: '999' } });
75254
- var controller = _this39.getController('constructor');
75352
+ _this41.transitionTo('constructor', { queryParams: { foo: '999' } });
75353
+ var controller = _this41.getController('constructor');
75255
75354
  assert.equal((0, _emberMetal.get)(controller, 'foo'), '999');
75256
75355
  });
75257
75356
  };
@@ -77546,11 +77645,32 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
77546
77645
  });
77547
77646
  };
77548
77647
 
77549
- _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key'] = function testRouterServiceTransitionToWithAliasedQueryParamsUsesTheOriginalProvidedKey(assert) {
77648
+ _class.prototype['@test RouterService#transitionTo with unspecified query params'] = function testRouterServiceTransitionToWithUnspecifiedQueryParams(assert) {
77550
77649
  var _this10 = this;
77551
77650
 
77552
77651
  assert.expect(1);
77553
77652
 
77653
+ this.add('controller:parent.child', _emberRuntime.Controller.extend({
77654
+ queryParams: ['sort', 'page', 'category', 'extra'],
77655
+ sort: 'ASC',
77656
+ page: null,
77657
+ category: undefined
77658
+ }));
77659
+
77660
+ var queryParams = this.buildQueryParams({ sort: 'ASC' });
77661
+
77662
+ return this.visit('/').then(function () {
77663
+ return _this10.routerService.transitionTo('parent.child', queryParams);
77664
+ }).then(function () {
77665
+ assert.equal(_this10.routerService.get('currentURL'), '/child?sort=ASC');
77666
+ });
77667
+ };
77668
+
77669
+ _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key'] = function testRouterServiceTransitionToWithAliasedQueryParamsUsesTheOriginalProvidedKey(assert) {
77670
+ var _this11 = this;
77671
+
77672
+ assert.expect(1);
77673
+
77554
77674
  this.add('controller:parent.child', _emberRuntime.Controller.extend({
77555
77675
  queryParams: {
77556
77676
  'cont_sort': 'url_sort'
@@ -77561,14 +77681,14 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
77561
77681
  var queryParams = this.buildQueryParams({ url_sort: 'ASC' });
77562
77682
 
77563
77683
  return this.visit('/').then(function () {
77564
- return _this10.routerService.transitionTo('parent.child', queryParams);
77684
+ return _this11.routerService.transitionTo('parent.child', queryParams);
77565
77685
  }).then(function () {
77566
- assert.equal(_this10.routerService.get('currentURL'), '/child?url_sort=ASC');
77686
+ assert.equal(_this11.routerService.get('currentURL'), '/child?url_sort=ASC');
77567
77687
  });
77568
77688
  };
77569
77689
 
77570
77690
  _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key when controller property name'] = function testRouterServiceTransitionToWithAliasedQueryParamsUsesTheOriginalProvidedKeyWhenControllerPropertyName(assert) {
77571
- var _this11 = this;
77691
+ var _this12 = this;
77572
77692
 
77573
77693
  assert.expect(1);
77574
77694
 
@@ -77583,7 +77703,7 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
77583
77703
 
77584
77704
  return this.visit('/').then(function () {
77585
77705
  expectAssertion(function () {
77586
- return _this11.routerService.transitionTo('parent.child', queryParams);
77706
+ return _this12.routerService.transitionTo('parent.child', queryParams);
77587
77707
  }, 'You passed the `cont_sort` query parameter during a transition into parent.child, please update to url_sort');
77588
77708
  });
77589
77709
  };
@@ -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.16.0
9
+ * @version 2.16.1
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -12061,7 +12061,7 @@ enifed('ember-glimmer/tests/integration/components/contextual-components-test',
12061
12061
 
12062
12062
  expectAssertion(function () {
12063
12063
  _this36.render('{{component (component "input" type="text")}}');
12064
- }, 'You cannot use the input helper as a contextual helper. Please extend Ember.TextField or Ember.Checkbox to use it as a contextual component.');
12064
+ }, 'You cannot use the input helper as a contextual helper. Please extend TextField or Checkbox to use it as a contextual component.');
12065
12065
  };
12066
12066
 
12067
12067
  _class.prototype['@test GH#14632 give useful warning when calling contextual components with textarea as a name'] = function () {
@@ -12069,7 +12069,7 @@ enifed('ember-glimmer/tests/integration/components/contextual-components-test',
12069
12069
 
12070
12070
  expectAssertion(function () {
12071
12071
  _this37.render('{{component (component "textarea" type="text")}}');
12072
- }, 'You cannot use the textarea helper as a contextual helper. Please extend Ember.TextArea to use it as a contextual component.');
12072
+ }, 'You cannot use the textarea helper as a contextual helper. Please extend TextArea to use it as a contextual component.');
12073
12073
  };
12074
12074
 
12075
12075
  return _class;
@@ -28259,7 +28259,9 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28259
28259
  'use strict';
28260
28260
 
28261
28261
  var _templateObject = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
28262
- _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']);
28262
+ _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
28263
+ _templateObject3 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
28264
+ _templateObject4 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
28263
28265
 
28264
28266
  (0, _testCase.moduleFor)('Helpers test: {{partial}}', function (_RenderingTest) {
28265
28267
  (0, _emberBabel.inherits)(_class, _RenderingTest);
@@ -28409,6 +28411,38 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28409
28411
  this.assertText('Nothing!');
28410
28412
  };
28411
28413
 
28414
+ _class.prototype['@test partials which contain contextual components'] = function () {
28415
+ var _this6 = this;
28416
+
28417
+ this.registerComponent('outer-component', {
28418
+ template: '{{yield (hash inner=(component "inner-component" name=name))}}'
28419
+ });
28420
+
28421
+ this.registerComponent('inner-component', {
28422
+ template: '{{yield (hash name=name)}}'
28423
+ });
28424
+
28425
+ this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject3));
28426
+
28427
+ this.render((0, _abstractTestCase.strip)(_templateObject4), { name: 'Sophie' });
28428
+
28429
+ this.assertStableRerender();
28430
+
28431
+ this.assertText('inner.name: Sophie');
28432
+
28433
+ this.runTask(function () {
28434
+ return (0, _emberMetal.set)(_this6.context, 'name', 'Ben');
28435
+ });
28436
+
28437
+ this.assertText('inner.name: Ben');
28438
+
28439
+ this.runTask(function () {
28440
+ return (0, _emberMetal.set)(_this6.context, 'name', 'Sophie');
28441
+ });
28442
+
28443
+ this.assertText('inner.name: Sophie');
28444
+ };
28445
+
28412
28446
  return _class;
28413
28447
  }(_testCase.RenderingTest));
28414
28448
  });
@@ -36937,7 +36971,7 @@ enifed('ember-metal/tests/computed_test', ['ember-runtime', 'internal-test-helpe
36937
36971
  QUnit.test('computed properties check for the presence of a function or configuration object', function () {
36938
36972
  expectAssertion(function () {
36939
36973
  (0, _emberMetal.computed)('nolastargument');
36940
- }, 'Ember.computed expects a function or an object as last argument.');
36974
+ }, 'computed expects a function or an object as last argument.');
36941
36975
  });
36942
36976
 
36943
36977
  QUnit.test('computed properties defined with an object only allow `get` and `set` keys', function () {
@@ -36947,7 +36981,7 @@ enifed('ember-metal/tests/computed_test', ['ember-runtime', 'internal-test-helpe
36947
36981
  set: function () {},
36948
36982
  other: function () {}
36949
36983
  });
36950
- }, 'Config object passed to an Ember.computed can only contain `get` or `set` keys.');
36984
+ }, 'Config object passed to computed can only contain `get` or `set` keys.');
36951
36985
  });
36952
36986
 
36953
36987
  QUnit.test('defining computed property should invoke property on get', function () {
@@ -38431,13 +38465,13 @@ enifed('ember-metal/tests/events_test', ['ember-metal'], function (_emberMetal)
38431
38465
  _emberMetal.Mixin.create({
38432
38466
  foo1: (0, _emberMetal.on)('bar')
38433
38467
  });
38434
- }, 'Ember.on expects function as last argument');
38468
+ }, 'on expects function as last argument');
38435
38469
 
38436
38470
  expectAssertion(function () {
38437
38471
  _emberMetal.Mixin.create({
38438
38472
  foo1: (0, _emberMetal.on)(function () {})
38439
38473
  });
38440
- }, 'Ember.on called without valid event names');
38474
+ }, 'on called without valid event names');
38441
38475
  });
38442
38476
 
38443
38477
  QUnit.test('a listener added as part of a mixin may be overridden', function () {
@@ -40851,7 +40885,7 @@ enifed('ember-metal/tests/mixin/observer_test', ['internal-test-helpers', 'ember
40851
40885
  });
40852
40886
 
40853
40887
  (0, _internalTestHelpers.testBoth)('providing the arguments in reverse order is deprecated', function (get, set) {
40854
- expectDeprecation(/Passing the dependentKeys after the callback function in Ember\.observer is deprecated. Ensure the callback function is the last argument/);
40888
+ expectDeprecation(/Passing the dependentKeys after the callback function in observer is deprecated. Ensure the callback function is the last argument/);
40855
40889
 
40856
40890
  _emberMetal.Mixin.create({
40857
40891
  count: 0,
@@ -40994,13 +41028,13 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
40994
41028
  (0, _internalTestHelpers.testBoth)('observer should assert to invalid input', function () {
40995
41029
  expectAssertion(function () {
40996
41030
  (0, _emberMetal.observer)(function () {});
40997
- }, 'Ember.observer called without valid path');
41031
+ }, 'observer called without valid path');
40998
41032
 
40999
- expectDeprecation('Passing the dependentKeys after the callback function in Ember.observer is deprecated. Ensure the callback function is the last argument.');
41033
+ expectDeprecation('Passing the dependentKeys after the callback function in observer is deprecated. Ensure the callback function is the last argument.');
41000
41034
 
41001
41035
  expectAssertion(function () {
41002
41036
  (0, _emberMetal.observer)(null);
41003
- }, 'Ember.observer called without a function');
41037
+ }, 'observer called without a function');
41004
41038
  });
41005
41039
 
41006
41040
  (0, _internalTestHelpers.testBoth)('observer should fire when property is modified', function (get, set) {
@@ -41980,7 +42014,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
41980
42014
  QUnit.module('Ember.immediateObserver (Deprecated)');
41981
42015
 
41982
42016
  (0, _internalTestHelpers.testBoth)('immediate observers should fire synchronously', function (get, set) {
41983
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
42017
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
41984
42018
  var obj = {};
41985
42019
  var observerCalled = 0;
41986
42020
  var mixin = void 0;
@@ -42055,7 +42089,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
42055
42089
  }
42056
42090
 
42057
42091
  (0, _internalTestHelpers.testBoth)('immediate observers watching multiple properties via brace expansion fire synchronously', function (get, set) {
42058
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
42092
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
42059
42093
  var obj = {};
42060
42094
  var observerCalled = 0;
42061
42095
  var mixin = void 0;
@@ -42091,7 +42125,7 @@ enifed('ember-metal/tests/observer_test', ['ember-environment', 'internal-test-h
42091
42125
  });
42092
42126
 
42093
42127
  (0, _internalTestHelpers.testBoth)('immediate observers are for internal properties only', function () {
42094
- expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead./);
42128
+ expectDeprecation(/Usage of `Ember.immediateObserver` is deprecated, use `observer` instead./);
42095
42129
  expectAssertion(function () {
42096
42130
  (0, _emberMetal._immediateObserver)('foo.bar', function () {
42097
42131
  return this;
@@ -47353,6 +47387,13 @@ enifed('ember-runtime/tests/computed/reduce_computed_macros_test', ['ember-metal
47353
47387
  deepEqual(obj.get('sortedItems').mapBy('fname'), ['Robb', 'Jaime', 'Cersei'], 'after changing removed item array is not updated');
47354
47388
  });
47355
47389
 
47390
+ QUnit.test('sort works if array property is null (non array value) on first evaluation of computed prop', function () {
47391
+ obj.set('items', null);
47392
+ deepEqual(obj.get('sortedItems'), []);
47393
+ obj.set('items', (0, _native_array.A)([{ fname: 'Cersei', lname: 'Lanister' }]));
47394
+ deepEqual(obj.get('sortedItems'), [{ fname: 'Cersei', lname: 'Lanister' }]);
47395
+ });
47396
+
47356
47397
  QUnit.test('updating sort properties updates the sorted array', function () {
47357
47398
  deepEqual(obj.get('sortedItems').mapBy('fname'), ['Cersei', 'Jaime', 'Bran', 'Robb'], 'precond - array is initially sorted');
47358
47399
 
@@ -59301,7 +59342,6 @@ enifed('ember-template-compiler/plugins/transform-action-syntax', ['exports'], f
59301
59342
  exports.default = transformActionSyntax;
59302
59343
  /**
59303
59344
  @module ember
59304
- @submodule ember-glimmer
59305
59345
  */
59306
59346
 
59307
59347
  /**
@@ -59383,7 +59423,6 @@ enifed('ember-template-compiler/plugins/transform-attrs-into-args', ['exports'],
59383
59423
  exports.default = transformAttrsIntoArgs;
59384
59424
  /**
59385
59425
  @module ember
59386
- @submodule ember-glimmer
59387
59426
  */
59388
59427
 
59389
59428
  /**
@@ -59564,7 +59603,6 @@ enifed('ember-template-compiler/plugins/transform-each-in-into-each', ['exports'
59564
59603
  exports.default = transformEachInIntoEach;
59565
59604
  /**
59566
59605
  @module ember
59567
- @submodule ember-glimmer
59568
59606
  */
59569
59607
 
59570
59608
  /**
@@ -59607,7 +59645,6 @@ enifed('ember-template-compiler/plugins/transform-has-block-syntax', ['exports']
59607
59645
  exports.default = transformHasBlockSyntax;
59608
59646
  /**
59609
59647
  @module ember
59610
- @submodule ember-glimmer
59611
59648
  */
59612
59649
 
59613
59650
  /**
@@ -59711,7 +59748,6 @@ enifed('ember-template-compiler/plugins/transform-input-on-to-onEvent', ['export
59711
59748
 
59712
59749
  /**
59713
59750
  @module ember
59714
- @submodule ember-htmlbars
59715
59751
  */
59716
59752
 
59717
59753
  /**
@@ -59826,7 +59862,6 @@ enifed('ember-template-compiler/plugins/transform-input-type-syntax', ['exports'
59826
59862
  exports.default = transformInputTypeSyntax;
59827
59863
  /**
59828
59864
  @module ember
59829
- @submodule ember-glimmer
59830
59865
  */
59831
59866
 
59832
59867
  /**
@@ -60207,7 +60242,6 @@ enifed('ember-template-compiler/system/bootstrap', ['exports', 'ember-debug', 'e
60207
60242
  */
60208
60243
  /**
60209
60244
  @module ember
60210
- @submodule ember-templates
60211
60245
  */
60212
60246
 
60213
60247
  function bootstrap(_ref) {
@@ -60359,7 +60393,6 @@ enifed('ember-template-compiler/system/compile', ['exports', 'require', 'ember-t
60359
60393
  exports.default = compile;
60360
60394
  /**
60361
60395
  @module ember
60362
- @submodule ember-template-compiler
60363
60396
  */
60364
60397
  var template = void 0;
60365
60398
 
@@ -60393,7 +60426,6 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-template-
60393
60426
  exports.default = precompile;
60394
60427
  /**
60395
60428
  @module ember
60396
- @submodule ember-template-compiler
60397
60429
  */
60398
60430
 
60399
60431
  var glimmerPrecompile = void 0;
@@ -71313,6 +71345,64 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71313
71345
  });
71314
71346
  };
71315
71347
 
71348
+ _class.prototype['@test Setting bound query param property to null or undefined does not serialize to url'] = function (assert) {
71349
+ var _this36 = this;
71350
+
71351
+ assert.expect(9);
71352
+
71353
+ this.router.map(function () {
71354
+ this.route('home');
71355
+ });
71356
+
71357
+ this.setSingleQPController('home', 'foo', [1, 2]);
71358
+
71359
+ return this.visitAndAssert('/home').then(function () {
71360
+ var controller = _this36.getController('home');
71361
+
71362
+ assert.deepEqual(controller.get('foo'), [1, 2]);
71363
+ _this36.assertCurrentPath('/home');
71364
+
71365
+ _this36.setAndFlush(controller, 'foo', (0, _emberRuntime.A)([1, 3]));
71366
+ _this36.assertCurrentPath('/home?foo=%5B1%2C3%5D');
71367
+
71368
+ return _this36.transitionTo('/home').then(function () {
71369
+ assert.deepEqual(controller.get('foo'), [1, 2]);
71370
+ _this36.assertCurrentPath('/home');
71371
+
71372
+ _this36.setAndFlush(controller, 'foo', null);
71373
+ _this36.assertCurrentPath('/home', 'Setting property to null');
71374
+
71375
+ _this36.setAndFlush(controller, 'foo', (0, _emberRuntime.A)([1, 3]));
71376
+ _this36.assertCurrentPath('/home?foo=%5B1%2C3%5D');
71377
+
71378
+ _this36.setAndFlush(controller, 'foo', undefined);
71379
+ _this36.assertCurrentPath('/home', 'Setting property to undefined');
71380
+ });
71381
+ });
71382
+ };
71383
+
71384
+ _class.prototype['@test {{link-to}} with null or undefined QPs does not get serialized into url'] = function (assert) {
71385
+ var _this37 = this;
71386
+
71387
+ assert.expect(3);
71388
+
71389
+ this.addTemplate('home', '{{link-to \'Home\' \'home\' (query-params foo=nullValue) id=\'null-link\'}}{{link-to \'Home\' \'home\' (query-params foo=undefinedValue) id=\'undefined-link\'}}');
71390
+
71391
+ this.router.map(function () {
71392
+ this.route('home');
71393
+ });
71394
+
71395
+ this.setSingleQPController('home', 'foo', [], {
71396
+ nullValue: null,
71397
+ undefinedValue: undefined
71398
+ });
71399
+
71400
+ return this.visitAndAssert('/home').then(function () {
71401
+ assert.equal(_this37.$('#null-link').attr('href'), '/home');
71402
+ assert.equal(_this37.$('#undefined-link').attr('href'), '/home');
71403
+ });
71404
+ };
71405
+
71316
71406
  _class.prototype['@test A child of a resource route still defaults to parent route\'s model even if the child route has a query param'] = function (assert) {
71317
71407
  assert.expect(2);
71318
71408
 
@@ -71336,7 +71426,7 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71336
71426
  };
71337
71427
 
71338
71428
  _class.prototype['@test opting into replace does not affect transitions between routes'] = function (assert) {
71339
- var _this36 = this;
71429
+ var _this38 = this;
71340
71430
 
71341
71431
  assert.expect(5);
71342
71432
 
@@ -71358,27 +71448,27 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71358
71448
  }));
71359
71449
 
71360
71450
  return this.visit('/').then(function () {
71361
- var controller = _this36.getController('bar');
71451
+ var controller = _this38.getController('bar');
71362
71452
 
71363
- _this36.expectedPushURL = '/foo';
71453
+ _this38.expectedPushURL = '/foo';
71364
71454
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#foo-link'), 'click');
71365
71455
 
71366
- _this36.expectedPushURL = '/bar';
71456
+ _this38.expectedPushURL = '/bar';
71367
71457
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#bar-no-qp-link'), 'click');
71368
71458
 
71369
- _this36.expectedReplaceURL = '/bar?raytiley=woot';
71370
- _this36.setAndFlush(controller, 'raytiley', 'woot');
71459
+ _this38.expectedReplaceURL = '/bar?raytiley=woot';
71460
+ _this38.setAndFlush(controller, 'raytiley', 'woot');
71371
71461
 
71372
- _this36.expectedPushURL = '/foo';
71462
+ _this38.expectedPushURL = '/foo';
71373
71463
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#foo-link'), 'click');
71374
71464
 
71375
- _this36.expectedPushURL = '/bar?raytiley=isthebest';
71465
+ _this38.expectedPushURL = '/bar?raytiley=isthebest';
71376
71466
  (0, _emberMetal.run)((0, _emberViews.jQuery)('#bar-link'), 'click');
71377
71467
  });
71378
71468
  };
71379
71469
 
71380
71470
  _class.prototype['@test undefined isn\'t serialized or deserialized into a string'] = function (assert) {
71381
- var _this37 = this;
71471
+ var _this39 = this;
71382
71472
 
71383
71473
  assert.expect(4);
71384
71474
 
@@ -71399,10 +71489,10 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71399
71489
  }));
71400
71490
 
71401
71491
  return this.visitAndAssert('/').then(function () {
71402
- assert.equal(_this37.$('#the-link').attr('href'), '/example', 'renders without undefined qp serialized');
71492
+ assert.equal(_this39.$('#the-link').attr('href'), '/example', 'renders without undefined qp serialized');
71403
71493
 
71404
- return _this37.transitionTo('example', { queryParams: { foo: undefined } }).then(function () {
71405
- _this37.assertCurrentPath('/example');
71494
+ return _this39.transitionTo('example', { queryParams: { foo: undefined } }).then(function () {
71495
+ _this39.assertCurrentPath('/example');
71406
71496
  });
71407
71497
  });
71408
71498
  };
@@ -71420,7 +71510,7 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71420
71510
  };
71421
71511
 
71422
71512
  _class.prototype['@test warn user that Route\'s queryParams configuration must be an Object, not an Array'] = function (assert) {
71423
- var _this38 = this;
71513
+ var _this40 = this;
71424
71514
 
71425
71515
  assert.expect(1);
71426
71516
 
@@ -71429,12 +71519,12 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71429
71519
  }));
71430
71520
 
71431
71521
  expectAssertion(function () {
71432
- _this38.visit('/');
71522
+ _this40.visit('/');
71433
71523
  }, 'You passed in `[{"commitBy":{"replace":true}}]` as the value for `queryParams` but `queryParams` cannot be an Array');
71434
71524
  };
71435
71525
 
71436
71526
  _class.prototype['@test handle route names that clash with Object.prototype properties'] = function (assert) {
71437
- var _this39 = this;
71527
+ var _this41 = this;
71438
71528
 
71439
71529
  assert.expect(1);
71440
71530
 
@@ -71451,8 +71541,8 @@ enifed('ember/tests/routing/query_params_test', ['ember-babel', 'ember-runtime',
71451
71541
  }));
71452
71542
 
71453
71543
  return this.visit('/').then(function () {
71454
- _this39.transitionTo('constructor', { queryParams: { foo: '999' } });
71455
- var controller = _this39.getController('constructor');
71544
+ _this41.transitionTo('constructor', { queryParams: { foo: '999' } });
71545
+ var controller = _this41.getController('constructor');
71456
71546
  assert.equal((0, _emberMetal.get)(controller, 'foo'), '999');
71457
71547
  });
71458
71548
  };
@@ -73657,11 +73747,32 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
73657
73747
  });
73658
73748
  };
73659
73749
 
73660
- _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key'] = function (assert) {
73750
+ _class.prototype['@test RouterService#transitionTo with unspecified query params'] = function (assert) {
73661
73751
  var _this10 = this;
73662
73752
 
73663
73753
  assert.expect(1);
73664
73754
 
73755
+ this.add('controller:parent.child', _emberRuntime.Controller.extend({
73756
+ queryParams: ['sort', 'page', 'category', 'extra'],
73757
+ sort: 'ASC',
73758
+ page: null,
73759
+ category: undefined
73760
+ }));
73761
+
73762
+ var queryParams = this.buildQueryParams({ sort: 'ASC' });
73763
+
73764
+ return this.visit('/').then(function () {
73765
+ return _this10.routerService.transitionTo('parent.child', queryParams);
73766
+ }).then(function () {
73767
+ assert.equal(_this10.routerService.get('currentURL'), '/child?sort=ASC');
73768
+ });
73769
+ };
73770
+
73771
+ _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key'] = function (assert) {
73772
+ var _this11 = this;
73773
+
73774
+ assert.expect(1);
73775
+
73665
73776
  this.add('controller:parent.child', _emberRuntime.Controller.extend({
73666
73777
  queryParams: {
73667
73778
  'cont_sort': 'url_sort'
@@ -73672,14 +73783,14 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
73672
73783
  var queryParams = this.buildQueryParams({ url_sort: 'ASC' });
73673
73784
 
73674
73785
  return this.visit('/').then(function () {
73675
- return _this10.routerService.transitionTo('parent.child', queryParams);
73786
+ return _this11.routerService.transitionTo('parent.child', queryParams);
73676
73787
  }).then(function () {
73677
- assert.equal(_this10.routerService.get('currentURL'), '/child?url_sort=ASC');
73788
+ assert.equal(_this11.routerService.get('currentURL'), '/child?url_sort=ASC');
73678
73789
  });
73679
73790
  };
73680
73791
 
73681
73792
  _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key when controller property name'] = function (assert) {
73682
- var _this11 = this;
73793
+ var _this12 = this;
73683
73794
 
73684
73795
  assert.expect(1);
73685
73796
 
@@ -73694,7 +73805,7 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
73694
73805
 
73695
73806
  return this.visit('/').then(function () {
73696
73807
  expectAssertion(function () {
73697
- return _this11.routerService.transitionTo('parent.child', queryParams);
73808
+ return _this12.routerService.transitionTo('parent.child', queryParams);
73698
73809
  }, 'You passed the `cont_sort` query parameter during a transition into parent.child, please update to url_sort');
73699
73810
  });
73700
73811
  };