ember-source 1.7.0.beta.1 → 1.7.0.beta.2

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.
@@ -5,7 +5,7 @@
5
5
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
6
6
  * @license Licensed under MIT license
7
7
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
8
- * @version 1.7.0-beta.1
8
+ * @version 1.7.0-beta.2
9
9
  */
10
10
 
11
11
  (function() {
@@ -2881,7 +2881,7 @@ define("ember-extension-support/tests/container_debug_adapter_test",
2881
2881
  var Ember = __dependency1__["default"];
2882
2882
  var run = __dependency2__["default"];
2883
2883
  var EmberObject = __dependency3__["default"];
2884
- var EmberController = __dependency4__.default;
2884
+ var EmberController = __dependency4__["default"];
2885
2885
  // Must be required to export Ember.ContainerDebugAdapter
2886
2886
  var Application = __dependency6__["default"];
2887
2887
 
@@ -2953,7 +2953,7 @@ define("ember-extension-support/tests/data_adapter_test",
2953
2953
  var addObserver = __dependency5__.addObserver;
2954
2954
  var removeObserver = __dependency5__.removeObserver;
2955
2955
  var EmberObject = __dependency6__["default"];
2956
- var EmberController = __dependency7__.default;
2956
+ var EmberController = __dependency7__["default"];
2957
2957
  var EmberDataAdapter = __dependency8__["default"];
2958
2958
  var EmberApplication = __dependency9__["default"];
2959
2959
  var DefaultResolver = __dependency10__["default"];
@@ -5411,8 +5411,8 @@ define("ember-handlebars/tests/controls/text_field_test.jshint",
5411
5411
  });
5412
5412
  });
5413
5413
  define("ember-handlebars/tests/handlebars_test",
5414
- ["ember-metal/core","ember-views/system/jquery","ember-metal/enumerable_utils","ember-metal/run_loop","ember-runtime/system/namespace","ember-views/views/view","ember-handlebars","ember-runtime/system/object","ember-runtime/controllers/object_controller","ember-runtime/system/native_array","ember-metal/computed","ember-runtime/system/string","ember-metal/utils","ember-runtime/system/array_proxy","ember-views/views/collection_view","ember-views/views/container_view","ember-metal/binding","ember-metal/observer","ember-handlebars/controls/text_field","ember-runtime/system/container","ember-metal/logger","ember-handlebars/string","ember-metal/property_get","ember-metal/property_set"],
5415
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__) {
5414
+ ["ember-metal/core","ember-views/system/jquery","ember-metal/enumerable_utils","ember-metal/run_loop","ember-runtime/system/namespace","ember-views/views/view","ember-handlebars/views/metamorph_view","ember-handlebars","ember-runtime/system/object","ember-runtime/controllers/object_controller","ember-runtime/system/native_array","ember-metal/computed","ember-runtime/system/string","ember-metal/utils","ember-runtime/system/array_proxy","ember-views/views/collection_view","ember-views/views/container_view","ember-metal/binding","ember-metal/observer","ember-handlebars/controls/text_field","ember-runtime/system/container","ember-metal/logger","ember-handlebars/string","ember-metal/property_get","ember-metal/property_set"],
5415
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__) {
5416
5416
  "use strict";
5417
5417
  /*globals TemplateTests:true,MyApp:true,App:true,Ember:true */
5418
5418
 
@@ -5425,23 +5425,24 @@ define("ember-handlebars/tests/handlebars_test",
5425
5425
  var run = __dependency4__["default"];
5426
5426
  var Namespace = __dependency5__["default"];
5427
5427
  var EmberView = __dependency6__["default"];
5428
- var EmberHandlebars = __dependency7__["default"];
5429
- var EmberObject = __dependency8__["default"];
5430
- var ObjectController = __dependency9__["default"];
5431
- var A = __dependency10__.A;
5432
- var computed = __dependency11__.computed;
5433
- var fmt = __dependency12__.fmt;
5434
- var typeOf = __dependency13__.typeOf;
5435
- var ArrayProxy = __dependency14__["default"];
5436
- var CollectionView = __dependency15__["default"];
5437
- var ContainerView = __dependency16__["default"];
5438
- var Binding = __dependency17__.Binding;
5439
- var observersFor = __dependency18__.observersFor;
5440
- var TextField = __dependency19__["default"];
5441
- var Container = __dependency20__["default"];
5442
- var Logger = __dependency21__["default"];
5443
-
5444
- var htmlSafe = __dependency22__["default"];
5428
+ var _MetamorphView = __dependency7__["default"];
5429
+ var EmberHandlebars = __dependency8__["default"];
5430
+ var EmberObject = __dependency9__["default"];
5431
+ var ObjectController = __dependency10__["default"];
5432
+ var A = __dependency11__.A;
5433
+ var computed = __dependency12__.computed;
5434
+ var fmt = __dependency13__.fmt;
5435
+ var typeOf = __dependency14__.typeOf;
5436
+ var ArrayProxy = __dependency15__["default"];
5437
+ var CollectionView = __dependency16__["default"];
5438
+ var ContainerView = __dependency17__["default"];
5439
+ var Binding = __dependency18__.Binding;
5440
+ var observersFor = __dependency19__.observersFor;
5441
+ var TextField = __dependency20__["default"];
5442
+ var Container = __dependency21__["default"];
5443
+ var Logger = __dependency22__["default"];
5444
+
5445
+ var htmlSafe = __dependency23__["default"];
5445
5446
 
5446
5447
  // for global lookups in template. :(
5447
5448
  Ember.View = EmberView;
@@ -5450,8 +5451,8 @@ define("ember-handlebars/tests/handlebars_test",
5450
5451
 
5451
5452
  var trim = jQuery.trim;
5452
5453
 
5453
- var get = __dependency23__.get;
5454
- var set = __dependency24__.set;
5454
+ var get = __dependency24__.get;
5455
+ var set = __dependency25__.set;
5455
5456
 
5456
5457
  function firstGrandchild(view) {
5457
5458
  return get(get(view, 'childViews').objectAt(0), 'childViews').objectAt(0);
@@ -5524,7 +5525,8 @@ define("ember-handlebars/tests/handlebars_test",
5524
5525
 
5525
5526
  container = new Container();
5526
5527
  container.optionsForType('template', { instantiate: false });
5527
- container.register('view:default', EmberView.extend());
5528
+ container.register('view:default', _MetamorphView);
5529
+ container.register('view:toplevel', EmberView.extend());
5528
5530
  },
5529
5531
 
5530
5532
  teardown: function() {
@@ -8524,8 +8526,8 @@ define("ember-handlebars/tests/helpers/debug_test.jshint",
8524
8526
  });
8525
8527
  });
8526
8528
  define("ember-handlebars/tests/helpers/each_test",
8527
- ["ember-metal/core","ember-runtime/system/object","ember-metal/run_loop","ember-views/views/view","ember-metal/computed","ember-runtime/controllers/array_controller","ember-handlebars-compiler","ember-runtime/system/native_array","ember-runtime/controllers/controller","ember-runtime/controllers/object_controller","ember-runtime/system/container","ember-metal/property_get","ember-metal/property_set"],
8528
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__) {
8529
+ ["ember-metal/core","ember-runtime/system/object","ember-metal/run_loop","ember-views/views/view","ember-handlebars/views/metamorph_view","ember-metal/computed","ember-runtime/controllers/array_controller","ember-handlebars-compiler","ember-runtime/system/native_array","ember-runtime/controllers/controller","ember-runtime/controllers/object_controller","ember-runtime/system/container","ember-metal/property_get","ember-metal/property_set"],
8530
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__) {
8529
8531
  "use strict";
8530
8532
  /*jshint newcap:false*/
8531
8533
  var Ember = __dependency1__["default"];
@@ -8533,17 +8535,18 @@ define("ember-handlebars/tests/helpers/each_test",
8533
8535
  var EmberObject = __dependency2__["default"];
8534
8536
  var run = __dependency3__["default"];
8535
8537
  var EmberView = __dependency4__["default"];
8536
- var computed = __dependency5__.computed;
8537
- var ArrayController = __dependency6__["default"];
8538
- var EmberHandlebars = __dependency7__["default"];
8538
+ var _MetamorphView = __dependency5__["default"];
8539
+ var computed = __dependency6__.computed;
8540
+ var ArrayController = __dependency7__["default"];
8541
+ var EmberHandlebars = __dependency8__["default"];
8539
8542
  // import {expectAssertion} from "ember-metal/tests/debug_helpers";
8540
- var A = __dependency8__.A;
8541
- var EmberController = __dependency9__.default;
8542
- var ObjectController = __dependency10__["default"];
8543
- var Container = __dependency11__["default"];
8543
+ var A = __dependency9__.A;
8544
+ var EmberController = __dependency10__["default"];
8545
+ var ObjectController = __dependency11__["default"];
8546
+ var Container = __dependency12__["default"];
8544
8547
 
8545
- var get = __dependency12__.get;
8546
- var set = __dependency13__.set;
8548
+ var get = __dependency13__.get;
8549
+ var set = __dependency14__.set;
8547
8550
 
8548
8551
  var people, view, container;
8549
8552
  var template, templateMyView;
@@ -8562,7 +8565,8 @@ define("ember-handlebars/tests/helpers/each_test",
8562
8565
  people = A([{ name: "Steve Holt" }, { name: "Annabelle" }]);
8563
8566
 
8564
8567
  container = new Container();
8565
- container.register('view:default', EmberView.extend());
8568
+ container.register('view:default', _MetamorphView);
8569
+ container.register('view:toplevel', EmberView.extend());
8566
8570
 
8567
8571
  view = EmberView.create({
8568
8572
  container: container,
@@ -9055,7 +9059,8 @@ define("ember-handlebars/tests/helpers/each_test",
9055
9059
  QUnit.module("{{#each foo in bar}}", {
9056
9060
  setup: function() {
9057
9061
  container = new Container();
9058
- container.register('view:default', EmberView.extend());
9062
+ container.register('view:default', _MetamorphView);
9063
+ container.register('view:toplevel', EmberView.extend());
9059
9064
  },
9060
9065
  teardown: function() {
9061
9066
  run(function() {
@@ -9289,21 +9294,22 @@ define("ember-handlebars/tests/helpers/each_test.jshint",
9289
9294
  });
9290
9295
  });
9291
9296
  define("ember-handlebars/tests/helpers/group_test",
9292
- ["ember-metal/run_loop","ember-views/system/jquery","ember-views/views/view","ember-handlebars-compiler","ember-runtime/system/array_proxy","ember-runtime/system/native_array","ember-runtime/system/container","ember-metal/property_get","ember-metal/property_set","ember-views/views/component"],
9293
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__) {
9297
+ ["ember-metal/run_loop","ember-views/system/jquery","ember-views/views/view","ember-handlebars/views/metamorph_view","ember-handlebars-compiler","ember-runtime/system/array_proxy","ember-runtime/system/native_array","ember-runtime/system/container","ember-metal/property_get","ember-metal/property_set","ember-views/views/component"],
9298
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__) {
9294
9299
  "use strict";
9295
9300
  /*jshint newcap:false*/
9296
9301
 
9297
9302
  var run = __dependency1__["default"];
9298
9303
  var jQuery = __dependency2__["default"];
9299
9304
  var EmberView = __dependency3__["default"];
9300
- var EmberHandlebars = __dependency4__["default"];
9301
- var ArrayProxy = __dependency5__["default"];
9302
- var A = __dependency6__.A;
9303
- var Container = __dependency7__["default"];
9304
- var get = __dependency8__.get;
9305
- var set = __dependency9__.set;
9306
- var Component = __dependency10__["default"];
9305
+ var _MetamorphView = __dependency4__["default"];
9306
+ var EmberHandlebars = __dependency5__["default"];
9307
+ var ArrayProxy = __dependency6__["default"];
9308
+ var A = __dependency7__.A;
9309
+ var Container = __dependency8__["default"];
9310
+ var get = __dependency9__.get;
9311
+ var set = __dependency10__.set;
9312
+ var Component = __dependency11__["default"];
9307
9313
 
9308
9314
  var trim = jQuery.trim;
9309
9315
  var container, view;
@@ -9315,7 +9321,8 @@ define("ember-handlebars/tests/helpers/group_test",
9315
9321
  QUnit.module("EmberHandlebars - group flag", {
9316
9322
  setup: function() {
9317
9323
  container = new Container();
9318
- container.register('view:default', EmberView.extend());
9324
+ container.register('view:default', _MetamorphView);
9325
+ container.register('view:toplevel', EmberView.extend());
9319
9326
  },
9320
9327
 
9321
9328
  teardown: function() {
@@ -10377,13 +10384,14 @@ define("ember-handlebars/tests/helpers/unbound_test.jshint",
10377
10384
  });
10378
10385
  });
10379
10386
  define("ember-handlebars/tests/helpers/view_test",
10380
- ["ember-views/views/view","ember-metal/run_loop","ember-views/system/jquery"],
10381
- function(__dependency1__, __dependency2__, __dependency3__) {
10387
+ ["ember-views/views/view","container/container","ember-metal/run_loop","ember-views/system/jquery"],
10388
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__) {
10382
10389
  "use strict";
10383
10390
  /*globals EmberDev */
10384
10391
  var EmberView = __dependency1__["default"];
10385
- var run = __dependency2__["default"];
10386
- var jQuery = __dependency3__["default"];
10392
+ var Container = __dependency2__["default"];
10393
+ var run = __dependency3__["default"];
10394
+ var jQuery = __dependency4__["default"];
10387
10395
 
10388
10396
  var view, originalLookup;
10389
10397
 
@@ -10410,9 +10418,9 @@ define("ember-handlebars/tests/helpers/view_test",
10410
10418
  }
10411
10419
  });
10412
10420
 
10413
- test("By default view:default is used", function() {
10421
+ test("By default view:toplevel is used", function() {
10414
10422
  var DefaultView = viewClass({
10415
- elementId: 'default-view',
10423
+ elementId: 'toplevel-view',
10416
10424
  template: Ember.Handlebars.compile('hello world')
10417
10425
  });
10418
10426
 
@@ -10427,10 +10435,10 @@ define("ember-handlebars/tests/helpers/view_test",
10427
10435
 
10428
10436
  run(view, 'appendTo', '#qunit-fixture');
10429
10437
 
10430
- equal(jQuery('#default-view').text(), 'hello world');
10438
+ equal(jQuery('#toplevel-view').text(), 'hello world');
10431
10439
 
10432
10440
  function lookupFactory(fullName) {
10433
- equal(fullName, 'view:default');
10441
+ equal(fullName, 'view:toplevel');
10434
10442
 
10435
10443
  return DefaultView;
10436
10444
  }
@@ -10565,6 +10573,25 @@ define("ember-handlebars/tests/helpers/view_test",
10565
10573
 
10566
10574
  Ember.warn = oldWarn;
10567
10575
  });
10576
+
10577
+ test("allows you to pass attributes that will be assigned to the class instance, like class=\"foo\"", function() {
10578
+ expect(4);
10579
+
10580
+ var container = new Container();
10581
+ container.register('view:toplevel', EmberView.extend());
10582
+
10583
+ view = EmberView.extend({
10584
+ template: Ember.Handlebars.compile('{{view id="foo" tagName="h1" class="foo"}}{{#view id="bar" class="bar"}}Bar{{/view}}'),
10585
+ container: container
10586
+ }).create();
10587
+
10588
+ run(view, 'appendTo', '#qunit-fixture');
10589
+
10590
+ ok(jQuery('#foo').hasClass('foo'));
10591
+ ok(jQuery('#foo').is('h1'));
10592
+ ok(jQuery('#bar').hasClass('bar'));
10593
+ equal(jQuery('#bar').text(), 'Bar');
10594
+ });
10568
10595
  });
10569
10596
  define("ember-handlebars/tests/helpers/view_test.jshint",
10570
10597
  [],
@@ -11028,6 +11055,33 @@ define("ember-handlebars/tests/helpers/with_test",
11028
11055
 
11029
11056
  ok(destroyed, 'controller was destroyed properly');
11030
11057
  });
11058
+
11059
+ QUnit.module("{{#with}} helper binding to view keyword", {
11060
+ setup: function() {
11061
+ Ember.lookup = lookup = { Ember: Ember };
11062
+
11063
+ view = EmberView.create({
11064
+ template: EmberHandlebars.compile("We have: {{#with view.thing as fromView}}{{fromView.name}} and {{fromContext.name}}{{/with}}"),
11065
+ thing: { name: 'this is from the view' },
11066
+ context: {
11067
+ fromContext: { name: "this is from the context" },
11068
+ }
11069
+ });
11070
+
11071
+ appendView(view);
11072
+ },
11073
+
11074
+ teardown: function() {
11075
+ run(function() {
11076
+ view.destroy();
11077
+ });
11078
+ Ember.lookup = originalLookup;
11079
+ }
11080
+ });
11081
+
11082
+ test("{{with}} helper can bind to keywords with 'as'", function(){
11083
+ equal(view.$().text(), "We have: this is from the view and this is from the context", "should render");
11084
+ });
11031
11085
  });
11032
11086
  define("ember-handlebars/tests/helpers/with_test.jshint",
11033
11087
  [],
@@ -12662,6 +12716,15 @@ define("ember-metal.jshint",
12662
12716
  ok(true, 'ember-metal.js should pass jshint.');
12663
12717
  });
12664
12718
  });
12719
+ define("ember-metal/alias.jshint",
12720
+ [],
12721
+ function() {
12722
+ "use strict";
12723
+ module('JSHint - ember-metal');
12724
+ test('ember-metal/alias.js should pass jshint', function() {
12725
+ ok(true, 'ember-metal/alias.js should pass jshint.');
12726
+ });
12727
+ });
12665
12728
  define("ember-metal/array.jshint",
12666
12729
  [],
12667
12730
  function() {
@@ -12698,6 +12761,15 @@ define("ember-metal/computed.jshint",
12698
12761
  ok(true, 'ember-metal/computed.js should pass jshint.');
12699
12762
  });
12700
12763
  });
12764
+ define("ember-metal/computed_macros.jshint",
12765
+ [],
12766
+ function() {
12767
+ "use strict";
12768
+ module('JSHint - ember-metal');
12769
+ test('ember-metal/computed_macros.js should pass jshint', function() {
12770
+ ok(true, 'ember-metal/computed_macros.js should pass jshint.');
12771
+ });
12772
+ });
12701
12773
  define("ember-metal/core.jshint",
12702
12774
  [],
12703
12775
  function() {
@@ -12707,6 +12779,15 @@ define("ember-metal/core.jshint",
12707
12779
  ok(true, 'ember-metal/core.js should pass jshint.');
12708
12780
  });
12709
12781
  });
12782
+ define("ember-metal/dependent_keys.jshint",
12783
+ [],
12784
+ function() {
12785
+ "use strict";
12786
+ module('JSHint - ember-metal');
12787
+ test('ember-metal/dependent_keys.js should pass jshint', function() {
12788
+ ok(true, 'ember-metal/dependent_keys.js should pass jshint.');
12789
+ });
12790
+ });
12710
12791
  define("ember-metal/enumerable_utils.jshint",
12711
12792
  [],
12712
12793
  function() {
@@ -13560,6 +13641,83 @@ define("ember-metal/tests/accessors/set_test.jshint",
13560
13641
  ok(true, 'ember-metal/tests/accessors/set_test.js should pass jshint.');
13561
13642
  });
13562
13643
  });
13644
+ define("ember-metal/tests/alias_test",
13645
+ ["ember-metal/alias","ember-metal/properties","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/watching","ember-metal/observer","ember-metal/mixin"],
13646
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__) {
13647
+ "use strict";
13648
+ var alias = __dependency1__.alias;
13649
+ var Descriptor = __dependency2__.Descriptor;
13650
+ var defineProperty = __dependency2__.defineProperty;
13651
+ var get = __dependency3__.get;
13652
+ var set = __dependency4__.set;
13653
+ var meta = __dependency5__.meta;
13654
+ var isWatching = __dependency6__.isWatching;
13655
+ var addObserver = __dependency7__.addObserver;
13656
+ var removeObserver = __dependency7__.removeObserver;
13657
+ var mixin = __dependency8__.mixin;
13658
+ var observer = __dependency8__.observer;
13659
+
13660
+ var obj, count;
13661
+
13662
+ QUnit.module('ember-metal/alias', {
13663
+ setup: function() {
13664
+ obj = { foo: { faz: 'FOO' } };
13665
+ count = 0;
13666
+ },
13667
+ teardown: function() {
13668
+ obj = null;
13669
+ }
13670
+ });
13671
+
13672
+ function incrementCount() {
13673
+ count++;
13674
+ }
13675
+
13676
+ test('should proxy get to alt key', function() {
13677
+ defineProperty(obj, 'bar', alias('foo.faz'));
13678
+ equal(get(obj, 'bar'), 'FOO');
13679
+ });
13680
+
13681
+ test('should proxy set to alt key', function() {
13682
+ defineProperty(obj, 'bar', alias('foo.faz'));
13683
+ set(obj, 'bar', 'BAR');
13684
+ equal(get(obj, 'foo.faz'), 'BAR');
13685
+ });
13686
+
13687
+ test('basic lifecycle', function() {
13688
+ defineProperty(obj, 'bar', alias('foo.faz'));
13689
+ var m = meta(obj);
13690
+ addObserver(obj, 'bar', incrementCount);
13691
+ equal(m.deps['foo.faz'].bar, 1);
13692
+ removeObserver(obj, 'bar', incrementCount);
13693
+ equal(m.deps['foo.faz'].bar, 0);
13694
+ });
13695
+
13696
+ test('begins watching alt key as soon as alias is watched', function() {
13697
+ defineProperty(obj, 'bar', alias('foo.faz'));
13698
+ addObserver(obj, 'bar', incrementCount);
13699
+ ok(isWatching(obj, 'foo.faz'));
13700
+ set(obj, 'foo.faz', 'BAR');
13701
+ equal(count, 1);
13702
+ });
13703
+
13704
+ test('immediately sets up dependencies if already being watched', function() {
13705
+ addObserver(obj, 'bar', incrementCount);
13706
+ defineProperty(obj, 'bar', alias('foo.faz'));
13707
+ ok(isWatching(obj, 'foo.faz'));
13708
+ set(obj, 'foo.faz', 'BAR');
13709
+ equal(count, 1);
13710
+ });
13711
+ });
13712
+ define("ember-metal/tests/alias_test.jshint",
13713
+ [],
13714
+ function() {
13715
+ "use strict";
13716
+ module('JSHint - ember-metal/tests');
13717
+ test('ember-metal/tests/alias_test.js should pass jshint', function() {
13718
+ ok(true, 'ember-metal/tests/alias_test.js should pass jshint.');
13719
+ });
13720
+ });
13563
13721
  define("ember-metal/tests/binding/connect_test",
13564
13722
  ["ember-metal/core","ember-metal/tests/props_helper","ember-metal/binding","ember-metal/run_loop","ember-metal/platform","ember-metal/property_set","ember-metal/property_get","ember-metal/watching"],
13565
13723
  function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__) {
@@ -13806,7 +13964,7 @@ define("ember-metal/tests/binding/sync_test",
13806
13964
  getCalled++;
13807
13965
  return setValue;
13808
13966
  }
13809
- }).volatile());
13967
+ })["volatile"]());
13810
13968
 
13811
13969
  b = {
13812
13970
  a: a
@@ -21081,7 +21239,7 @@ define("ember-routing-handlebars/tests/helpers/action_test",
21081
21239
 
21082
21240
  var Container = __dependency5__["default"];
21083
21241
  var EmberObject = __dependency6__["default"];
21084
- var EmberController = __dependency7__.default;
21242
+ var EmberController = __dependency7__["default"];
21085
21243
  var EmberObjectController = __dependency8__["default"];
21086
21244
  var EmberArrayController = __dependency9__["default"];
21087
21245
 
@@ -21890,7 +22048,7 @@ define("ember-routing-handlebars/tests/helpers/action_test",
21890
22048
  });
21891
22049
 
21892
22050
  var event = jQuery.Event("keyup");
21893
- event.char = 'a';
22051
+ event["char"] = 'a';
21894
22052
  event.which = 65;
21895
22053
  view.$('input').trigger(event);
21896
22054
  ok(showCalled, "should call action with keyup");
@@ -22301,7 +22459,7 @@ define("ember-routing-handlebars/tests/helpers/outlet_test",
22301
22459
 
22302
22460
  var namespace = Namespace.create();
22303
22461
  container = buildContainer(namespace);
22304
- container.register('view:default', EmberView.extend());
22462
+ container.register('view:default', _MetamorphView);
22305
22463
  container.register('router:main', EmberRouter.extend());
22306
22464
  },
22307
22465
  teardown: function() {
@@ -22583,8 +22741,8 @@ define("ember-routing-handlebars/tests/helpers/outlet_test.jshint",
22583
22741
  });
22584
22742
  });
22585
22743
  define("ember-routing-handlebars/tests/helpers/render_test",
22586
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/platform","ember-metal/mixin","container/container","ember-runtime/system/namespace","ember-runtime/system/string","ember-runtime/controllers/controller","ember-runtime/controllers/object_controller","ember-runtime/controllers/array_controller","ember-routing/system/router","ember-routing/location/hash_location","ember-handlebars","ember-routing/ext/view","ember-views/system/jquery","ember-routing-handlebars/helpers/render","ember-routing-handlebars/helpers/action","ember-routing-handlebars/helpers/outlet"],
22587
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__) {
22744
+ ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/platform","ember-metal/mixin","container/container","ember-runtime/system/namespace","ember-runtime/system/string","ember-runtime/controllers/controller","ember-runtime/controllers/object_controller","ember-runtime/controllers/array_controller","ember-routing/system/router","ember-routing/location/hash_location","ember-handlebars","ember-routing/ext/view","ember-handlebars/views/metamorph_view","ember-views/system/jquery","ember-routing-handlebars/helpers/render","ember-routing-handlebars/helpers/action","ember-routing-handlebars/helpers/outlet"],
22745
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__) {
22588
22746
  "use strict";
22589
22747
  var Ember = __dependency1__["default"];
22590
22748
  // TEMPLATES
@@ -22599,7 +22757,7 @@ define("ember-routing-handlebars/tests/helpers/render_test",
22599
22757
  var classify = __dependency9__.classify;
22600
22758
  var decamelize = __dependency9__.decamelize;
22601
22759
 
22602
- var EmberController = __dependency10__.default;
22760
+ var EmberController = __dependency10__["default"];
22603
22761
  var EmberObjectController = __dependency11__["default"];
22604
22762
  var EmberArrayController = __dependency12__["default"];
22605
22763
 
@@ -22608,12 +22766,13 @@ define("ember-routing-handlebars/tests/helpers/render_test",
22608
22766
 
22609
22767
  var EmberHandlebars = __dependency15__["default"];
22610
22768
  var EmberView = __dependency16__["default"];
22611
- var jQuery = __dependency17__["default"];
22769
+ var _MetamorphView = __dependency17__["default"];
22770
+ var jQuery = __dependency18__["default"];
22612
22771
 
22613
- var renderHelper = __dependency18__["default"];
22614
- var ActionHelper = __dependency19__.ActionHelper;
22615
- var actionHelper = __dependency19__.actionHelper;
22616
- var outletHelper = __dependency20__.outletHelper;
22772
+ var renderHelper = __dependency19__["default"];
22773
+ var ActionHelper = __dependency20__.ActionHelper;
22774
+ var actionHelper = __dependency20__.actionHelper;
22775
+ var outletHelper = __dependency21__.outletHelper;
22617
22776
 
22618
22777
  function appendView(view) {
22619
22778
  run(function() { view.appendTo('#qunit-fixture'); });
@@ -22683,7 +22842,7 @@ define("ember-routing-handlebars/tests/helpers/render_test",
22683
22842
 
22684
22843
  var namespace = Namespace.create();
22685
22844
  container = buildContainer(namespace);
22686
- container.register('view:default', EmberView.extend());
22845
+ container.register('view:default', _MetamorphView);
22687
22846
  container.register('router:main', EmberRouter.extend());
22688
22847
  },
22689
22848
  teardown: function() {
@@ -23890,6 +24049,7 @@ define("ember-routing/tests/system/controller_for_test",
23890
24049
  var ObjectController = __dependency9__["default"];
23891
24050
  var ArrayController = __dependency10__["default"];
23892
24051
  var controllerFor = __dependency11__["default"];
24052
+ var generateControllerFactory = __dependency12__.generateControllerFactory;
23893
24053
  var generateController = __dependency12__["default"];
23894
24054
 
23895
24055
  var buildContainer = function(namespace) {
@@ -23961,6 +24121,11 @@ define("ember-routing/tests/system/controller_for_test",
23961
24121
  }
23962
24122
  });
23963
24123
 
24124
+ test("generateController and generateControllerFactory are properties on the root namespace", function() {
24125
+ equal(Ember.generateController, generateController, 'should export generateController');
24126
+ equal(Ember.generateControllerFactory, generateControllerFactory, 'should export generateControllerFactory');
24127
+ });
24128
+
23964
24129
  test("generateController should create Ember.Controller", function() {
23965
24130
  var controller = generateController(container, 'home');
23966
24131
 
@@ -24315,6 +24480,12 @@ define("ember-routing/tests/system/router_test",
24315
24480
  }
24316
24481
  });
24317
24482
 
24483
+ test("can create a router without a container", function() {
24484
+ var router = Router.create();
24485
+
24486
+ ok(router.router);
24487
+ });
24488
+
24318
24489
  test("should create a router if one does not exist on the constructor", function() {
24319
24490
  createRouter();
24320
24491
 
@@ -27988,15 +28159,15 @@ define("ember-runtime/tests/controllers/item_controller_class_test.jshint",
27988
28159
  ok(true, 'ember-runtime/tests/controllers/item_controller_class_test.js should pass jshint.');
27989
28160
  });
27990
28161
  });
27991
- define("ember-runtime/tests/controllers/object_controller_tests",
27992
- ["ember-runtime/controllers/object_controller"],
27993
- function(__dependency1__) {
28162
+ define("ember-runtime/tests/controllers/object_controller_test",
28163
+ ["ember-runtime/controllers/object_controller","ember-metal/mixin"],
28164
+ function(__dependency1__, __dependency2__) {
27994
28165
  "use strict";
27995
28166
  var ObjectController = __dependency1__["default"];
28167
+ var observer = __dependency2__.observer;
27996
28168
 
27997
28169
  QUnit.module("Ember.ObjectController");
27998
28170
 
27999
-
28000
28171
  test("should be able to set the target property of an ObjectController", function() {
28001
28172
  var controller = ObjectController.create();
28002
28173
  var target = {};
@@ -28004,14 +28175,23 @@ define("ember-runtime/tests/controllers/object_controller_tests",
28004
28175
  controller.set('target', target);
28005
28176
  equal(controller.get('target'), target, "able to set the target property");
28006
28177
  });
28178
+
28179
+ // See https://github.com/emberjs/ember.js/issues/5112
28180
+ test("can observe a path on an ObjectController", function() {
28181
+ var controller = ObjectController.extend({
28182
+ baz: observer('foo.bar', function() {})
28183
+ }).create();
28184
+ controller.set('model', {});
28185
+ ok(true, "should not fail");
28186
+ });
28007
28187
  });
28008
- define("ember-runtime/tests/controllers/object_controller_tests.jshint",
28188
+ define("ember-runtime/tests/controllers/object_controller_test.jshint",
28009
28189
  [],
28010
28190
  function() {
28011
28191
  "use strict";
28012
28192
  module('JSHint - ember-runtime/tests/controllers');
28013
- test('ember-runtime/tests/controllers/object_controller_tests.js should pass jshint', function() {
28014
- ok(true, 'ember-runtime/tests/controllers/object_controller_tests.js should pass jshint.');
28193
+ test('ember-runtime/tests/controllers/object_controller_test.js should pass jshint', function() {
28194
+ ok(true, 'ember-runtime/tests/controllers/object_controller_test.js should pass jshint.');
28015
28195
  });
28016
28196
  });
28017
28197
  define("ember-runtime/tests/core/compare_test",
@@ -28728,7 +28908,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28728
28908
  numberVal: 24,
28729
28909
  toggleVal: true,
28730
28910
 
28731
- computed: computed(function() { return 'value'; }).volatile(),
28911
+ computed: computed(function() { return 'value'; })["volatile"](),
28732
28912
 
28733
28913
  method: function() { return "value"; },
28734
28914
 
@@ -28777,7 +28957,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28777
28957
  numberVal: 24,
28778
28958
  toggleVal: true,
28779
28959
 
28780
- computed: computed(function() { return 'value'; }).volatile(),
28960
+ computed: computed(function() { return 'value'; })["volatile"](),
28781
28961
 
28782
28962
  method: function() { return "value"; },
28783
28963
 
@@ -28860,7 +29040,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28860
29040
  test("should return a property at a given path relative to the lookup", function() {
28861
29041
  lookup.Foo = ObservableObject.create({
28862
29042
  Bar: ObservableObject.createWithMixins({
28863
- Baz: computed(function() { return "blargh"; }).volatile()
29043
+ Baz: computed(function() { return "blargh"; })["volatile"]()
28864
29044
  })
28865
29045
  });
28866
29046
 
@@ -28870,7 +29050,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28870
29050
  test("should return a property at a given path relative to the passed object", function() {
28871
29051
  var foo = ObservableObject.create({
28872
29052
  bar: ObservableObject.createWithMixins({
28873
- baz: computed(function() { return "blargh"; }).volatile()
29053
+ baz: computed(function() { return "blargh"; })["volatile"]()
28874
29054
  })
28875
29055
  });
28876
29056
 
@@ -28916,7 +29096,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28916
29096
  this._computed = value ;
28917
29097
  }
28918
29098
  return this._computed ;
28919
- }).volatile(),
29099
+ })["volatile"](),
28920
29100
 
28921
29101
  // method, but not a property
28922
29102
  _method: "method",
@@ -28998,7 +29178,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
28998
29178
  computed: computed(function(key, value) {
28999
29179
  this.computedCalls.push(value);
29000
29180
  return 'computed';
29001
- }).volatile(),
29181
+ })["volatile"](),
29002
29182
 
29003
29183
  computedCachedCalls: [],
29004
29184
  computedCached: computed(function(key, value) {
@@ -29015,13 +29195,13 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
29015
29195
  dependent: computed(function(key, value) {
29016
29196
  this.dependentCalls.push(value);
29017
29197
  return 'dependent';
29018
- }).property('changer').volatile(),
29198
+ }).property('changer')["volatile"](),
29019
29199
 
29020
29200
  dependentFrontCalls: [],
29021
29201
  dependentFront: computed('changer', function(key, value) {
29022
29202
  this.dependentFrontCalls.push(value);
29023
29203
  return 'dependentFront';
29024
- }).volatile(),
29204
+ })["volatile"](),
29025
29205
 
29026
29206
  dependentCachedCalls: [],
29027
29207
  dependentCached: computed(function(key, value) {
@@ -29047,12 +29227,12 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/observable_test",
29047
29227
  isOn: computed(function(key, value) {
29048
29228
  if (value !== undefined) this.set('state', 'on');
29049
29229
  return this.get('state') === 'on';
29050
- }).property('state').volatile(),
29230
+ }).property('state')["volatile"](),
29051
29231
 
29052
29232
  isOff: computed(function(key, value) {
29053
29233
  if (value !== undefined) this.set('state', 'off');
29054
29234
  return this.get('state') === 'off';
29055
- }).property('state').volatile()
29235
+ }).property('state')["volatile"]()
29056
29236
 
29057
29237
  }) ;
29058
29238
  },
@@ -29826,7 +30006,7 @@ define("ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test",
29826
30006
  return this;
29827
30007
  }
29828
30008
  return this._b;
29829
- }).volatile()
30009
+ })["volatile"]()
29830
30010
  });
