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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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