ember-source 2.16.0 → 2.16.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.
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
  };