29831
30011
 
29832
30012
  a.set('b', 'foo');
@@ -38553,7 +38733,7 @@ define("ember-runtime/tests/system/object/computed_test",
38553
38733
 
38554
38734
  var ClassWithNoMetadata = EmberObject.extend({
38555
38735
  computedProperty: computed(function() {
38556
- }).volatile(),
38736
+ })["volatile"](),
38557
38737
 
38558
38738
  staticProperty: 12
38559
38739
  });
@@ -42289,10 +42469,10 @@ define("ember-testing/tests/helpers_test",
42289
42469
 
42290
42470
  App.injectTestHelpers(helpers);
42291
42471
 
42292
- ok(helpers['visit'] !== 'snazzleflabber', "helper added to container");
42472
+ ok(helpers.visit !== 'snazzleflabber', "helper added to container");
42293
42473
  App.removeTestHelpers();
42294
42474
 
42295
- ok(helpers['visit'] === 'snazzleflabber', "original value added back to container");
42475
+ ok(helpers.visit === 'snazzleflabber', "original value added back to container");
42296
42476
  });
42297
42477
 
42298
42478
  test("`wait` respects registerWaiters", function() {
@@ -42482,7 +42662,42 @@ define("ember-testing/tests/helpers_test",
42482
42662
  equal(Test.pendingAjaxRequests, 0, 'pendingAjaxRequests is reset');
42483
42663
  });
42484
42664
 
42485
- test("`trigger` can be used to trigger arbitrary events", function() {
42665
+ test("`triggerEvent can limit searching for a selector to a scope", function(){
42666
+ expect(2);
42667
+
42668
+ var triggerEvent, wait, event;
42669
+
42670
+ run(function() {
42671
+ App = EmberApplication.create();
42672
+ App.setupForTesting();
42673
+ });
42674
+
42675
+ App.IndexView = EmberView.extend({
42676
+ template: Ember.Handlebars.compile('{{input type="text" id="outside-scope" class="input"}}<div id="limited">{{input type="text" id="inside-scope" class="input"}}</div>'),
42677
+
42678
+ didInsertElement: function() {
42679
+ this.$('.input').on('blur change', function(e) {
42680
+ event = e;
42681
+ });
42682
+ }
42683
+ });
42684
+
42685
+ App.injectTestHelpers();
42686
+
42687
+ run(App, App.advanceReadiness);
42688
+
42689
+ triggerEvent = App.testHelpers.triggerEvent;
42690
+ wait = App.testHelpers.wait;
42691
+
42692
+ wait().then(function() {
42693
+ return triggerEvent('.input', '#limited', 'blur');
42694
+ }).then(function() {
42695
+ equal(event.type, 'blur', 'correct event was triggered');
42696
+ equal(event.target.getAttribute('id'), 'inside-scope', 'triggered on the correct element');
42697
+ });
42698
+ });
42699
+
42700
+ test("`triggerEvent` can be used to trigger arbitrary events", function() {
42486
42701
  expect(2);
42487
42702
 
42488
42703
  var triggerEvent, wait, event;
@@ -42602,6 +42817,61 @@ define("ember-testing/tests/helpers_test",
42602
42817
  equal(App.__container__.lookup('route:user').get('controller.model.firstName'), 'Tom', "should equal 'Tom'.");
42603
42818
  });
42604
42819
  });
42820
+
42821
+ var originalVisitHelper, originalFindHelper, originalWaitHelper;
42822
+
42823
+ QUnit.module('can override built-in helpers', {
42824
+ setup: function(){
42825
+ originalVisitHelper = Test._helpers.visit;
42826
+ originalFindHelper = Test._helpers.find;
42827
+ originalWaitHelper = Test._helpers.wait;
42828
+
42829
+ jQuery('<style>#ember-testing-container { position: absolute; background: white; bottom: 0; right: 0; width: 640px; height: 384px; overflow: auto; z-index: 9999; border: 1px solid #ccc; } #ember-testing { zoom: 50%; }</style>').appendTo('head');
42830
+ jQuery('<div id="ember-testing-container"><div id="ember-testing"></div></div>').appendTo('body');
42831
+ run(function() {
42832
+ App = Ember.Application.create({
42833
+ rootElement: '#ember-testing'
42834
+ });
42835
+
42836
+ App.setupForTesting();
42837
+ });
42838
+ },
42839
+
42840
+ teardown: function(){
42841
+ App.removeTestHelpers();
42842
+ jQuery('#ember-testing-container, #ember-testing').remove();
42843
+ run(App, App.destroy);
42844
+ App = null;
42845
+
42846
+ Test._helpers.visit = originalVisitHelper;
42847
+ Test._helpers.find = originalFindHelper;
42848
+ Test._helpers.wait = originalWaitHelper;
42849
+ }
42850
+ });
42851
+
42852
+ test("can override visit helper", function(){
42853
+ expect(1);
42854
+
42855
+ Test.registerHelper('visit', function(){
42856
+ ok(true, 'custom visit helper was called');
42857
+ });
42858
+
42859
+ App.injectTestHelpers();
42860
+ App.testHelpers.visit();
42861
+ });
42862
+
42863
+ test("can override find helper", function(){
42864
+ expect(1);
42865
+
42866
+ Test.registerHelper('find', function(){
42867
+ ok(true, 'custom find helper was called');
42868
+
42869
+ return ['not empty array'];
42870
+ });
42871
+
42872
+ App.injectTestHelpers();
42873
+ App.testHelpers.findWithAssert('.who-cares');
42874
+ });
42605
42875
  });
42606
42876
  define("ember-testing/tests/helpers_test.jshint",
42607
42877
  [],
@@ -47252,7 +47522,7 @@ define("ember-views/tests/views/view/init_test",
47252
47522
  elementId: 'test',
47253
47523
  classNames: computed(function() {
47254
47524
  return ['className'];
47255
- }).volatile()
47525
+ })["volatile"]()
47256
47526
  });
47257
47527
  }, /Only arrays are allowed/i);
47258
47528
  });
@@ -47263,7 +47533,7 @@ define("ember-views/tests/views/view/init_test",
47263
47533
  elementId: 'test',
47264
47534
  classNameBindings: computed(function() {
47265
47535
  return ['className'];
47266
- }).volatile()
47536
+ })["volatile"]()
47267
47537
  });
47268
47538
  }, /Only arrays are allowed/i);
47269
47539
  });
@@ -49758,6 +50028,31 @@ define("ember/tests/component_registration_test.jshint",
49758
50028
  ok(true, 'ember/tests/component_registration_test.js should pass jshint.');
49759
50029
  });
49760
50030
  });
50031
+ define("ember/tests/global-api-test",
50032
+ ["ember"],
50033
+ function(__dependency1__) {
50034
+ "use strict";
50035
+
50036
+ QUnit.module("Global API Tests");
50037
+
50038
+ function confirmExport(property) {
50039
+ test('confirm ' + property + ' is exported', function() {
50040
+ ok(Ember.get(window, property) + ' is exported propertly');
50041
+ });
50042
+ }
50043
+
50044
+ confirmExport('Ember.DefaultResolver');
50045
+ confirmExport('Ember.generateController');
50046
+ });
50047
+ define("ember/tests/global-api-test.jshint",
50048
+ [],
50049
+ function() {
50050
+ "use strict";
50051
+ module('JSHint - ember/tests');
50052
+ test('ember/tests/global-api-test.js should pass jshint', function() {
50053
+ ok(true, 'ember/tests/global-api-test.js should pass jshint.');
50054
+ });
50055
+ });
49761
50056
  define("ember/tests/helpers/helper_registration_test",
49762
50057
  ["ember"],
49763
50058
  function(__dependency1__) {
@@ -51690,7 +51985,7 @@ define("ember/tests/routing/basic_test",
51690
51985
  var get = __dependency3__.get;
51691
51986
  var set = __dependency4__.set;
51692
51987
 
51693
- var Router, App, AppView, templates, router, container;
51988
+ var Router, App, AppView, templates, router, container, originalLoggerError;
51694
51989
  var compile = Ember.Handlebars.compile;
51695
51990
 
51696
51991
  function bootApplication() {
@@ -51755,6 +52050,8 @@ define("ember/tests/routing/basic_test",
51755
52050
  Ember.TEMPLATES.home = compile("<h3>Hours</h3>");
51756
52051
  Ember.TEMPLATES.homepage = compile("<h3>Megatroll</h3><p>{{home}}</p>");
51757
52052
  Ember.TEMPLATES.camelot = compile('<section><h3>Is a silly place</h3></section>');
52053
+
52054
+ originalLoggerError = Ember.Logger.error;
51758
52055
  });
51759
52056
  },
51760
52057
 
@@ -51764,6 +52061,7 @@ define("ember/tests/routing/basic_test",
51764
52061
  App = null;
51765
52062
 
51766
52063
  Ember.TEMPLATES = {};
52064
+ Ember.Logger.error = originalLoggerError;
51767
52065
  });
51768
52066
  }
51769
52067
  });
@@ -51905,6 +52203,31 @@ define("ember/tests/routing/basic_test",
51905
52203
  equal(Ember.$('h3:contains(Megatroll) + p:contains(Comes from homepage)', '#qunit-fixture').length, 1, "The homepage template was rendered");
51906
52204
  });
51907
52205
 
52206
+ test("An alternate template will pull in an alternate controller instead of controllerName", function() {
52207
+ Router.map(function() {
52208
+ this.route("home", { path: "/" });
52209
+ });
52210
+
52211
+ App.HomeRoute = Ember.Route.extend({
52212
+ controllerName: 'foo',
52213
+ renderTemplate: function() {
52214
+ this.render('homepage');
52215
+ }
52216
+ });
52217
+
52218
+ App.FooController = Ember.Controller.extend({
52219
+ home: "Comes from Foo"
52220
+ });
52221
+
52222
+ App.HomepageController = Ember.Controller.extend({
52223
+ home: "Comes from homepage"
52224
+ });
52225
+
52226
+ bootApplication();
52227
+
52228
+ equal(Ember.$('h3:contains(Megatroll) + p:contains(Comes from homepage)', '#qunit-fixture').length, 1, "The homepage template was rendered");
52229
+ });
52230
+
51908
52231
  test("The template will pull in an alternate controller via key/value", function() {
51909
52232
  Router.map(function() {
51910
52233
  this.route("homepage", { path: "/" });
@@ -52238,6 +52561,33 @@ define("ember/tests/routing/basic_test",
52238
52561
  equal(Ember.$('p', '#qunit-fixture').text(), "alternative home: foo", "The homepage template was rendered with data from the custom controller");
52239
52562
  });
52240
52563
 
52564
+ test("The route controller specified via controllerName is used in render even when a controller with the routeName is available", function() {
52565
+ Router.map(function() {
52566
+ this.route("home", { path: "/" });
52567
+ });
52568
+
52569
+ Ember.TEMPLATES.home = Ember.Handlebars.compile(
52570
+ "<p>home: {{myValue}}</p>"
52571
+ );
52572
+
52573
+ App.HomeRoute = Ember.Route.extend({
52574
+ controllerName: 'myController'
52575
+ });
52576
+
52577
+ container.register('controller:home', Ember.Controller.extend({
52578
+ myValue: "home"
52579
+ }));
52580
+
52581
+ container.register('controller:myController', Ember.Controller.extend({
52582
+ myValue: "myController"
52583
+ }));
52584
+
52585
+ bootApplication();
52586
+
52587
+ deepEqual(container.lookup('route:home').controller, container.lookup('controller:myController'), "route controller is set by controllerName");
52588
+ equal(Ember.$('p', '#qunit-fixture').text(), "home: myController", "The homepage template was rendered with data from the custom controller");
52589
+ });
52590
+
52241
52591
  test("The Homepage with a `setupController` hook modifying other controllers", function() {
52242
52592
  Router.map(function() {
52243
52593
  this.route("home", { path: "/" });
@@ -54712,8 +55062,7 @@ define("ember/tests/routing/basic_test",
54712
55062
 
54713
55063
  test("rejecting the model hooks promise with a non-error prints the `message` property", function() {
54714
55064
  var rejectedMessage = 'OMG!! SOOOOOO BAD!!!!',
54715
- rejectedStack = 'Yeah, buddy: stack gets printed too.',
54716
- originalLoggerError = Ember.Logger.error;
55065
+ rejectedStack = 'Yeah, buddy: stack gets printed too.';
54717
55066
 
54718
55067
  Router.map(function() {
54719
55068
  this.route("yippie", { path: "/" });
@@ -54732,13 +55081,9 @@ define("ember/tests/routing/basic_test",
54732
55081
  });
54733
55082
 
54734
55083
  bootApplication();
54735
-
54736
- Ember.Logger.error = originalLoggerError;
54737
55084
  });
54738
55085
 
54739
55086
  test("rejecting the model hooks promise with no reason still logs error", function() {
54740
- var originalLoggerError = Ember.Logger.error;
54741
-
54742
55087
  Router.map(function() {
54743
55088
  this.route("wowzers", { path: "/" });
54744
55089
  });
@@ -54754,8 +55099,6 @@ define("ember/tests/routing/basic_test",
54754
55099
  });
54755
55100
 
54756
55101
  bootApplication();
54757
-
54758
- Ember.Logger.error = originalLoggerError;
54759
55102
  });
54760
55103
 
54761
55104
  test("rejecting the model hooks promise with a string shows a good error", function() {
@@ -54837,6 +55180,9 @@ define("ember/tests/routing/basic_test",
54837
55180
 
54838
55181
 
54839
55182
  test("Errors in transitionTo within redirect hook are logged", function() {
55183
+ expect(2);
55184
+ var actual = [];
55185
+
54840
55186
  Router.map(function() {
54841
55187
  this.route('yondo', { path: "/" });
54842
55188
  this.route('stink-bomb');
@@ -54848,12 +55194,34 @@ define("ember/tests/routing/basic_test",
54848
55194
  }
54849
55195
  });
54850
55196
 
54851
- raises(function() {
54852
- bootApplication();
54853
- },
54854
- /More context objects were passed than there are dynamic segments for the route: stink-bomb/);
55197
+ Ember.Logger.error = function(message) {
55198
+ actual.push(message);
55199
+ };
55200
+
55201
+ bootApplication();
55202
+
55203
+ equal(actual[0], 'Error while processing route: yondo', 'source route is printed');
55204
+ ok(actual[1].match(/More context objects were passed than there are dynamic segments for the route: stink-bomb/), 'the error is printed');
54855
55205
  });
54856
55206
 
55207
+ test("Errors in transition show error template if available", function() {
55208
+ Ember.TEMPLATES.error = compile("<div id='error'>Error!</div>");
55209
+
55210
+ Router.map(function() {
55211
+ this.route('yondo', { path: "/" });
55212
+ this.route('stink-bomb');
55213
+ });
55214
+
55215
+ App.YondoRoute = Ember.Route.extend({
55216
+ redirect: function(){
55217
+ this.transitionTo('stink-bomb', {something: 'goes boom'});
55218
+ }
55219
+ });
55220
+
55221
+ bootApplication();
55222
+
55223
+ equal(Ember.$('#error').length, 1, "Error template was rendered.");
55224
+ });
54857
55225
 
54858
55226
 
54859
55227
  test("Route#resetController gets fired when changing models and exiting routes", function() {
@@ -54910,17 +55278,30 @@ define("ember/tests/routing/basic_test.jshint",
54910
55278
  });
54911
55279
  });
54912
55280
  define("ember/tests/routing/query_params_test",
54913
- ["ember","ember-metal/enumerable_utils"],
54914
- function(__dependency1__, __dependency2__) {
55281
+ ["ember","ember-metal/enumerable_utils","ember-metal/platform"],
55282
+ function(__dependency1__, __dependency2__, __dependency3__) {
54915
55283
  "use strict";
54916
55284
  var forEach = __dependency2__.forEach;
54917
55285
  var map = __dependency2__.map;
55286
+ var platform = __dependency3__.platform;
54918
55287
 
54919
55288
  var Router, App, AppView, templates, router, container;
54920
55289
  var get = Ember.get;
54921
55290
  var set = Ember.set;
54922
55291
  var compile = Ember.Handlebars.compile;
54923
55292
 
55293
+ function withoutMeta(object) {
55294
+ if (platform.defineProperty.isSimulated) {
55295
+ var newObject = Ember.$.extend(true, {}, object);
55296
+
55297
+ delete newObject['__ember_meta__'];
55298
+
55299
+ return newObject;
55300
+ } else {
55301
+ return object;
55302
+ }
55303
+ }
55304
+
54924
55305
  function bootApplication() {
54925
55306
  router = container.lookup('router:main');
54926
55307
  Ember.run(App, 'advanceReadiness');
@@ -55949,7 +56330,7 @@ define("ember/tests/routing/query_params_test",
55949
56330
 
55950
56331
  App.IndexRoute = Ember.Route.extend({
55951
56332
  setupController: function(controller, model) {
55952
- deepEqual(model, { woot: true }, "index route inherited model route from parent route");
56333
+ deepEqual(withoutMeta(model), { woot: true }, "index route inherited model route from parent route");
55953
56334
  }
55954
56335
  });
55955
56336
 
@@ -56108,7 +56489,7 @@ define("ember/tests/routing/query_params_test",
56108
56489
 
56109
56490
  equal(this.controller.get('q'), 'wat');
56110
56491
  equal(this.controller.get('z'), 0);
56111
- deepEqual(this.controller.get('model'), { id: 'a-2' });
56492
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-2' });
56112
56493
  equal(this.$link1.attr('href'), '/a/a-1?q=lol');
56113
56494
  equal(this.$link2.attr('href'), '/a/a-2');
56114
56495
  equal(this.$link3.attr('href'), '/a/a-3');
@@ -56121,7 +56502,7 @@ define("ember/tests/routing/query_params_test",
56121
56502
  this.expectedModelHookParams = { id: 'a-1', q: 'lol', z: 0 };
56122
56503
  handleURL('/a/a-1?q=lol');
56123
56504
 
56124
- deepEqual(this.controller.get('model'), { id: 'a-1' });
56505
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-1' });
56125
56506
  equal(this.controller.get('q'), 'lol');
56126
56507
  equal(this.controller.get('z'), 0);
56127
56508
  equal(this.$link1.attr('href'), '/a/a-1?q=lol');
@@ -56131,7 +56512,7 @@ define("ember/tests/routing/query_params_test",
56131
56512
  this.expectedModelHookParams = { id: 'a-2', q: 'lol', z: 0 };
56132
56513
  handleURL('/a/a-2?q=lol');
56133
56514
 
56134
- deepEqual(this.controller.get('model'), { id: 'a-2' }, "controller's model changed to a-2");
56515
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-2' }, "controller's model changed to a-2");
56135
56516
  equal(this.controller.get('q'), 'lol');
56136
56517
  equal(this.controller.get('z'), 0);
56137
56518
  equal(this.$link1.attr('href'), '/a/a-1?q=lol');
@@ -56157,7 +56538,7 @@ define("ember/tests/routing/query_params_test",
56157
56538
  this.expectedModelHookParams = { id: 'a-1', q: 'wat', z: 0 };
56158
56539
  Ember.run(router, 'transitionTo', 'article', 'a-1');
56159
56540
 
56160
- deepEqual(this.controller.get('model'), { id: 'a-1' });
56541
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-1' });
56161
56542
  equal(this.controller.get('q'), 'wat');
56162
56543
  equal(this.controller.get('z'), 0);
56163
56544
  equal(this.$link1.attr('href'), '/a/a-1');
@@ -56167,7 +56548,7 @@ define("ember/tests/routing/query_params_test",
56167
56548
  this.expectedModelHookParams = { id: 'a-2', q: 'lol', z: 0 };
56168
56549
  Ember.run(router, 'transitionTo', 'article', 'a-2', { queryParams: { q: 'lol' } });
56169
56550
 
56170
- deepEqual(this.controller.get('model'), { id: 'a-2' });
56551
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-2' });
56171
56552
  equal(this.controller.get('q'), 'lol');
56172
56553
  equal(this.controller.get('z'), 0);
56173
56554
  equal(this.$link1.attr('href'), '/a/a-1');
@@ -56177,7 +56558,7 @@ define("ember/tests/routing/query_params_test",
56177
56558
  this.expectedModelHookParams = { id: 'a-3', q: 'hay', z: 0 };
56178
56559
  Ember.run(router, 'transitionTo', 'article', 'a-3', { queryParams: { q: 'hay' } });
56179
56560
 
56180
- deepEqual(this.controller.get('model'), { id: 'a-3' });
56561
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-3' });
56181
56562
  equal(this.controller.get('q'), 'hay');
56182
56563
  equal(this.controller.get('z'), 0);
56183
56564
  equal(this.$link1.attr('href'), '/a/a-1');
@@ -56187,7 +56568,7 @@ define("ember/tests/routing/query_params_test",
56187
56568
  this.expectedModelHookParams = { id: 'a-2', q: 'lol', z: 1 };
56188
56569
  Ember.run(router, 'transitionTo', 'article', 'a-2', { queryParams: { z: 1 } });
56189
56570
 
56190
- deepEqual(this.controller.get('model'), { id: 'a-2' });
56571
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-2' });
56191
56572
  equal(this.controller.get('q'), 'lol');
56192
56573
  equal(this.controller.get('z'), 1);
56193
56574
  equal(this.$link1.attr('href'), '/a/a-1');
@@ -56215,7 +56596,7 @@ define("ember/tests/routing/query_params_test",
56215
56596
 
56216
56597
  equal(this.controller.get('q'), 'lol');
56217
56598
  equal(this.controller.get('z'), 0);
56218
- deepEqual(this.controller.get('model'), { id: 'a-2' });
56599
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-2' });
56219
56600
 
56220
56601
  equal(this.$link1.attr('href'), '/a/a-1?q=lol');
56221
56602
  equal(this.$link2.attr('href'), '/a/a-2?q=lol');
@@ -56224,7 +56605,7 @@ define("ember/tests/routing/query_params_test",
56224
56605
  this.expectedModelHookParams = { id: 'a-3', q: 'haha', z: 123 };
56225
56606
  handleURL('/a/a-3?q=haha&z=123');
56226
56607
 
56227
- deepEqual(this.controller.get('model'), { id: 'a-3' });
56608
+ deepEqual(withoutMeta(this.controller.get('model')), { id: 'a-3' });
56228
56609
  equal(this.controller.get('q'), 'haha');
56229
56610
  equal(this.controller.get('z'), 123);
56230
56611