ember-source 1.11.0.beta.5 → 1.11.0
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.
Potentially problematic release.
This version of ember-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +42 -34
- data/dist/ember-template-compiler.js +35 -50
- data/dist/ember-testing.js +23 -41
- data/dist/ember-tests.js +960 -213
- data/dist/ember-tests.prod.js +1012 -244
- data/dist/ember.debug.cjs.js +470 -276
- data/dist/ember.debug.js +470 -276
- data/dist/ember.js +470 -276
- data/dist/ember.min.js +19 -13
- data/dist/ember.prod.js +330 -199
- metadata +4 -4
    
        data/dist/ember-testing.js
    CHANGED
    
    | @@ -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.11.0 | 
| 8 | 
            +
             * @version   1.11.0
         | 
| 9 9 | 
             
             */
         | 
| 10 10 |  | 
| 11 11 | 
             
            (function() {
         | 
| @@ -428,13 +428,12 @@ enifed('ember-testing/adapters/qunit', ['exports', 'ember-testing/adapters/adapt | |
| 428 428 | 
             
              });
         | 
| 429 429 |  | 
| 430 430 | 
             
            });
         | 
| 431 | 
            -
            enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test'], function (Ember, property_get, EmberError, run, jQuery, Test) {
         | 
| 431 | 
            +
            enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test', 'ember-runtime/ext/rsvp'], function (Ember, property_get, EmberError, run, jQuery, Test, RSVP) {
         | 
| 432 432 |  | 
| 433 433 | 
             
              'use strict';
         | 
| 434 434 |  | 
| 435 435 | 
             
              var helper = Test['default'].registerHelper;
         | 
| 436 436 | 
             
              var asyncHelper = Test['default'].registerAsyncHelper;
         | 
| 437 | 
            -
              var countAsync = 0;
         | 
| 438 437 |  | 
| 439 438 | 
             
              function currentRouteName(app) {
         | 
| 440 439 | 
             
                var appController = app.__container__.lookup('controller:application');
         | 
| @@ -621,12 +620,7 @@ enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', | |
| 621 620 | 
             
              }
         | 
| 622 621 |  | 
| 623 622 | 
             
              function wait(app, value) {
         | 
| 624 | 
            -
                return  | 
| 625 | 
            -
                  // If this is the first async promise, kick off the async test
         | 
| 626 | 
            -
                  if (++countAsync === 1) {
         | 
| 627 | 
            -
                    Test['default'].adapter.asyncStart();
         | 
| 628 | 
            -
                  }
         | 
| 629 | 
            -
             | 
| 623 | 
            +
                return new RSVP['default'].Promise(function(resolve) {
         | 
| 630 624 | 
             
                  // Every 10ms, poll for the async thing to have finished
         | 
| 631 625 | 
             
                  var watcher = setInterval(function() {
         | 
| 632 626 | 
             
                    var router = app.__container__.lookup('router:main');
         | 
| @@ -650,11 +644,6 @@ enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', | |
| 650 644 | 
             
                    // Stop polling
         | 
| 651 645 | 
             
                    clearInterval(watcher);
         | 
| 652 646 |  | 
| 653 | 
            -
                    // If this is the last async promise, end the async test
         | 
| 654 | 
            -
                    if (--countAsync === 0) {
         | 
| 655 | 
            -
                      Test['default'].adapter.asyncEnd();
         | 
| 656 | 
            -
                    }
         | 
| 657 | 
            -
             | 
| 658 647 | 
             
                    // Synchronously resolve the promise
         | 
| 659 648 | 
             
                    run['default'](null, resolve, value);
         | 
| 660 649 | 
             
                  }, 10);
         | 
| @@ -1306,7 +1295,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1306 1295 |  | 
| 1307 1296 | 
             
                return function() {
         | 
| 1308 1297 | 
             
                  var args = slice.call(arguments);
         | 
| 1309 | 
            -
                  var lastPromise | 
| 1298 | 
            +
                  var lastPromise;
         | 
| 1310 1299 |  | 
| 1311 1300 | 
             
                  args.unshift(app);
         | 
| 1312 1301 |  | 
| @@ -1317,35 +1306,28 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1317 1306 | 
             
                    return fn.apply(app, args);
         | 
| 1318 1307 | 
             
                  }
         | 
| 1319 1308 |  | 
| 1320 | 
            -
                   | 
| 1321 | 
            -
                     | 
| 1322 | 
            -
             | 
| 1323 | 
            -
                  } else {
         | 
| 1324 | 
            -
                    // wait for last helper's promise to resolve and then
         | 
| 1325 | 
            -
                    // execute. To be safe, we need to tell the adapter we're going
         | 
| 1326 | 
            -
                    // asynchronous here, because fn may not be invoked before we
         | 
| 1327 | 
            -
                    // return.
         | 
| 1328 | 
            -
                    Test.adapter.asyncStart();
         | 
| 1329 | 
            -
                    run(function() {
         | 
| 1330 | 
            -
                      lastPromise = Test.resolve(lastPromise).then(function() {
         | 
| 1331 | 
            -
                        try {
         | 
| 1332 | 
            -
                          return fn.apply(app, args);
         | 
| 1333 | 
            -
                        } finally {
         | 
| 1334 | 
            -
                          Test.adapter.asyncEnd();
         | 
| 1335 | 
            -
                        }
         | 
| 1336 | 
            -
                      });
         | 
| 1337 | 
            -
                    });
         | 
| 1338 | 
            -
                  }
         | 
| 1309 | 
            +
                  lastPromise = run(function() {
         | 
| 1310 | 
            +
                    return Test.resolve(Test.lastPromise);
         | 
| 1311 | 
            +
                  });
         | 
| 1339 1312 |  | 
| 1340 | 
            -
                   | 
| 1313 | 
            +
                  // wait for last helper's promise to resolve and then
         | 
| 1314 | 
            +
                  // execute. To be safe, we need to tell the adapter we're going
         | 
| 1315 | 
            +
                  // asynchronous here, because fn may not be invoked before we
         | 
| 1316 | 
            +
                  // return.
         | 
| 1317 | 
            +
                  Test.adapter.asyncStart();
         | 
| 1318 | 
            +
                  return lastPromise.then(function() {
         | 
| 1319 | 
            +
                    return fn.apply(app, args);
         | 
| 1320 | 
            +
                  })["finally"](function() {
         | 
| 1321 | 
            +
                    Test.adapter.asyncEnd();
         | 
| 1322 | 
            +
                  });
         | 
| 1341 1323 | 
             
                };
         | 
| 1342 1324 | 
             
              }
         | 
| 1343 1325 |  | 
| 1344 1326 | 
             
              function run(fn) {
         | 
| 1345 1327 | 
             
                if (!emberRun['default'].currentRunLoop) {
         | 
| 1346 | 
            -
                  emberRun['default'](fn);
         | 
| 1328 | 
            +
                  return emberRun['default'](fn);
         | 
| 1347 1329 | 
             
                } else {
         | 
| 1348 | 
            -
                  fn();
         | 
| 1330 | 
            +
                  return fn();
         | 
| 1349 1331 | 
             
                }
         | 
| 1350 1332 | 
             
              }
         | 
| 1351 1333 |  | 
| @@ -1509,6 +1491,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1509 1491 |  | 
| 1510 1492 | 
             
              Test.Promise.prototype = create['default'](RSVP['default'].Promise.prototype);
         | 
| 1511 1493 | 
             
              Test.Promise.prototype.constructor = Test.Promise;
         | 
| 1494 | 
            +
              Test.Promise.resolve = Test.resolve;
         | 
| 1512 1495 |  | 
| 1513 1496 | 
             
              // Patch `then` to isolate async methods
         | 
| 1514 1497 | 
             
              // specifically `Ember.Test.lastPromise`
         | 
| @@ -1525,7 +1508,6 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1525 1508 | 
             
              // 1. Set `Ember.Test.lastPromise` to null
         | 
| 1526 1509 | 
             
              // 2. Invoke method
         | 
| 1527 1510 | 
             
              // 3. Return the last promise created during method
         | 
| 1528 | 
            -
              // 4. Restore `Ember.Test.lastPromise` to original value
         | 
| 1529 1511 | 
             
              function isolate(fn, val) {
         | 
| 1530 1512 | 
             
                var value, lastPromise;
         | 
| 1531 1513 |  | 
| @@ -1535,6 +1517,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1535 1517 | 
             
                value = fn(val);
         | 
| 1536 1518 |  | 
| 1537 1519 | 
             
                lastPromise = Test.lastPromise;
         | 
| 1520 | 
            +
                Test.lastPromise = null;
         | 
| 1538 1521 |  | 
| 1539 1522 | 
             
                // If the method returned a promise
         | 
| 1540 1523 | 
             
                // return that promise. If not,
         | 
| @@ -1542,12 +1525,11 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo | |
| 1542 1525 | 
             
                if ((value && (value instanceof Test.Promise)) || !lastPromise) {
         | 
| 1543 1526 | 
             
                  return value;
         | 
| 1544 1527 | 
             
                } else {
         | 
| 1545 | 
            -
                  run(function() {
         | 
| 1546 | 
            -
                     | 
| 1528 | 
            +
                  return run(function() {
         | 
| 1529 | 
            +
                    return Test.resolve(lastPromise).then(function() {
         | 
| 1547 1530 | 
             
                      return value;
         | 
| 1548 1531 | 
             
                    });
         | 
| 1549 1532 | 
             
                  });
         | 
| 1550 | 
            -
                  return lastPromise;
         | 
| 1551 1533 | 
             
                }
         | 
| 1552 1534 | 
             
              }
         | 
| 1553 1535 |  | 
    
        data/dist/ember-tests.js
    CHANGED
    
    | @@ -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.11.0 | 
| 8 | 
            +
             * @version   1.11.0
         | 
| 9 9 | 
             
             */
         | 
| 10 10 |  | 
| 11 11 | 
             
            (function() {
         | 
| @@ -3406,6 +3406,14 @@ enifed('ember-debug/tests/main_test', ['ember-metal/core'], function (Ember) { | |
| 3406 3406 |  | 
| 3407 3407 | 
             
              QUnit.module('ember-debug');
         | 
| 3408 3408 |  | 
| 3409 | 
            +
              QUnit.test('Ember.deprecate throws deprecation with one argument', function() {
         | 
| 3410 | 
            +
                expect(1);
         | 
| 3411 | 
            +
             | 
| 3412 | 
            +
                throws(function() {
         | 
| 3413 | 
            +
                  Ember['default'].deprecate('Deprecation is thrown');
         | 
| 3414 | 
            +
                });
         | 
| 3415 | 
            +
              });
         | 
| 3416 | 
            +
             | 
| 3409 3417 | 
             
              QUnit.test('Ember.deprecate throws deprecation if second argument is falsy', function() {
         | 
| 3410 3418 | 
             
                expect(3);
         | 
| 3411 3419 |  | 
| @@ -5390,8 +5398,8 @@ enifed('ember-htmlbars/tests/attr_nodes/boolean_test', ['ember-views/views/view' | |
| 5390 5398 | 
             
                run['default'](function() { view.appendTo('#qunit-fixture'); });
         | 
| 5391 5399 | 
             
              }
         | 
| 5392 5400 |  | 
| 5393 | 
            -
              
         | 
| 5394 5401 | 
             
              // jscs:disable validateIndentation
         | 
| 5402 | 
            +
              
         | 
| 5395 5403 |  | 
| 5396 5404 | 
             
              QUnit.module("ember-htmlbars: boolean attribute", {
         | 
| 5397 5405 | 
             
                teardown: function() {
         | 
| @@ -5475,9 +5483,8 @@ enifed('ember-htmlbars/tests/attr_nodes/boolean_test', ['ember-views/views/view' | |
| 5475 5483 | 
             
                      'boolean property is set false');
         | 
| 5476 5484 | 
             
              });
         | 
| 5477 5485 |  | 
| 5478 | 
            -
             | 
| 5479 | 
            -
              // jscs:enable validateIndentation
         | 
| 5480 5486 |  | 
| 5487 | 
            +
              // jscs:enable validateIndentation
         | 
| 5481 5488 |  | 
| 5482 5489 | 
             
            });
         | 
| 5483 5490 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/boolean_test.jscs-test', function () {
         | 
| @@ -5515,8 +5522,8 @@ enifed('ember-htmlbars/tests/attr_nodes/class_test', ['ember-views/views/view', | |
| 5515 5522 | 
             
                isInlineIfEnabled = true;
         | 
| 5516 5523 |  | 
| 5517 5524 |  | 
| 5518 | 
            -
              
         | 
| 5519 5525 | 
             
              // jscs:disable validateIndentation
         | 
| 5526 | 
            +
              
         | 
| 5520 5527 |  | 
| 5521 5528 | 
             
              QUnit.module("ember-htmlbars: class attribute", {
         | 
| 5522 5529 | 
             
                teardown: function() {
         | 
| @@ -5652,8 +5659,8 @@ enifed('ember-htmlbars/tests/attr_nodes/class_test', ['ember-views/views/view', | |
| 5652 5659 | 
             
                ok(view.element.firstChild.className, 'r b a c', 'classes are in the right order');
         | 
| 5653 5660 | 
             
              });
         | 
| 5654 5661 |  | 
| 5655 | 
            -
              // jscs:enable validateIndentation
         | 
| 5656 5662 |  | 
| 5663 | 
            +
              // jscs:enable validateIndentation
         | 
| 5657 5664 |  | 
| 5658 5665 | 
             
            });
         | 
| 5659 5666 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/class_test.jscs-test', function () {
         | 
| @@ -5965,8 +5972,8 @@ enifed('ember-htmlbars/tests/attr_nodes/href_test', ['ember-views/views/view', ' | |
| 5965 5972 | 
             
                run['default'](function() { view.appendTo('#qunit-fixture'); });
         | 
| 5966 5973 | 
             
              }
         | 
| 5967 5974 |  | 
| 5968 | 
            -
              
         | 
| 5969 5975 | 
             
              // jscs:disable validateIndentation
         | 
| 5976 | 
            +
              
         | 
| 5970 5977 |  | 
| 5971 5978 | 
             
              QUnit.module("ember-htmlbars: href attribute", {
         | 
| 5972 5979 | 
             
                teardown: function() {
         | 
| @@ -5987,8 +5994,8 @@ enifed('ember-htmlbars/tests/attr_nodes/href_test', ['ember-views/views/view', ' | |
| 5987 5994 | 
             
                               "attribute is output");
         | 
| 5988 5995 | 
             
              });
         | 
| 5989 5996 |  | 
| 5990 | 
            -
              // jscs:enable validateIndentation
         | 
| 5991 5997 |  | 
| 5998 | 
            +
              // jscs:enable validateIndentation
         | 
| 5992 5999 |  | 
| 5993 6000 | 
             
            });
         | 
| 5994 6001 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/href_test.jscs-test', function () {
         | 
| @@ -6028,8 +6035,8 @@ enifed('ember-htmlbars/tests/attr_nodes/property_test', ['ember-views/views/view | |
| 6028 6035 | 
             
                return input.maxLength === 0;
         | 
| 6029 6036 | 
             
              }
         | 
| 6030 6037 |  | 
| 6031 | 
            -
              
         | 
| 6032 6038 | 
             
              // jscs:disable validateIndentation
         | 
| 6039 | 
            +
              
         | 
| 6033 6040 |  | 
| 6034 6041 | 
             
              QUnit.module("ember-htmlbars: property", {
         | 
| 6035 6042 | 
             
                teardown: function() {
         | 
| @@ -6082,8 +6089,8 @@ enifed('ember-htmlbars/tests/attr_nodes/property_test', ['ember-views/views/view | |
| 6082 6089 | 
             
                ok(true, "no legacy assertion prohibited setting an array");
         | 
| 6083 6090 | 
             
              });
         | 
| 6084 6091 |  | 
| 6085 | 
            -
              // jscs:enable validateIndentation
         | 
| 6086 6092 |  | 
| 6093 | 
            +
              // jscs:enable validateIndentation
         | 
| 6087 6094 |  | 
| 6088 6095 | 
             
            });
         | 
| 6089 6096 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/property_test.jscs-test', function () {
         | 
| @@ -6120,26 +6127,41 @@ enifed('ember-htmlbars/tests/attr_nodes/sanitized_test', ['ember-views/views/vie | |
| 6120 6127 | 
             
                }
         | 
| 6121 6128 | 
             
              });
         | 
| 6122 6129 |  | 
| 6123 | 
            -
              
         | 
| 6124 6130 | 
             
              // jscs:disable validateIndentation
         | 
| 6131 | 
            +
              // jscs:disable disallowTrailingWhitespace
         | 
| 6132 | 
            +
              
         | 
| 6125 6133 |  | 
| 6126 6134 | 
             
              var badTags = [
         | 
| 6127 6135 | 
             
                { tag: 'a', attr: 'href',
         | 
| 6128 6136 | 
             
                  unquotedTemplate: compile['default']("<a href={{url}}></a>"),
         | 
| 6129 6137 | 
             
                  quotedTemplate: compile['default']("<a href='{{url}}'></a>"),
         | 
| 6130 6138 | 
             
                  multipartTemplate: compile['default']("<a href='{{protocol}}{{path}}'></a>") },
         | 
| 6139 | 
            +
             | 
| 6140 | 
            +
                { tag: 'base', attr: 'href',
         | 
| 6141 | 
            +
                  unquotedTemplate: compile['default']("<base href={{url}} />"),
         | 
| 6142 | 
            +
                  quotedTemplate: compile['default']("<base href='{{url}}'/>"),
         | 
| 6143 | 
            +
                  multipartTemplate: compile['default']("<base href='{{protocol}}{{path}}'/>") },
         | 
| 6144 | 
            +
             | 
| 6145 | 
            +
                { tag: 'embed', attr: 'src',
         | 
| 6146 | 
            +
                  unquotedTemplate: compile['default']("<embed src={{url}} />"),
         | 
| 6147 | 
            +
                  quotedTemplate: compile['default']("<embed src='{{url}}'/>"),
         | 
| 6148 | 
            +
                  multipartTemplate: compile['default']("<embed src='{{protocol}}{{path}}'/>") },
         | 
| 6149 | 
            +
             | 
| 6131 6150 | 
             
                { tag: 'body', attr: 'background',
         | 
| 6132 6151 | 
             
                  unquotedTemplate: compile['default']("<body background={{url}}></body>"),
         | 
| 6133 6152 | 
             
                  quotedTemplate: compile['default']("<body background='{{url}}'></body>"),
         | 
| 6134 6153 | 
             
                  multipartTemplate: compile['default']("<body background='{{protocol}}{{path}}'></body>") },
         | 
| 6154 | 
            +
             | 
| 6135 6155 | 
             
                { tag: 'link', attr: 'href',
         | 
| 6136 6156 | 
             
                  unquotedTemplate: compile['default']("<link href={{url}}>"),
         | 
| 6137 6157 | 
             
                  quotedTemplate: compile['default']("<link href='{{url}}'>"),
         | 
| 6138 6158 | 
             
                  multipartTemplate: compile['default']("<link href='{{protocol}}{{path}}'>") },
         | 
| 6159 | 
            +
             | 
| 6139 6160 | 
             
                { tag: 'img', attr: 'src',
         | 
| 6140 6161 | 
             
                  unquotedTemplate: compile['default']("<img src={{url}}>"),
         | 
| 6141 6162 | 
             
                  quotedTemplate: compile['default']("<img src='{{url}}'>"),
         | 
| 6142 6163 | 
             
                  multipartTemplate: compile['default']("<img src='{{protocol}}{{path}}'>") },
         | 
| 6164 | 
            +
             | 
| 6143 6165 | 
             
                { tag: 'iframe', attr: 'src',
         | 
| 6144 6166 | 
             
                  // Setting an iframe with a bad protocol results in the browser
         | 
| 6145 6167 | 
             
                  // being redirected. in IE8. Skip the iframe tests on that platform.
         | 
| @@ -6214,8 +6236,9 @@ enifed('ember-htmlbars/tests/attr_nodes/sanitized_test', ['ember-views/views/vie | |
| 6214 6236 | 
             
                })(); //jshint ignore:line
         | 
| 6215 6237 | 
             
              }
         | 
| 6216 6238 |  | 
| 6217 | 
            -
              // jscs:enable validateIndentation
         | 
| 6218 6239 |  | 
| 6240 | 
            +
              // jscs:enable disallowTrailingWhitespace
         | 
| 6241 | 
            +
              // jscs:enable validateIndentation
         | 
| 6219 6242 |  | 
| 6220 6243 | 
             
            });
         | 
| 6221 6244 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/sanitized_test.jscs-test', function () {
         | 
| @@ -6237,6 +6260,104 @@ enifed('ember-htmlbars/tests/attr_nodes/sanitized_test.jshint', function () { | |
| 6237 6260 | 
             
                ok(true, 'ember-htmlbars/tests/attr_nodes/sanitized_test.js should pass jshint.'); 
         | 
| 6238 6261 | 
             
              });
         | 
| 6239 6262 |  | 
| 6263 | 
            +
            });
         | 
| 6264 | 
            +
            enifed('ember-htmlbars/tests/attr_nodes/style_test', ['ember-metal/core', 'ember-views/views/view', 'ember-template-compiler/system/compile', 'ember-htmlbars/utils/string', 'ember-runtime/tests/utils', 'ember-views/attr_nodes/attr_node'], function (Ember, EmberView, compile, string, utils, attr_node) {
         | 
| 6265 | 
            +
             | 
| 6266 | 
            +
              'use strict';
         | 
| 6267 | 
            +
             | 
| 6268 | 
            +
              /* globals EmberDev */
         | 
| 6269 | 
            +
             | 
| 6270 | 
            +
              var view, originalWarn, warnings;
         | 
| 6271 | 
            +
             | 
| 6272 | 
            +
              QUnit.module("ember-htmlbars: style attribute", {
         | 
| 6273 | 
            +
                setup: function() {
         | 
| 6274 | 
            +
                  warnings = [];
         | 
| 6275 | 
            +
                  originalWarn = Ember['default'].warn;
         | 
| 6276 | 
            +
                  Ember['default'].warn = function(message, test) {
         | 
| 6277 | 
            +
                    if (!test) {
         | 
| 6278 | 
            +
                      warnings.push(message);
         | 
| 6279 | 
            +
                    }
         | 
| 6280 | 
            +
                  };
         | 
| 6281 | 
            +
                },
         | 
| 6282 | 
            +
             | 
| 6283 | 
            +
                teardown: function() {
         | 
| 6284 | 
            +
                  utils.runDestroy(view);
         | 
| 6285 | 
            +
                  Ember['default'].warn = originalWarn;
         | 
| 6286 | 
            +
                }
         | 
| 6287 | 
            +
              });
         | 
| 6288 | 
            +
             | 
| 6289 | 
            +
              // jscs:disable validateIndentation
         | 
| 6290 | 
            +
              
         | 
| 6291 | 
            +
             | 
| 6292 | 
            +
              if (!EmberDev.runningProdBuild) {
         | 
| 6293 | 
            +
                QUnit.test('specifying `<div style={{userValue}}></div>` generates a warning', function() {
         | 
| 6294 | 
            +
                  view = EmberView['default'].create({
         | 
| 6295 | 
            +
                    userValue: 'width: 42px',
         | 
| 6296 | 
            +
                    template: compile['default']('<div style={{view.userValue}}></div>')
         | 
| 6297 | 
            +
                  });
         | 
| 6298 | 
            +
             | 
| 6299 | 
            +
                  utils.runAppend(view);
         | 
| 6300 | 
            +
             | 
| 6301 | 
            +
                  deepEqual(warnings, [attr_node.styleWarning]);
         | 
| 6302 | 
            +
                });
         | 
| 6303 | 
            +
             | 
| 6304 | 
            +
                QUnit.test('specifying `attributeBindings: ["style"]` generates a warning', function() {
         | 
| 6305 | 
            +
                  view = EmberView['default'].create({
         | 
| 6306 | 
            +
                    userValue: 'width: 42px',
         | 
| 6307 | 
            +
                    template: compile['default']('<div style={{view.userValue}}></div>')
         | 
| 6308 | 
            +
                  });
         | 
| 6309 | 
            +
             | 
| 6310 | 
            +
                  utils.runAppend(view);
         | 
| 6311 | 
            +
             | 
| 6312 | 
            +
                  deepEqual(warnings, [attr_node.styleWarning]);
         | 
| 6313 | 
            +
                });
         | 
| 6314 | 
            +
              }
         | 
| 6315 | 
            +
             | 
| 6316 | 
            +
              QUnit.test('specifying `<div style={{{userValue}}}></div>` works properly without a warning', function() {
         | 
| 6317 | 
            +
                view = EmberView['default'].create({
         | 
| 6318 | 
            +
                  userValue: 'width: 42px',
         | 
| 6319 | 
            +
                  template: compile['default']('<div style={{{view.userValue}}}></div>')
         | 
| 6320 | 
            +
                });
         | 
| 6321 | 
            +
             | 
| 6322 | 
            +
                utils.runAppend(view);
         | 
| 6323 | 
            +
             | 
| 6324 | 
            +
                deepEqual(warnings, [ ]);
         | 
| 6325 | 
            +
              });
         | 
| 6326 | 
            +
             | 
| 6327 | 
            +
              QUnit.test('specifying `<div style={{userValue}}></div>` works properly with a SafeString', function() {
         | 
| 6328 | 
            +
                view = EmberView['default'].create({
         | 
| 6329 | 
            +
                  userValue: new string.SafeString('width: 42px'),
         | 
| 6330 | 
            +
                  template: compile['default']('<div style={{view.userValue}}></div>')
         | 
| 6331 | 
            +
                });
         | 
| 6332 | 
            +
             | 
| 6333 | 
            +
                utils.runAppend(view);
         | 
| 6334 | 
            +
             | 
| 6335 | 
            +
                deepEqual(warnings, [ ]);
         | 
| 6336 | 
            +
              });
         | 
| 6337 | 
            +
             | 
| 6338 | 
            +
              
         | 
| 6339 | 
            +
              // jscs:enable validateIndentation
         | 
| 6340 | 
            +
             | 
| 6341 | 
            +
            });
         | 
| 6342 | 
            +
            enifed('ember-htmlbars/tests/attr_nodes/style_test.jscs-test', function () {
         | 
| 6343 | 
            +
             | 
| 6344 | 
            +
              'use strict';
         | 
| 6345 | 
            +
             | 
| 6346 | 
            +
              module('JSCS - ember-htmlbars/tests/attr_nodes');
         | 
| 6347 | 
            +
              test('ember-htmlbars/tests/attr_nodes/style_test.js should pass jscs', function() {
         | 
| 6348 | 
            +
                ok(true, 'ember-htmlbars/tests/attr_nodes/style_test.js should pass jscs.');
         | 
| 6349 | 
            +
              });
         | 
| 6350 | 
            +
             | 
| 6351 | 
            +
            });
         | 
| 6352 | 
            +
            enifed('ember-htmlbars/tests/attr_nodes/style_test.jshint', function () {
         | 
| 6353 | 
            +
             | 
| 6354 | 
            +
              'use strict';
         | 
| 6355 | 
            +
             | 
| 6356 | 
            +
              module('JSHint - ember-htmlbars/tests/attr_nodes');
         | 
| 6357 | 
            +
              test('ember-htmlbars/tests/attr_nodes/style_test.js should pass jshint', function() { 
         | 
| 6358 | 
            +
                ok(true, 'ember-htmlbars/tests/attr_nodes/style_test.js should pass jshint.'); 
         | 
| 6359 | 
            +
              });
         | 
| 6360 | 
            +
             | 
| 6240 6361 | 
             
            });
         | 
| 6241 6362 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/svg_test', ['ember-views/views/view', 'ember-metal/run_loop', 'ember-template-compiler/system/compile', 'htmlbars-test-helpers'], function (EmberView, run, compile, htmlbars_test_helpers) {
         | 
| 6242 6363 |  | 
| @@ -6248,8 +6369,8 @@ enifed('ember-htmlbars/tests/attr_nodes/svg_test', ['ember-views/views/view', 'e | |
| 6248 6369 | 
             
                run['default'](function() { view.appendTo('#qunit-fixture'); });
         | 
| 6249 6370 | 
             
              }
         | 
| 6250 6371 |  | 
| 6251 | 
            -
              
         | 
| 6252 6372 | 
             
              // jscs:disable validateIndentation
         | 
| 6373 | 
            +
              
         | 
| 6253 6374 |  | 
| 6254 6375 | 
             
              QUnit.module("ember-htmlbars: svg attribute", {
         | 
| 6255 6376 | 
             
                teardown: function() {
         | 
| @@ -6314,8 +6435,8 @@ enifed('ember-htmlbars/tests/attr_nodes/svg_test', ['ember-views/views/view', 'e | |
| 6314 6435 | 
             
                htmlbars_test_helpers.equalInnerHTML(view.element, '<svg class="red tall"></svg>', "attribute is output");
         | 
| 6315 6436 | 
             
              });
         | 
| 6316 6437 |  | 
| 6317 | 
            -
              // jscs:enable validateIndentation
         | 
| 6318 6438 |  | 
| 6439 | 
            +
              // jscs:enable validateIndentation
         | 
| 6319 6440 |  | 
| 6320 6441 | 
             
            });
         | 
| 6321 6442 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/svg_test.jscs-test', function () {
         | 
| @@ -6348,8 +6469,8 @@ enifed('ember-htmlbars/tests/attr_nodes/value_test', ['ember-views/views/view', | |
| 6348 6469 | 
             
                run['default'](function() { view.appendTo('#qunit-fixture'); });
         | 
| 6349 6470 | 
             
              }
         | 
| 6350 6471 |  | 
| 6351 | 
            -
              
         | 
| 6352 6472 | 
             
              // jscs:disable validateIndentation
         | 
| 6473 | 
            +
              
         | 
| 6353 6474 |  | 
| 6354 6475 | 
             
              QUnit.module("ember-htmlbars: value attribute", {
         | 
| 6355 6476 | 
             
                teardown: function() {
         | 
| @@ -6395,8 +6516,8 @@ enifed('ember-htmlbars/tests/attr_nodes/value_test', ['ember-views/views/view', | |
| 6395 6516 | 
             
                      'property is set true');
         | 
| 6396 6517 | 
             
              });
         | 
| 6397 6518 |  | 
| 6398 | 
            -
              // jscs:enable validateIndentation
         | 
| 6399 6519 |  | 
| 6520 | 
            +
              // jscs:enable validateIndentation
         | 
| 6400 6521 |  | 
| 6401 6522 | 
             
            });
         | 
| 6402 6523 | 
             
            enifed('ember-htmlbars/tests/attr_nodes/value_test.jscs-test', function () {
         | 
| @@ -7540,15 +7661,17 @@ enifed('ember-htmlbars/tests/compat/precompile_test.jshint', function () { | |
| 7540 7661 | 
             
              });
         | 
| 7541 7662 |  | 
| 7542 7663 | 
             
            });
         | 
| 7543 | 
            -
            enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'ember-metal/run_loop', 'ember-runtime/system/namespace', 'ember-views/views/view', 'ember-views/views/metamorph_view', 'ember-runtime/system/object', 'ember-runtime/system/native_array', 'ember-metal/computed', 'ember-metal/observer', 'ember-runtime/system/container', 'ember-metal/property_set', 'ember-runtime/tests/utils', 'ember-htmlbars/helpers', 'ember-template-compiler/system/compile'], function (Ember, run, Namespace, EmberView, _MetamorphView, EmberObject, native_array, computed, observer, system__container, property_set, utils, helpers, compile) {
         | 
| 7664 | 
            +
            enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'ember-metal/run_loop', 'ember-runtime/system/namespace', 'ember-views/views/view', 'ember-views/views/metamorph_view', 'ember-runtime/system/object', 'ember-runtime/system/native_array', 'ember-metal/computed', 'ember-metal/observer', 'ember-runtime/system/container', 'ember-metal/property_set', 'ember-runtime/tests/utils', 'ember-views/attr_nodes/attr_node', 'ember-htmlbars/utils/string', 'ember-htmlbars/helpers', 'ember-template-compiler/system/compile'], function (Ember, run, Namespace, EmberView, _MetamorphView, EmberObject, native_array, computed, observer, system__container, property_set, utils, attr_node, string, helpers, compile) {
         | 
| 7544 7665 |  | 
| 7545 7666 | 
             
              'use strict';
         | 
| 7546 7667 |  | 
| 7668 | 
            +
              /*globals EmberDev */
         | 
| 7547 7669 | 
             
              /*jshint newcap:false*/
         | 
| 7670 | 
            +
             | 
| 7548 7671 | 
             
              var view;
         | 
| 7549 7672 |  | 
| 7550 7673 | 
             
              var originalLookup = Ember['default'].lookup;
         | 
| 7551 | 
            -
              var TemplateTests, registry, container, lookup;
         | 
| 7674 | 
            +
              var TemplateTests, registry, container, lookup, warnings, originalWarn;
         | 
| 7552 7675 |  | 
| 7553 7676 | 
             
              /**
         | 
| 7554 7677 | 
             
                This module specifically tests integration with Handlebars and Ember-specific
         | 
| @@ -7566,6 +7689,14 @@ enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'embe | |
| 7566 7689 | 
             
                  registry.optionsForType('template', { instantiate: false });
         | 
| 7567 7690 | 
             
                  registry.register('view:default', _MetamorphView['default']);
         | 
| 7568 7691 | 
             
                  registry.register('view:toplevel', EmberView['default'].extend());
         | 
| 7692 | 
            +
             | 
| 7693 | 
            +
                  warnings = [];
         | 
| 7694 | 
            +
                  originalWarn = Ember['default'].warn;
         | 
| 7695 | 
            +
                  Ember['default'].warn = function(message, test) {
         | 
| 7696 | 
            +
                    if (!test) {
         | 
| 7697 | 
            +
                      warnings.push(message);
         | 
| 7698 | 
            +
                    }
         | 
| 7699 | 
            +
                  };
         | 
| 7569 7700 | 
             
                },
         | 
| 7570 7701 |  | 
| 7571 7702 | 
             
                teardown: function() {
         | 
| @@ -7574,6 +7705,7 @@ enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'embe | |
| 7574 7705 | 
             
                  registry = container = view = null;
         | 
| 7575 7706 |  | 
| 7576 7707 | 
             
                  Ember['default'].lookup = lookup = originalLookup;
         | 
| 7708 | 
            +
                  Ember['default'].warn = originalWarn;
         | 
| 7577 7709 | 
             
                  TemplateTests = null;
         | 
| 7578 7710 | 
             
                }
         | 
| 7579 7711 | 
             
              });
         | 
| @@ -8105,7 +8237,7 @@ enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'embe | |
| 8105 8237 | 
             
                }, /You cannot set `data-bar` manually and via `{{bind-attr}}` helper on the same element/);
         | 
| 8106 8238 | 
             
              });
         | 
| 8107 8239 |  | 
| 8108 | 
            -
              QUnit.test("src attribute bound to undefined is  | 
| 8240 | 
            +
              QUnit.test("src attribute bound to undefined is empty", function() {
         | 
| 8109 8241 | 
             
                var template = compile['default']("<img {{bind-attr src=view.undefinedValue}}>");
         | 
| 8110 8242 |  | 
| 8111 8243 | 
             
                view = EmberView['default'].create({
         | 
| @@ -8115,10 +8247,10 @@ enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'embe | |
| 8115 8247 |  | 
| 8116 8248 | 
             
                utils.runAppend(view);
         | 
| 8117 8249 |  | 
| 8118 | 
            -
                 | 
| 8250 | 
            +
                equal(view.element.firstChild.getAttribute('src'), '', "src attribute is empty");
         | 
| 8119 8251 | 
             
              });
         | 
| 8120 8252 |  | 
| 8121 | 
            -
              QUnit.test("src attribute bound to null is  | 
| 8253 | 
            +
              QUnit.test("src attribute bound to null is empty", function() {
         | 
| 8122 8254 | 
             
                var template = compile['default']("<img {{bind-attr src=view.nullValue}}>");
         | 
| 8123 8255 |  | 
| 8124 8256 | 
             
                view = EmberView['default'].create({
         | 
| @@ -8128,7 +8260,69 @@ enifed('ember-htmlbars/tests/helpers/bind_attr_test', ['ember-metal/core', 'embe | |
| 8128 8260 |  | 
| 8129 8261 | 
             
                utils.runAppend(view);
         | 
| 8130 8262 |  | 
| 8131 | 
            -
                 | 
| 8263 | 
            +
                equal(view.element.firstChild.getAttribute('src'), '', "src attribute is empty");
         | 
| 8264 | 
            +
              });
         | 
| 8265 | 
            +
             | 
| 8266 | 
            +
              QUnit.test("src attribute will be cleared when the value is set to null or undefined", function() {
         | 
| 8267 | 
            +
                var template = compile['default']("<img {{bind-attr src=view.value}}>");
         | 
| 8268 | 
            +
             | 
| 8269 | 
            +
                view = EmberView['default'].create({
         | 
| 8270 | 
            +
                  template: template,
         | 
| 8271 | 
            +
                  value: 'one'
         | 
| 8272 | 
            +
                });
         | 
| 8273 | 
            +
             | 
| 8274 | 
            +
                utils.runAppend(view);
         | 
| 8275 | 
            +
             | 
| 8276 | 
            +
                equal(view.element.firstChild.getAttribute('src'), 'one', "src attribute is present");
         | 
| 8277 | 
            +
             | 
| 8278 | 
            +
                run['default'](function() {
         | 
| 8279 | 
            +
                  property_set.set(view, 'value', 'two');
         | 
| 8280 | 
            +
                });
         | 
| 8281 | 
            +
             | 
| 8282 | 
            +
                equal(view.element.firstChild.getAttribute('src'), 'two', "src attribute is present");
         | 
| 8283 | 
            +
             | 
| 8284 | 
            +
                run['default'](function() {
         | 
| 8285 | 
            +
                  property_set.set(view, 'value', null);
         | 
| 8286 | 
            +
                });
         | 
| 8287 | 
            +
             | 
| 8288 | 
            +
                equal(view.element.firstChild.getAttribute('src'), '', "src attribute is empty");
         | 
| 8289 | 
            +
             | 
| 8290 | 
            +
                run['default'](function() {
         | 
| 8291 | 
            +
                  property_set.set(view, 'value', 'three');
         | 
| 8292 | 
            +
                });
         | 
| 8293 | 
            +
             | 
| 8294 | 
            +
                equal(view.element.firstChild.getAttribute('src'), 'three', "src attribute is present");
         | 
| 8295 | 
            +
             | 
| 8296 | 
            +
                run['default'](function() {
         | 
| 8297 | 
            +
                  property_set.set(view, 'value', undefined);
         | 
| 8298 | 
            +
                });
         | 
| 8299 | 
            +
             | 
| 8300 | 
            +
                equal(view.element.firstChild.getAttribute('src'), '', "src attribute is empty");
         | 
| 8301 | 
            +
              });
         | 
| 8302 | 
            +
             | 
| 8303 | 
            +
              if (!EmberDev.runningProdBuild) {
         | 
| 8304 | 
            +
             | 
| 8305 | 
            +
                QUnit.test('specifying `<div {{bind-attr style=userValue}}></div>` triggers a warning', function() {
         | 
| 8306 | 
            +
                  view = EmberView['default'].create({
         | 
| 8307 | 
            +
                    userValue: '42',
         | 
| 8308 | 
            +
                    template: compile['default']('<div {{bind-attr style=view.userValue}}></div>')
         | 
| 8309 | 
            +
                  });
         | 
| 8310 | 
            +
             | 
| 8311 | 
            +
                  utils.runAppend(view);
         | 
| 8312 | 
            +
             | 
| 8313 | 
            +
                  deepEqual(warnings, [attr_node.styleWarning]);
         | 
| 8314 | 
            +
                });
         | 
| 8315 | 
            +
              }
         | 
| 8316 | 
            +
             | 
| 8317 | 
            +
              QUnit.test('specifying `<div {{bind-attr style=userValue}}></div>` works properly with a SafeString', function() {
         | 
| 8318 | 
            +
                view = EmberView['default'].create({
         | 
| 8319 | 
            +
                  userValue: new string.SafeString('42'),
         | 
| 8320 | 
            +
                  template: compile['default']('<div {{bind-attr style=view.userValue}}></div>')
         | 
| 8321 | 
            +
                });
         | 
| 8322 | 
            +
             | 
| 8323 | 
            +
                utils.runAppend(view);
         | 
| 8324 | 
            +
             | 
| 8325 | 
            +
                deepEqual(warnings, [ ]);
         | 
| 8132 8326 | 
             
              });
         | 
| 8133 8327 |  | 
| 8134 8328 | 
             
            });
         | 
| @@ -8299,8 +8493,8 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8299 8493 | 
             
                var container = registry.container();
         | 
| 8300 8494 |  | 
| 8301 8495 | 
             
                var ACollectionView = CollectionView['default'].extend({
         | 
| 8302 | 
            -
             | 
| 8303 | 
            -
             | 
| 8496 | 
            +
                  tagName: 'ul',
         | 
| 8497 | 
            +
                  content: native_array.A(['foo', 'bar', 'baz'])
         | 
| 8304 8498 | 
             
                });
         | 
| 8305 8499 |  | 
| 8306 8500 | 
             
                registry.register('view:collectionTest', ACollectionView);
         | 
| @@ -8499,7 +8693,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8499 8693 | 
             
                equal(view.$('ul li.baz').length, 3, "adds class attribute");
         | 
| 8500 8694 | 
             
              });
         | 
| 8501 8695 |  | 
| 8502 | 
            -
              QUnit.test("should give its item views the  | 
| 8696 | 
            +
              QUnit.test("should give its item views the class specified by itemClass", function() {
         | 
| 8503 8697 | 
             
                var ItemClassBindingTestCollectionView = CollectionView['default'].extend({
         | 
| 8504 8698 | 
             
                  tagName: 'ul',
         | 
| 8505 8699 | 
             
                  content: native_array.A([EmberObject['default'].create({ isBaz: false }), EmberObject['default'].create({ isBaz: true }), EmberObject['default'].create({ isBaz: true })])
         | 
| @@ -8508,7 +8702,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8508 8702 | 
             
                view = EmberView['default'].create({
         | 
| 8509 8703 | 
             
                  itemClassBindingTestCollectionView: ItemClassBindingTestCollectionView,
         | 
| 8510 8704 | 
             
                  isBar: true,
         | 
| 8511 | 
            -
                  template: compile['default']('{{#collection view.itemClassBindingTestCollectionView  | 
| 8705 | 
            +
                  template: compile['default']('{{#collection view.itemClassBindingTestCollectionView itemClass=view.isBar}}foo{{/collection}}')
         | 
| 8512 8706 | 
             
                });
         | 
| 8513 8707 |  | 
| 8514 8708 | 
             
                utils.runAppend(view);
         | 
| @@ -8519,7 +8713,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8519 8713 | 
             
                // to introduce a new keyword that could be used from within `itemClassBinding`. For instance, `itemClassBinding="item.isBaz"`.
         | 
| 8520 8714 | 
             
              });
         | 
| 8521 8715 |  | 
| 8522 | 
            -
              QUnit.test("should give its item views the property specified by  | 
| 8716 | 
            +
              QUnit.test("should give its item views the property specified by itemProperty", function() {
         | 
| 8523 8717 | 
             
                var ItemPropertyBindingTestItemView = EmberView['default'].extend({
         | 
| 8524 8718 | 
             
                  tagName: 'li'
         | 
| 8525 8719 | 
             
                });
         | 
| @@ -8534,7 +8728,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8534 8728 | 
             
                      return ItemPropertyBindingTestItemView;
         | 
| 8535 8729 | 
             
                    }
         | 
| 8536 8730 | 
             
                  },
         | 
| 8537 | 
            -
                  template: compile['default']('{{#collection  | 
| 8731 | 
            +
                  template: compile['default']('{{#collection content=view.content tagName="ul" itemViewClass="item-property-binding-test-item-view" itemProperty=view.baz preserveContext=false}}{{view.property}}{{/collection}}')
         | 
| 8538 8732 | 
             
                });
         | 
| 8539 8733 |  | 
| 8540 8734 | 
             
                utils.runAppend(view);
         | 
| @@ -8556,7 +8750,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8556 8750 | 
             
                view = EmberView['default'].create({
         | 
| 8557 8751 | 
             
                  baz: "baz",
         | 
| 8558 8752 | 
             
                  content: native_array.A([EmberObject['default'].create(), EmberObject['default'].create(), EmberObject['default'].create()]),
         | 
| 8559 | 
            -
                  template: compile['default']('{{#collection  | 
| 8753 | 
            +
                  template: compile['default']('{{#collection content=view.content itemProperty=view.baz}}{{view.property}}{{/collection}}')
         | 
| 8560 8754 | 
             
                });
         | 
| 8561 8755 |  | 
| 8562 8756 | 
             
                utils.runAppend(view);
         | 
| @@ -8817,7 +9011,7 @@ enifed('ember-htmlbars/tests/helpers/collection_test', ['ember-views/views/colle | |
| 8817 9011 | 
             
                  controller: {
         | 
| 8818 9012 | 
             
                    items: items
         | 
| 8819 9013 | 
             
                  },
         | 
| 8820 | 
            -
                  template: compile['default']('{{collection  | 
| 9014 | 
            +
                  template: compile['default']('{{collection content=items itemViewClass="an-item"}}')
         | 
| 8821 9015 | 
             
                });
         | 
| 8822 9016 |  | 
| 8823 9017 | 
             
                utils.runAppend(view);
         | 
| @@ -9185,7 +9379,7 @@ enifed('ember-htmlbars/tests/helpers/each_test', ['ember-metal/core', 'ember-run | |
| 9185 9379 | 
             
              var originalLookup = Ember['default'].lookup;
         | 
| 9186 9380 | 
             
              var lookup;
         | 
| 9187 9381 |  | 
| 9188 | 
            -
              QUnit.module("the #each helper [DEPRECATED]", {
         | 
| 9382 | 
            +
              QUnit.module("the scope changing #each helper [DEPRECATED]", {
         | 
| 9189 9383 | 
             
                setup: function() {
         | 
| 9190 9384 | 
             
                  Ember['default'].lookup = lookup = { Ember: Ember['default'] };
         | 
| 9191 9385 |  | 
| @@ -9680,8 +9874,8 @@ enifed('ember-htmlbars/tests/helpers/each_test', ['ember-metal/core', 'ember-run | |
| 9680 9874 | 
             
              QUnit.test("it supports {{itemViewClass=}} with tagName (DEPRECATED)", function() {
         | 
| 9681 9875 | 
             
                utils.runDestroy(view);
         | 
| 9682 9876 | 
             
                view = EmberView['default'].create({
         | 
| 9683 | 
            -
             | 
| 9684 | 
            -
             | 
| 9877 | 
            +
                  template: templateFor('{{each view.people itemViewClass=MyView tagName="ul"}}'),
         | 
| 9878 | 
            +
                  people: people
         | 
| 9685 9879 | 
             
                });
         | 
| 9686 9880 |  | 
| 9687 9881 | 
             
                expectDeprecation(/Supplying a tagName to Metamorph views is unreliable and is deprecated./);
         | 
| @@ -10013,7 +10207,7 @@ enifed('ember-htmlbars/tests/helpers/each_test', ['ember-metal/core', 'ember-run | |
| 10013 10207 | 
             
                  view = EmberView['default'].create({
         | 
| 10014 10208 | 
             
                    container: container,
         | 
| 10015 10209 | 
             
                    controller: controller,
         | 
| 10016 | 
            -
                    template: templateFor('{{#EACH|this|personController}}{{#view  | 
| 10210 | 
            +
                    template: templateFor('{{#EACH|this|personController}}{{#view controller=personController}}{{name}}{{/view}}{{/each}}', useBlockParams)
         | 
| 10017 10211 | 
             
                  });
         | 
| 10018 10212 |  | 
| 10019 10213 | 
             
                  utils.runAppend(view);
         | 
| @@ -11441,6 +11635,44 @@ enifed('ember-htmlbars/tests/helpers/input_test', ['ember-metal/run_loop', 'embe | |
| 11441 11635 | 
             
                equal(view.$('input').prop('checked'), false, "the checkbox isn't checked yet");
         | 
| 11442 11636 | 
             
              });
         | 
| 11443 11637 |  | 
| 11638 | 
            +
              QUnit.module("{{input type='text'}} - null/undefined values", {
         | 
| 11639 | 
            +
                teardown: function() {
         | 
| 11640 | 
            +
                  utils.runDestroy(view);
         | 
| 11641 | 
            +
                }
         | 
| 11642 | 
            +
              });
         | 
| 11643 | 
            +
             | 
| 11644 | 
            +
              QUnit.test("placeholder attribute bound to undefined is not present", function() {
         | 
| 11645 | 
            +
                view = View['default'].extend({
         | 
| 11646 | 
            +
                  controller: {},
         | 
| 11647 | 
            +
                  template: compile['default']('{{input placeholder=someThingNotThere}}')
         | 
| 11648 | 
            +
                }).create();
         | 
| 11649 | 
            +
             | 
| 11650 | 
            +
                utils.runAppend(view);
         | 
| 11651 | 
            +
             | 
| 11652 | 
            +
                ok(!view.element.childNodes[1].hasAttribute('placeholder'), "attribute not present");
         | 
| 11653 | 
            +
             | 
| 11654 | 
            +
                run['default'](null, property_set.set, view, 'controller.someThingNotThere', 'foo');
         | 
| 11655 | 
            +
             | 
| 11656 | 
            +
                equal(view.element.childNodes[1].placeholder, 'foo', "attribute is present");
         | 
| 11657 | 
            +
              });
         | 
| 11658 | 
            +
             | 
| 11659 | 
            +
              QUnit.test("placeholder attribute bound to null is not present", function() {
         | 
| 11660 | 
            +
                view = View['default'].extend({
         | 
| 11661 | 
            +
                  controller: {
         | 
| 11662 | 
            +
                    someNullProperty: null
         | 
| 11663 | 
            +
                  },
         | 
| 11664 | 
            +
                  template: compile['default']('{{input placeholder=someNullProperty}}')
         | 
| 11665 | 
            +
                }).create();
         | 
| 11666 | 
            +
             | 
| 11667 | 
            +
                utils.runAppend(view);
         | 
| 11668 | 
            +
             | 
| 11669 | 
            +
                ok(!view.element.childNodes[1].hasAttribute('placeholder'), "attribute not present");
         | 
| 11670 | 
            +
             | 
| 11671 | 
            +
                run['default'](null, property_set.set, view, 'controller.someNullProperty', 'foo');
         | 
| 11672 | 
            +
             | 
| 11673 | 
            +
                equal(view.element.childNodes[1].placeholder, 'foo', "attribute is present");
         | 
| 11674 | 
            +
              });
         | 
| 11675 | 
            +
             | 
| 11444 11676 | 
             
            });
         | 
| 11445 11677 | 
             
            enifed('ember-htmlbars/tests/helpers/input_test.jscs-test', function () {
         | 
| 11446 11678 |  | 
| @@ -12454,7 +12686,7 @@ enifed('ember-htmlbars/tests/helpers/unbound_test.jshint', function () { | |
| 12454 12686 | 
             
              });
         | 
| 12455 12687 |  | 
| 12456 12688 | 
             
            });
         | 
| 12457 | 
            -
            enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'container/registry', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-views/views/text_field', 'ember-runtime/system/namespace', 'ember-runtime/system/object', 'ember-views/views/container_view', 'ember-views/views/metamorph_view', 'htmlbars-util/safe-string', 'ember-template-compiler/compat/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-metal/observer', 'ember-runtime/controllers/controller', 'ember-runtime/tests/utils', 'ember-metal/property_set', 'ember-metal/property_get', 'ember-metal/computed'], function (EmberView, Registry, run, jQuery, TextField, Namespace, EmberObject, ContainerView, _MetamorphView, SafeString, precompile, compile,  | 
| 12689 | 
            +
            enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'container/registry', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-views/views/text_field', 'ember-runtime/system/namespace', 'ember-runtime/system/object', 'ember-views/views/container_view', 'ember-views/views/metamorph_view', 'htmlbars-util/safe-string', 'ember-template-compiler/compat/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-metal/observer', 'ember-runtime/controllers/controller', 'ember-htmlbars/system/make_bound_helper', 'ember-runtime/tests/utils', 'ember-metal/property_set', 'ember-metal/property_get', 'ember-metal/computed'], function (EmberView, Registry, run, jQuery, TextField, Namespace, EmberObject, ContainerView, _MetamorphView, SafeString, precompile, compile, system__template, observer, Controller, makeBoundHelper, utils, property_set, property_get, computed) {
         | 
| 12458 12690 |  | 
| 12459 12691 | 
             
              'use strict';
         | 
| 12460 12692 |  | 
| @@ -12486,6 +12718,7 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 12486 12718 | 
             
                  registry = new Registry['default']();
         | 
| 12487 12719 | 
             
                  container = registry.container();
         | 
| 12488 12720 | 
             
                  registry.optionsForType('template', { instantiate: false });
         | 
| 12721 | 
            +
                  registry.optionsForType('helper', { instantiate: false });
         | 
| 12489 12722 | 
             
                  registry.register('view:default', _MetamorphView['default']);
         | 
| 12490 12723 | 
             
                  registry.register('view:toplevel', EmberView['default'].extend());
         | 
| 12491 12724 | 
             
                },
         | 
| @@ -12707,15 +12940,17 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 12707 12940 | 
             
                  snork: "nerd"
         | 
| 12708 12941 | 
             
                }).create();
         | 
| 12709 12942 |  | 
| 12710 | 
            -
                 | 
| 12943 | 
            +
                expectDeprecation(function() {
         | 
| 12944 | 
            +
                  utils.runAppend(view);
         | 
| 12945 | 
            +
                }, /You're attempting to render a view by passing borfBinding to a view helper without a quoted value, but this syntax is ambiguous. You should either surround borfBinding's value in quotes or remove `Binding` from borfBinding./);
         | 
| 12711 12946 |  | 
| 12712 12947 | 
             
                equal(jQuery['default']('#lol').text(), "nerd", "awkward mixed syntax treated like binding");
         | 
| 12713 12948 |  | 
| 12714 12949 | 
             
                Ember.warn = oldWarn;
         | 
| 12715 12950 | 
             
              });
         | 
| 12716 12951 |  | 
| 12717 | 
            -
              QUnit.test('"Binding"-suffixed bindings are runloop-synchronized', function() {
         | 
| 12718 | 
            -
                expect( | 
| 12952 | 
            +
              QUnit.test('"Binding"-suffixed bindings are runloop-synchronized [DEPRECATED]', function() {
         | 
| 12953 | 
            +
                expect(6);
         | 
| 12719 12954 |  | 
| 12720 12955 | 
             
                var subview;
         | 
| 12721 12956 |  | 
| @@ -12734,7 +12969,10 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 12734 12969 | 
             
                });
         | 
| 12735 12970 |  | 
| 12736 12971 | 
             
                view = View.create();
         | 
| 12737 | 
            -
             | 
| 12972 | 
            +
             | 
| 12973 | 
            +
                expectDeprecation(function() {
         | 
| 12974 | 
            +
                  utils.runAppend(view);
         | 
| 12975 | 
            +
                }, /You're attempting to render a view by passing colorBinding to a view helper, but this syntax is deprecated. You should use `color=someValue` instead./);
         | 
| 12738 12976 |  | 
| 12739 12977 | 
             
                equal(view.$('h1 .color').text(), 'mauve', 'renders bound value');
         | 
| 12740 12978 |  | 
| @@ -12853,6 +13091,30 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 12853 13091 | 
             
                ok(jQuery['default']('#foo').hasClass('foo'), "Always applies classbinding without condition");
         | 
| 12854 13092 | 
             
              });
         | 
| 12855 13093 |  | 
| 13094 | 
            +
              QUnit.test("Should apply a class from a sub expression", function() {
         | 
| 13095 | 
            +
                registry.register('helper:string-concat', makeBoundHelper['default'](function(params) {
         | 
| 13096 | 
            +
                  return params.join('');
         | 
| 13097 | 
            +
                }));
         | 
| 13098 | 
            +
             | 
| 13099 | 
            +
                view = EmberView['default'].create({
         | 
| 13100 | 
            +
                  container: container,
         | 
| 13101 | 
            +
                  controller: {
         | 
| 13102 | 
            +
                    type: 'btn',
         | 
| 13103 | 
            +
                    size: 'large'
         | 
| 13104 | 
            +
                  },
         | 
| 13105 | 
            +
                  template: compile['default']('{{#view id="foo" class=(string-concat type "-" size)}} Foo{{/view}}')
         | 
| 13106 | 
            +
                });
         | 
| 13107 | 
            +
             | 
| 13108 | 
            +
                utils.runAppend(view);
         | 
| 13109 | 
            +
             | 
| 13110 | 
            +
                ok(jQuery['default']('#foo').hasClass('btn-large'), "applies classname from subexpression");
         | 
| 13111 | 
            +
             | 
| 13112 | 
            +
                run['default'](view, view.set, 'controller.size', 'medium');
         | 
| 13113 | 
            +
             | 
| 13114 | 
            +
                ok(!jQuery['default']('#foo').hasClass('btn-large'), "removes classname from subexpression update");
         | 
| 13115 | 
            +
                ok(jQuery['default']('#foo').hasClass('btn-medium'), "adds classname from subexpression update");
         | 
| 13116 | 
            +
              });
         | 
| 13117 | 
            +
             | 
| 12856 13118 | 
             
              QUnit.test("Should not apply classes when bound property specified is false", function() {
         | 
| 12857 13119 | 
             
                view = EmberView['default'].create({
         | 
| 12858 13120 | 
             
                  controller: {
         | 
| @@ -13403,7 +13665,7 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13403 13665 | 
             
                view = EmberView['default'].create({
         | 
| 13404 13666 | 
             
                  name: 'myView',
         | 
| 13405 13667 | 
             
                  textField: TextField['default'],
         | 
| 13406 | 
            -
                  template: compile['default']('{{view view.textField  | 
| 13668 | 
            +
                  template: compile['default']('{{view view.textField value=view.name}}')
         | 
| 13407 13669 | 
             
                });
         | 
| 13408 13670 |  | 
| 13409 13671 | 
             
                utils.runAppend(view);
         | 
| @@ -13475,7 +13737,7 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13475 13737 | 
             
                    name: 'foo'
         | 
| 13476 13738 | 
             
                  }),
         | 
| 13477 13739 | 
             
                  Subview: Subview,
         | 
| 13478 | 
            -
                  template: compile['default']('<h1>{{view view.Subview  | 
| 13740 | 
            +
                  template: compile['default']('<h1>{{view view.Subview color=color someController=this}}</h1>')
         | 
| 13479 13741 | 
             
                });
         | 
| 13480 13742 |  | 
| 13481 13743 | 
             
                view = View.create();
         | 
| @@ -13572,7 +13834,7 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13572 13834 |  | 
| 13573 13835 | 
             
              QUnit.test('should work with precompiled templates', function() {
         | 
| 13574 13836 | 
             
                var templateString = precompile['default']('{{view.value}}');
         | 
| 13575 | 
            -
                var compiledTemplate =  | 
| 13837 | 
            +
                var compiledTemplate = system__template['default'](eval(templateString));
         | 
| 13576 13838 |  | 
| 13577 13839 | 
             
                view = EmberView['default'].create({
         | 
| 13578 13840 | 
             
                  value: 'rendered',
         | 
| @@ -13590,7 +13852,7 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13590 13852 | 
             
                equal(view.$().text(), 'updated', 'the precompiled template was updated');
         | 
| 13591 13853 | 
             
              });
         | 
| 13592 13854 |  | 
| 13593 | 
            -
              QUnit.test('bindings should be relative to the current context', function() {
         | 
| 13855 | 
            +
              QUnit.test('bindings should be relative to the current context [DEPRECATED]', function() {
         | 
| 13594 13856 | 
             
                view = EmberView['default'].create({
         | 
| 13595 13857 | 
             
                  museumOpen: true,
         | 
| 13596 13858 |  | 
| @@ -13606,12 +13868,14 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13606 13868 | 
             
                  template: compile['default']('{{#if view.museumOpen}} {{view view.museumView nameBinding="view.museumDetails.name" dollarsBinding="view.museumDetails.price"}} {{/if}}')
         | 
| 13607 13869 | 
             
                });
         | 
| 13608 13870 |  | 
| 13609 | 
            -
                 | 
| 13871 | 
            +
                expectDeprecation(function() {
         | 
| 13872 | 
            +
                  utils.runAppend(view);
         | 
| 13873 | 
            +
                }, /You're attempting to render a view by passing .+Binding to a view helper, but this syntax is deprecated/);
         | 
| 13610 13874 |  | 
| 13611 13875 | 
             
                equal(trim(view.$().text()), 'Name: SFMoMA Price: $20', 'should print baz twice');
         | 
| 13612 13876 | 
             
              });
         | 
| 13613 13877 |  | 
| 13614 | 
            -
              QUnit.test('bindings should respect keywords', function() {
         | 
| 13878 | 
            +
              QUnit.test('bindings should respect keywords [DEPRECATED]', function() {
         | 
| 13615 13879 | 
             
                view = EmberView['default'].create({
         | 
| 13616 13880 | 
             
                  museumOpen: true,
         | 
| 13617 13881 |  | 
| @@ -13630,6 +13894,32 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13630 13894 | 
             
                  template: compile['default']('{{#if view.museumOpen}}{{view view.museumView nameBinding="controller.museumDetails.name" dollarsBinding="controller.museumDetails.price"}}{{/if}}')
         | 
| 13631 13895 | 
             
                });
         | 
| 13632 13896 |  | 
| 13897 | 
            +
                expectDeprecation(function() {
         | 
| 13898 | 
            +
                  utils.runAppend(view);
         | 
| 13899 | 
            +
                }, /You're attempting to render a view by passing .+Binding to a view helper, but this syntax is deprecated/);
         | 
| 13900 | 
            +
             | 
| 13901 | 
            +
                equal(trim(view.$().text()), 'Name: SFMoMA Price: $20', 'should print baz twice');
         | 
| 13902 | 
            +
              });
         | 
| 13903 | 
            +
             | 
| 13904 | 
            +
              QUnit.test('should respect keywords', function() {
         | 
| 13905 | 
            +
                view = EmberView['default'].create({
         | 
| 13906 | 
            +
                  museumOpen: true,
         | 
| 13907 | 
            +
             | 
| 13908 | 
            +
                  controller: {
         | 
| 13909 | 
            +
                    museumOpen: true,
         | 
| 13910 | 
            +
                    museumDetails: EmberObject['default'].create({
         | 
| 13911 | 
            +
                      name: 'SFMoMA',
         | 
| 13912 | 
            +
                      price: 20
         | 
| 13913 | 
            +
                    })
         | 
| 13914 | 
            +
                  },
         | 
| 13915 | 
            +
             | 
| 13916 | 
            +
                  museumView: EmberView['default'].extend({
         | 
| 13917 | 
            +
                    template: compile['default']('Name: {{view.name}} Price: ${{view.dollars}}')
         | 
| 13918 | 
            +
                  }),
         | 
| 13919 | 
            +
             | 
| 13920 | 
            +
                  template: compile['default']('{{#if view.museumOpen}}{{view view.museumView name=controller.museumDetails.name dollars=controller.museumDetails.price}}{{/if}}')
         | 
| 13921 | 
            +
                });
         | 
| 13922 | 
            +
             | 
| 13633 13923 | 
             
                utils.runAppend(view);
         | 
| 13634 13924 |  | 
| 13635 13925 | 
             
                equal(trim(view.$().text()), 'Name: SFMoMA Price: $20', 'should print baz twice');
         | 
| @@ -13734,6 +14024,44 @@ enifed('ember-htmlbars/tests/helpers/view_test', ['ember-views/views/view', 'con | |
| 13734 14024 | 
             
                }, /must be a subclass or an instance of Ember.View/);
         | 
| 13735 14025 | 
             
              });
         | 
| 13736 14026 |  | 
| 14027 | 
            +
              QUnit.test('Specifying `id` to {{view}} is set on the view.', function() {
         | 
| 14028 | 
            +
                registry.register('view:derp', EmberView['default'].extend({
         | 
| 14029 | 
            +
                  template: compile['default']('<div id="view-id">{{view.id}}</div><div id="view-elementId">{{view.elementId}}</div>')
         | 
| 14030 | 
            +
                }));
         | 
| 14031 | 
            +
             | 
| 14032 | 
            +
                view = EmberView['default'].create({
         | 
| 14033 | 
            +
                  container: container,
         | 
| 14034 | 
            +
                  foo: 'bar',
         | 
| 14035 | 
            +
                  template: compile['default']('{{view "derp" id=view.foo}}')
         | 
| 14036 | 
            +
                });
         | 
| 14037 | 
            +
             | 
| 14038 | 
            +
                utils.runAppend(view);
         | 
| 14039 | 
            +
             | 
| 14040 | 
            +
                equal(view.$('#bar').length, 1, 'it uses the provided id for the views elementId');
         | 
| 14041 | 
            +
                equal(view.$('#view-id').text(), 'bar', 'the views id property is set');
         | 
| 14042 | 
            +
                equal(view.$('#view-elementId').text(), 'bar', 'the views elementId property is set');
         | 
| 14043 | 
            +
              });
         | 
| 14044 | 
            +
             | 
| 14045 | 
            +
              QUnit.test('Specifying `id` to {{view}} does not allow bound id changes.', function() {
         | 
| 14046 | 
            +
                registry.register('view:derp', EmberView['default'].extend({
         | 
| 14047 | 
            +
                  template: compile['default']('<div id="view-id">{{view.id}}</div><div id="view-elementId">{{view.elementId}}</div>')
         | 
| 14048 | 
            +
                }));
         | 
| 14049 | 
            +
             | 
| 14050 | 
            +
                view = EmberView['default'].create({
         | 
| 14051 | 
            +
                  container: container,
         | 
| 14052 | 
            +
                  foo: 'bar',
         | 
| 14053 | 
            +
                  template: compile['default']('{{view "derp" id=view.foo}}')
         | 
| 14054 | 
            +
                });
         | 
| 14055 | 
            +
             | 
| 14056 | 
            +
                utils.runAppend(view);
         | 
| 14057 | 
            +
             | 
| 14058 | 
            +
                equal(view.$('#view-id').text(), 'bar', 'the views id property is set');
         | 
| 14059 | 
            +
             | 
| 14060 | 
            +
                run['default'](view, property_set.set, view, 'foo', 'baz');
         | 
| 14061 | 
            +
             | 
| 14062 | 
            +
                equal(view.$('#view-id').text(), 'bar', 'the views id property is not changed');
         | 
| 14063 | 
            +
              });
         | 
| 14064 | 
            +
             | 
| 13737 14065 | 
             
            });
         | 
| 13738 14066 | 
             
            enifed('ember-htmlbars/tests/helpers/view_test.jscs-test', function () {
         | 
| 13739 14067 |  | 
| @@ -14464,7 +14792,7 @@ enifed('ember-htmlbars/tests/helpers/yield_test', ['ember-metal/run_loop', 'embe | |
| 14464 14792 |  | 
| 14465 14793 | 
             
                view = EmberView['default'].create({
         | 
| 14466 14794 | 
             
                  controller: { boundText: "outer", component: component },
         | 
| 14467 | 
            -
                  template: compile['default']('{{#with boundText as item}}{{#view component  | 
| 14795 | 
            +
                  template: compile['default']('{{#with boundText as item}}{{#view component content=item}}{{item}}{{/view}}{{/with}}')
         | 
| 14468 14796 | 
             
                });
         | 
| 14469 14797 |  | 
| 14470 14798 | 
             
                utils.runAppend(view);
         | 
| @@ -15594,7 +15922,7 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15594 15922 | 
             
                }
         | 
| 15595 15923 | 
             
              });
         | 
| 15596 15924 |  | 
| 15597 | 
            -
              QUnit.test("works from a template with bindings", function() {
         | 
| 15925 | 
            +
              QUnit.test("works from a template with bindings [DEPRECATED]", function() {
         | 
| 15598 15926 | 
             
                var Person = EmberObject['default'].extend({
         | 
| 15599 15927 | 
             
                  id: null,
         | 
| 15600 15928 | 
             
                  firstName: null,
         | 
| @@ -15635,6 +15963,70 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15635 15963 | 
             
                  )
         | 
| 15636 15964 | 
             
                });
         | 
| 15637 15965 |  | 
| 15966 | 
            +
                expectDeprecation(function() {
         | 
| 15967 | 
            +
                  utils.runAppend(view);
         | 
| 15968 | 
            +
                }, /You're attempting to render a view by passing .+Binding to a view helper, but this syntax is deprecated/);
         | 
| 15969 | 
            +
             | 
| 15970 | 
            +
                var select = view.get('select');
         | 
| 15971 | 
            +
                ok(select.$().length, "Select was rendered");
         | 
| 15972 | 
            +
                equal(select.$('option').length, 5, "Options were rendered");
         | 
| 15973 | 
            +
                equal(select.$().text(), "Pick a person:Yehuda KatzTom DalePeter WagenetErik Bryn\n", "Option values were rendered");
         | 
| 15974 | 
            +
                equal(select.get('selection'), null, "Nothing has been selected");
         | 
| 15975 | 
            +
             | 
| 15976 | 
            +
                run['default'](function() {
         | 
| 15977 | 
            +
                  application.selectedPersonController.set('person', erik);
         | 
| 15978 | 
            +
                });
         | 
| 15979 | 
            +
             | 
| 15980 | 
            +
                equal(select.get('selection'), erik, "Selection was updated through binding");
         | 
| 15981 | 
            +
                run['default'](function() {
         | 
| 15982 | 
            +
                  application.peopleController.pushObject(Person.create({ id: 5, firstName: "James", lastName: "Rosen" }));
         | 
| 15983 | 
            +
                });
         | 
| 15984 | 
            +
             | 
| 15985 | 
            +
                equal(select.$('option').length, 6, "New option was added");
         | 
| 15986 | 
            +
                equal(select.get('selection'), erik, "Selection was maintained after new option was added");
         | 
| 15987 | 
            +
              });
         | 
| 15988 | 
            +
             | 
| 15989 | 
            +
              QUnit.test("works from a template", function() {
         | 
| 15990 | 
            +
                var Person = EmberObject['default'].extend({
         | 
| 15991 | 
            +
                  id: null,
         | 
| 15992 | 
            +
                  firstName: null,
         | 
| 15993 | 
            +
                  lastName: null,
         | 
| 15994 | 
            +
             | 
| 15995 | 
            +
                  fullName: computed.computed(function() {
         | 
| 15996 | 
            +
                    return this.get('firstName') + " " + this.get('lastName');
         | 
| 15997 | 
            +
                  }).property('firstName', 'lastName')
         | 
| 15998 | 
            +
                });
         | 
| 15999 | 
            +
             | 
| 16000 | 
            +
                var erik = Person.create({ id: 4, firstName: 'Erik', lastName: 'Bryn' });
         | 
| 16001 | 
            +
             | 
| 16002 | 
            +
                var application = Namespace['default'].create();
         | 
| 16003 | 
            +
             | 
| 16004 | 
            +
                application.peopleController = ArrayController['default'].create({
         | 
| 16005 | 
            +
                  content: Ember.A([
         | 
| 16006 | 
            +
                    Person.create({ id: 1, firstName: 'Yehuda', lastName: 'Katz' }),
         | 
| 16007 | 
            +
                    Person.create({ id: 2, firstName: 'Tom', lastName: 'Dale' }),
         | 
| 16008 | 
            +
                    Person.create({ id: 3, firstName: 'Peter', lastName: 'Wagenet' }),
         | 
| 16009 | 
            +
                    erik
         | 
| 16010 | 
            +
                  ])
         | 
| 16011 | 
            +
                });
         | 
| 16012 | 
            +
             | 
| 16013 | 
            +
                application.selectedPersonController = EmberObject['default'].create({
         | 
| 16014 | 
            +
                  person: null
         | 
| 16015 | 
            +
                });
         | 
| 16016 | 
            +
             | 
| 16017 | 
            +
                view = EmberView['default'].create({
         | 
| 16018 | 
            +
                  app: application,
         | 
| 16019 | 
            +
                  selectView: SelectView['default'],
         | 
| 16020 | 
            +
                  template: compile['default'](
         | 
| 16021 | 
            +
                    '{{view view.selectView viewName="select"' +
         | 
| 16022 | 
            +
                    '    content=view.app.peopleController' +
         | 
| 16023 | 
            +
                    '    optionLabelPath="content.fullName"' +
         | 
| 16024 | 
            +
                    '    optionValuePath="content.id"' +
         | 
| 16025 | 
            +
                    '    prompt="Pick a person:"' +
         | 
| 16026 | 
            +
                    '    selection=view.app.selectedPersonController.person}}'
         | 
| 16027 | 
            +
                  )
         | 
| 16028 | 
            +
                });
         | 
| 16029 | 
            +
             | 
| 15638 16030 | 
             
                utils.runAppend(view);
         | 
| 15639 16031 |  | 
| 15640 16032 | 
             
                var select = view.get('select');
         | 
| @@ -15665,8 +16057,8 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15665 16057 | 
             
                  selectView: SelectView['default'],
         | 
| 15666 16058 | 
             
                  template: compile['default'](
         | 
| 15667 16059 | 
             
                    '{{view view.selectView viewName="select"' +
         | 
| 15668 | 
            -
                    '     | 
| 15669 | 
            -
                    '     | 
| 16060 | 
            +
                    '    content=view.user.options' +
         | 
| 16061 | 
            +
                    '    selection=view.user.selectedOption}}'
         | 
| 15670 16062 | 
             
                  )
         | 
| 15671 16063 | 
             
                });
         | 
| 15672 16064 |  | 
| @@ -15700,8 +16092,8 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15700 16092 | 
             
                  selectView: SelectView['default'],
         | 
| 15701 16093 | 
             
                  template: compile['default'](
         | 
| 15702 16094 | 
             
                    '{{view view.selectView viewName="select"' +
         | 
| 15703 | 
            -
                    '     | 
| 15704 | 
            -
                    '     | 
| 16095 | 
            +
                    '    content=view.proxy' +
         | 
| 16096 | 
            +
                    '    selection=view.proxy.selectedOption}}'
         | 
| 15705 16097 | 
             
                  )
         | 
| 15706 16098 | 
             
                });
         | 
| 15707 16099 |  | 
| @@ -15746,7 +16138,9 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15746 16138 | 
             
                equal(selectEl.selectedIndex, 1, "The DOM is updated to reflect the new selection");
         | 
| 15747 16139 | 
             
              }
         | 
| 15748 16140 |  | 
| 15749 | 
            -
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using valueBinding  | 
| 16141 | 
            +
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using valueBinding [DEPRECATED]", function() {
         | 
| 16142 | 
            +
                expectDeprecation(/You're attempting to render a view by passing .+Binding to a view helper, but this syntax is deprecated./);
         | 
| 16143 | 
            +
             | 
| 15750 16144 | 
             
                testValueBinding(
         | 
| 15751 16145 | 
             
                  '{{view view.selectView viewName="select"' +
         | 
| 15752 16146 | 
             
                  '    contentBinding="view.collection"' +
         | 
| @@ -15757,7 +16151,7 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15757 16151 | 
             
                );
         | 
| 15758 16152 | 
             
              });
         | 
| 15759 16153 |  | 
| 15760 | 
            -
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using  | 
| 16154 | 
            +
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using a bound value", function() {
         | 
| 15761 16155 | 
             
                testValueBinding(
         | 
| 15762 16156 | 
             
                  '{{view view.selectView viewName="select"' +
         | 
| 15763 16157 | 
             
                  '    content=view.collection' +
         | 
| @@ -15796,7 +16190,9 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15796 16190 | 
             
                equal(select.$('option:eq(1)').prop('selected'), true, "Selected property is set to proper option");
         | 
| 15797 16191 | 
             
              }
         | 
| 15798 16192 |  | 
| 15799 | 
            -
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using selectionBinding  | 
| 16193 | 
            +
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using selectionBinding [DEPRECATED]", function() {
         | 
| 16194 | 
            +
                expectDeprecation(/You're attempting to render a view by passing .+Binding to a view helper, but this syntax is deprecated./);
         | 
| 16195 | 
            +
             | 
| 15800 16196 | 
             
                testSelectionBinding(
         | 
| 15801 16197 | 
             
                  '{{view view.selectView viewName="select"' +
         | 
| 15802 16198 | 
             
                  '    contentBinding="view.collection"' +
         | 
| @@ -15807,7 +16203,7 @@ enifed('ember-htmlbars/tests/integration/select_in_template_test', ['ember-runti | |
| 15807 16203 | 
             
                );
         | 
| 15808 16204 | 
             
              });
         | 
| 15809 16205 |  | 
| 15810 | 
            -
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using  | 
| 16206 | 
            +
              QUnit.test("select element should correctly initialize and update selectedIndex and bound properties when using a bound selection", function() {
         | 
| 15811 16207 | 
             
                testSelectionBinding(
         | 
| 15812 16208 | 
             
                  '{{view view.selectView viewName="select"' +
         | 
| 15813 16209 | 
             
                  '    content=view.collection' +
         | 
| @@ -16961,7 +17357,7 @@ enifed('ember-htmlbars/tests/system/render_view_test', ['ember-runtime/tests/uti | |
| 16961 17357 | 
             
                view = EmberView['default'].create({
         | 
| 16962 17358 | 
             
                  template: {
         | 
| 16963 17359 | 
             
                    isHTMLBars: true,
         | 
| 16964 | 
            -
                    revision: 'Ember@1.11.0 | 
| 17360 | 
            +
                    revision: 'Ember@1.11.0',
         | 
| 16965 17361 | 
             
                    render: function(view, env, contextualElement, blockArguments) {
         | 
| 16966 17362 | 
             
                      for (var i = 0, l = keyNames.length; i < l; i++) {
         | 
| 16967 17363 | 
             
                        var keyName = keyNames[i];
         | 
| @@ -30905,6 +31301,26 @@ enifed('ember-routing-htmlbars/tests/helpers/render_test', ['ember-metal/core', | |
| 30905 31301 | 
             
                }, "The second argument of {{render}} must be a path, e.g. {{render \"post\" post}}.");
         | 
| 30906 31302 | 
             
              });
         | 
| 30907 31303 |  | 
| 31304 | 
            +
              QUnit.test("{{render}} helper should let view provide its own template", function() {
         | 
| 31305 | 
            +
                var template = "{{render 'fish'}}";
         | 
| 31306 | 
            +
                var controller = controllers__controller["default"].extend({ container: container });
         | 
| 31307 | 
            +
                view = EmberView['default'].create({
         | 
| 31308 | 
            +
                  controller: controller.create(),
         | 
| 31309 | 
            +
                  template: compile['default'](template)
         | 
| 31310 | 
            +
                });
         | 
| 31311 | 
            +
             | 
| 31312 | 
            +
                container._registry.register('template:fish', compile['default']('Hello fish!'));
         | 
| 31313 | 
            +
                container._registry.register('template:other', compile['default']('Hello other!'));
         | 
| 31314 | 
            +
             | 
| 31315 | 
            +
                container._registry.register('view:fish', EmberView['default'].extend({
         | 
| 31316 | 
            +
                  templateName: 'other'
         | 
| 31317 | 
            +
                }));
         | 
| 31318 | 
            +
             | 
| 31319 | 
            +
                tests__utils.runAppend(view);
         | 
| 31320 | 
            +
             | 
| 31321 | 
            +
                equal(view.$().text(), 'Hello other!');
         | 
| 31322 | 
            +
              });
         | 
| 31323 | 
            +
             | 
| 30908 31324 | 
             
            });
         | 
| 30909 31325 | 
             
            enifed('ember-routing-htmlbars/tests/helpers/render_test.jscs-test', function () {
         | 
| 30910 31326 |  | 
| @@ -31838,14 +32254,14 @@ enifed('ember-routing/tests/location/hash_location_test', ['ember-metal/core', ' | |
| 31838 32254 | 
             
                var pathname = (tmp.pathname.match(/^\//)) ? tmp.pathname : '/' + tmp.pathname;
         | 
| 31839 32255 |  | 
| 31840 32256 | 
             
                return {
         | 
| 31841 | 
            -
             | 
| 31842 | 
            -
             | 
| 31843 | 
            -
             | 
| 31844 | 
            -
             | 
| 31845 | 
            -
             | 
| 31846 | 
            -
             | 
| 31847 | 
            -
             | 
| 31848 | 
            -
             | 
| 32257 | 
            +
                  hash: tmp.hash,
         | 
| 32258 | 
            +
                  host: tmp.host || 'localhost',
         | 
| 32259 | 
            +
                  hostname: tmp.hostname || 'localhost',
         | 
| 32260 | 
            +
                  href: tmp.href,
         | 
| 32261 | 
            +
                  pathname: pathname,
         | 
| 32262 | 
            +
                  port: tmp.port || '',
         | 
| 32263 | 
            +
                  protocol: protocol,
         | 
| 32264 | 
            +
                  search: tmp.search
         | 
| 31849 32265 | 
             
                };
         | 
| 31850 32266 | 
             
              }
         | 
| 31851 32267 |  | 
| @@ -32044,14 +32460,14 @@ enifed('ember-routing/tests/location/history_location_test', ['ember-metal/prope | |
| 32044 32460 | 
             
                var pathname = (tmp.pathname.match(/^\//)) ? tmp.pathname : '/' + tmp.pathname;
         | 
| 32045 32461 |  | 
| 32046 32462 | 
             
                return {
         | 
| 32047 | 
            -
             | 
| 32048 | 
            -
             | 
| 32049 | 
            -
             | 
| 32050 | 
            -
             | 
| 32051 | 
            -
             | 
| 32052 | 
            -
             | 
| 32053 | 
            -
             | 
| 32054 | 
            -
             | 
| 32463 | 
            +
                  hash: tmp.hash,
         | 
| 32464 | 
            +
                  host: tmp.host || 'localhost',
         | 
| 32465 | 
            +
                  hostname: tmp.hostname || 'localhost',
         | 
| 32466 | 
            +
                  href: tmp.href,
         | 
| 32467 | 
            +
                  pathname: pathname,
         | 
| 32468 | 
            +
                  port: tmp.port || '',
         | 
| 32469 | 
            +
                  protocol: protocol,
         | 
| 32470 | 
            +
                  search: tmp.search
         | 
| 32055 32471 | 
             
                };
         | 
| 32056 32472 | 
             
              }
         | 
| 32057 32473 |  | 
| @@ -32494,8 +32910,8 @@ enifed('ember-routing/tests/system/dsl_test', ['ember-routing/system/router', 'e | |
| 32494 32910 | 
             
                ok(router.router.recognizer.names['bleep.bloop.blork'], 'parent name was used as base of nested routes');
         | 
| 32495 32911 | 
             
              });
         | 
| 32496 32912 |  | 
| 32497 | 
            -
              
         | 
| 32498 32913 | 
             
              // jscs:disable validateIndentation
         | 
| 32914 | 
            +
              
         | 
| 32499 32915 |  | 
| 32500 32916 | 
             
              QUnit.test("should add loading and error routes if _isRouterMapResult is true", function() {
         | 
| 32501 32917 | 
             
                Router.map(function() {
         | 
| @@ -32523,8 +32939,8 @@ enifed('ember-routing/tests/system/dsl_test', ['ember-routing/system/router', 'e | |
| 32523 32939 | 
             
                ok(!router.router.recognizer.names['blork_error'], 'error route was not added');
         | 
| 32524 32940 | 
             
              });
         | 
| 32525 32941 |  | 
| 32526 | 
            -
              // jscs:enable validateIndentation
         | 
| 32527 32942 |  | 
| 32943 | 
            +
              // jscs:enable validateIndentation
         | 
| 32528 32944 |  | 
| 32529 32945 | 
             
            });
         | 
| 32530 32946 | 
             
            enifed('ember-routing/tests/system/dsl_test.jscs-test', function () {
         | 
| @@ -34650,18 +35066,18 @@ enifed('ember-runtime/tests/computed/reduce_computed_macros_test', ['ember-metal | |
| 34650 35066 | 
             
              QUnit.test("it throws an error if given fewer or more than two dependent properties", function() {
         | 
| 34651 35067 | 
             
                throws(function () {
         | 
| 34652 35068 | 
             
                  EmberObject['default'].createWithMixins({
         | 
| 34653 | 
            -
             | 
| 34654 | 
            -
             | 
| 34655 | 
            -
             | 
| 35069 | 
            +
                    array: Ember['default'].A([1,2,3,4,5,6,7]),
         | 
| 35070 | 
            +
                    array2: Ember['default'].A([3,4,5]),
         | 
| 35071 | 
            +
                    diff: reduce_computed_macros.setDiff('array')
         | 
| 34656 35072 | 
             
                  });
         | 
| 34657 35073 | 
             
                }, /requires exactly two dependent arrays/, "setDiff requires two dependent arrays");
         | 
| 34658 35074 |  | 
| 34659 35075 | 
             
                throws(function () {
         | 
| 34660 35076 | 
             
                  EmberObject['default'].createWithMixins({
         | 
| 34661 | 
            -
             | 
| 34662 | 
            -
             | 
| 34663 | 
            -
             | 
| 34664 | 
            -
             | 
| 35077 | 
            +
                    array: Ember['default'].A([1,2,3,4,5,6,7]),
         | 
| 35078 | 
            +
                    array2: Ember['default'].A([3,4,5]),
         | 
| 35079 | 
            +
                    array3: Ember['default'].A([7]),
         | 
| 35080 | 
            +
                    diff: reduce_computed_macros.setDiff('array', 'array2', 'array3')
         | 
| 34665 35081 | 
             
                  });
         | 
| 34666 35082 | 
             
                }, /requires exactly two dependent arrays/, "setDiff requires two dependent arrays");
         | 
| 34667 35083 | 
             
              });
         | 
| @@ -35688,7 +36104,7 @@ enifed('ember-runtime/tests/computed/reduce_computed_test', ['ember-metal/core', | |
| 35688 36104 |  | 
| 35689 36105 | 
             
              QUnit.test("after the first retrieval, array computed properties observe additions to dependent arrays", function() {
         | 
| 35690 36106 | 
             
                var numbers = property_get.get(obj, 'numbers');
         | 
| 35691 | 
            -
             | 
| 36107 | 
            +
                // set up observers
         | 
| 35692 36108 | 
             
                var evenNumbers = property_get.get(obj, 'evenNumbers');
         | 
| 35693 36109 |  | 
| 35694 36110 | 
             
                run['default'](function() {
         | 
| @@ -35700,7 +36116,7 @@ enifed('ember-runtime/tests/computed/reduce_computed_test', ['ember-metal/core', | |
| 35700 36116 |  | 
| 35701 36117 | 
             
              QUnit.test("after the first retrieval, array computed properties observe removals from dependent arrays", function() {
         | 
| 35702 36118 | 
             
                var numbers = property_get.get(obj, 'numbers');
         | 
| 35703 | 
            -
             | 
| 36119 | 
            +
                // set up observers
         | 
| 35704 36120 | 
             
                var evenNumbers = property_get.get(obj, 'evenNumbers');
         | 
| 35705 36121 |  | 
| 35706 36122 | 
             
                run['default'](function() {
         | 
| @@ -36619,7 +37035,7 @@ enifed('ember-runtime/tests/computed/reduce_computed_test.jshint', function () { | |
| 36619 37035 | 
             
              });
         | 
| 36620 37036 |  | 
| 36621 37037 | 
             
            });
         | 
| 36622 | 
            -
            enifed('ember-runtime/tests/controllers/array_controller_test', ['ember-metal/core', 'ember-runtime/tests/suites/mutable_array', 'ember-runtime/controllers/array_controller'], function (Ember, MutableArrayTests, ArrayController) {
         | 
| 37038 | 
            +
            enifed('ember-runtime/tests/controllers/array_controller_test', ['ember-metal/core', 'ember-runtime/tests/suites/mutable_array', 'ember-runtime/controllers/array_controller', 'ember-metal/property_set', 'ember-metal/property_get'], function (Ember, MutableArrayTests, ArrayController, property_set, property_get) {
         | 
| 36623 37039 |  | 
| 36624 37040 | 
             
              'use strict';
         | 
| 36625 37041 |  | 
| @@ -36644,6 +37060,8 @@ enifed('ember-runtime/tests/controllers/array_controller_test', ['ember-metal/co | |
| 36644 37060 | 
             
                }
         | 
| 36645 37061 | 
             
              }).run();
         | 
| 36646 37062 |  | 
| 37063 | 
            +
              QUnit.module("ember-runtime: array_controller");
         | 
| 37064 | 
            +
             | 
| 36647 37065 | 
             
              QUnit.test("defaults its `model` to an empty array", function () {
         | 
| 36648 37066 | 
             
                var Controller = ArrayController['default'].extend();
         | 
| 36649 37067 | 
             
                deepEqual(Controller.create().get("model"), [], "`ArrayController` defaults its model to an empty array");
         | 
| @@ -36651,13 +37069,34 @@ enifed('ember-runtime/tests/controllers/array_controller_test', ['ember-metal/co | |
| 36651 37069 | 
             
                equal(Controller.create().get('lastObject'), undefined, 'can fetch lastObject');
         | 
| 36652 37070 | 
             
              });
         | 
| 36653 37071 |  | 
| 36654 | 
            -
             | 
| 36655 37072 | 
             
              QUnit.test("Ember.ArrayController length property works even if model was not set initially", function() {
         | 
| 36656 37073 | 
             
                var controller = ArrayController['default'].create();
         | 
| 36657 37074 | 
             
                controller.pushObject('item');
         | 
| 36658 37075 | 
             
                equal(controller.get('length'), 1);
         | 
| 36659 37076 | 
             
              });
         | 
| 36660 37077 |  | 
| 37078 | 
            +
              QUnit.test('works properly when model is set to an Ember.A()', function() {
         | 
| 37079 | 
            +
                var controller = ArrayController['default'].create();
         | 
| 37080 | 
            +
             | 
| 37081 | 
            +
                property_set.set(controller, 'model', Ember['default'].A(['red', 'green']));
         | 
| 37082 | 
            +
             | 
| 37083 | 
            +
                deepEqual(property_get.get(controller, 'model'), ['red', 'green'], "can set model as an Ember.Array");
         | 
| 37084 | 
            +
              });
         | 
| 37085 | 
            +
             | 
| 37086 | 
            +
              QUnit.test('works properly when model is set to a plain array', function() {
         | 
| 37087 | 
            +
                var controller = ArrayController['default'].create();
         | 
| 37088 | 
            +
             | 
| 37089 | 
            +
                if (Ember['default'].EXTEND_PROTOTYPES) {
         | 
| 37090 | 
            +
                  property_set.set(controller, 'model', ['red', 'green']);
         | 
| 37091 | 
            +
             | 
| 37092 | 
            +
                  deepEqual(property_get.get(controller, 'model'), ['red', 'green'], "can set model as a plain array");
         | 
| 37093 | 
            +
                } else {
         | 
| 37094 | 
            +
                  expectAssertion(function() {
         | 
| 37095 | 
            +
                    property_set.set(controller, 'model', ['red', 'green']);
         | 
| 37096 | 
            +
                  }, /ArrayController expects `model` to implement the Ember.Array mixin. This can often be fixed by wrapping your model with `Ember\.A\(\)`./);
         | 
| 37097 | 
            +
                }
         | 
| 37098 | 
            +
              });
         | 
| 37099 | 
            +
             | 
| 36661 37100 | 
             
            });
         | 
| 36662 37101 | 
             
            enifed('ember-runtime/tests/controllers/array_controller_test.jscs-test', function () {
         | 
| 36663 37102 |  | 
| @@ -36679,7 +37118,7 @@ enifed('ember-runtime/tests/controllers/array_controller_test.jshint', function | |
| 36679 37118 | 
             
              });
         | 
| 36680 37119 |  | 
| 36681 37120 | 
             
            });
         | 
| 36682 | 
            -
            enifed('ember-runtime/tests/controllers/controller_test', ['ember-runtime/controllers/controller', 'ember-runtime/system/service', 'ember-runtime/controllers/object_controller', 'ember-metal/mixin', 'ember-runtime/system/object', 'ember-runtime/system/container', 'ember-runtime/inject', 'ember-metal/property_get'], function (Controller, Service, object_controller, Mixin, Object, system__container, inject, property_get) {
         | 
| 37121 | 
            +
            enifed('ember-runtime/tests/controllers/controller_test', ['ember-runtime/controllers/controller', 'ember-runtime/system/service', 'ember-runtime/controllers/array_controller', 'ember-runtime/controllers/object_controller', 'ember-metal/mixin', 'ember-runtime/system/object', 'ember-runtime/system/container', 'ember-runtime/inject', 'ember-metal/property_get'], function (Controller, Service, ArrayController, object_controller, Mixin, Object, system__container, inject, property_get) {
         | 
| 36683 37122 |  | 
| 36684 37123 | 
             
              'use strict';
         | 
| 36685 37124 |  | 
| @@ -36895,6 +37334,42 @@ enifed('ember-runtime/tests/controllers/controller_test', ['ember-runtime/contro | |
| 36895 37334 | 
             
                equal(postsController, postController.get('postsController'), "controller.posts is injected");
         | 
| 36896 37335 | 
             
              });
         | 
| 36897 37336 |  | 
| 37337 | 
            +
              QUnit.test("controllers can be injected into ObjectControllers", function() {
         | 
| 37338 | 
            +
                var registry = new system__container.Registry();
         | 
| 37339 | 
            +
                var container = registry.container();
         | 
| 37340 | 
            +
             | 
| 37341 | 
            +
                registry.register('controller:post', Controller['default'].extend({
         | 
| 37342 | 
            +
                  postsController: inject['default'].controller('posts')
         | 
| 37343 | 
            +
                }));
         | 
| 37344 | 
            +
             | 
| 37345 | 
            +
                registry.register('controller:posts', object_controller["default"].extend());
         | 
| 37346 | 
            +
             | 
| 37347 | 
            +
                var postController = container.lookup('controller:post');
         | 
| 37348 | 
            +
                var postsController;
         | 
| 37349 | 
            +
                expectDeprecation(function() {
         | 
| 37350 | 
            +
                  postsController = container.lookup('controller:posts');
         | 
| 37351 | 
            +
                }, object_controller.objectControllerDeprecation);
         | 
| 37352 | 
            +
             | 
| 37353 | 
            +
                equal(postsController, postController.get('postsController'), "controller.posts is injected");
         | 
| 37354 | 
            +
              });
         | 
| 37355 | 
            +
             | 
| 37356 | 
            +
              QUnit.test("controllers can be injected into ArrayControllers", function() {
         | 
| 37357 | 
            +
                var registry = new system__container.Registry();
         | 
| 37358 | 
            +
                var container = registry.container();
         | 
| 37359 | 
            +
             | 
| 37360 | 
            +
                registry.register('controller:post', Controller['default'].extend({
         | 
| 37361 | 
            +
                  postsController: inject['default'].controller('posts')
         | 
| 37362 | 
            +
                }));
         | 
| 37363 | 
            +
             | 
| 37364 | 
            +
                registry.register('controller:posts', ArrayController['default'].extend());
         | 
| 37365 | 
            +
             | 
| 37366 | 
            +
                var postController = container.lookup('controller:post');
         | 
| 37367 | 
            +
                var postsController = container.lookup('controller:posts');
         | 
| 37368 | 
            +
             | 
| 37369 | 
            +
                equal(postsController, postController.get('postsController'), "controller.posts is injected");
         | 
| 37370 | 
            +
              });
         | 
| 37371 | 
            +
             | 
| 37372 | 
            +
             | 
| 36898 37373 | 
             
              QUnit.test("services can be injected into controllers", function() {
         | 
| 36899 37374 | 
             
                var registry = new system__container.Registry();
         | 
| 36900 37375 | 
             
                var container = registry.container();
         | 
| @@ -39349,7 +39824,7 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test', [ | |
| 39349 39824 | 
             
                equal(ObjectA.prop, "propValue");
         | 
| 39350 39825 | 
             
                ObjectA.endPropertyChanges();
         | 
| 39351 39826 |  | 
| 39352 | 
            -
             | 
| 39827 | 
            +
                //end inner nest
         | 
| 39353 39828 | 
             
                ObjectA.set('prop', 'changePropValue');
         | 
| 39354 39829 | 
             
                equal(ObjectA.newFoo, "newFooValue");
         | 
| 39355 39830 |  | 
| @@ -39686,9 +40161,9 @@ enifed('ember-runtime/tests/legacy_1x/system/binding_test', ['ember-metal/core', | |
| 39686 40161 | 
             
                    });
         | 
| 39687 40162 |  | 
| 39688 40163 | 
             
                    TestNamespace.toObject = EmberObject['default'].createWithMixins({
         | 
| 39689 | 
            -
             | 
| 39690 | 
            -
             | 
| 39691 | 
            -
             | 
| 40164 | 
            +
                      valueBinding: ember_metal__binding.Binding.from('TestNamespace.fromObject.value'),
         | 
| 40165 | 
            +
                      localValue: "originalLocal",
         | 
| 40166 | 
            +
                      relativeBinding: ember_metal__binding.Binding.from('localValue')
         | 
| 39692 40167 | 
             
                    });
         | 
| 39693 40168 | 
             
                  });
         | 
| 39694 40169 | 
             
                },
         | 
| @@ -39994,7 +40469,7 @@ enifed('ember-runtime/tests/legacy_1x/system/object/bindings_test', ['ember-meta | |
| 39994 40469 | 
             
                teardown: function() {
         | 
| 39995 40470 | 
             
                  Ember['default'].lookup = originalLookup;
         | 
| 39996 40471 | 
             
                  TestObject = fromObject = extraObject = null;
         | 
| 39997 | 
            -
             | 
| 40472 | 
            +
                  //  delete TestNamespace;
         | 
| 39998 40473 | 
             
                }
         | 
| 39999 40474 |  | 
| 40000 40475 | 
             
              };
         | 
| @@ -40571,8 +41046,8 @@ enifed('ember-runtime/tests/legacy_1x/system/set_test', ['ember-metal/core', 'em | |
| 40571 41046 | 
             
              });
         | 
| 40572 41047 |  | 
| 40573 41048 | 
             
              QUnit.module("Set.pop + Set.copy", {
         | 
| 40574 | 
            -
             | 
| 40575 | 
            -
             | 
| 41049 | 
            +
                // generate a set with every type of object, but none of the specific
         | 
| 41050 | 
            +
                // ones we add in the tests below...
         | 
| 40576 41051 | 
             
                setup: function() {
         | 
| 40577 41052 | 
             
                  ignoreDeprecation(function() {
         | 
| 40578 41053 | 
             
                    set = new Set['default'](Ember['default'].A([
         | 
| @@ -43204,8 +43679,7 @@ enifed('ember-runtime/tests/suites/array', ['exports', 'ember-runtime/tests/suit | |
| 43204 43679 | 
             
              'use strict';
         | 
| 43205 43680 |  | 
| 43206 43681 | 
             
              var ObserverClass = enumerable.ObserverClass.extend({
         | 
| 43207 | 
            -
             | 
| 43208 | 
            -
                 observeArray: function(obj) {
         | 
| 43682 | 
            +
                observeArray: function(obj) {
         | 
| 43209 43683 | 
             
                  obj.addArrayObserver(this);
         | 
| 43210 43684 | 
             
                  return this;
         | 
| 43211 43685 | 
             
                },
         | 
| @@ -52187,7 +52661,7 @@ enifed('ember-template-compiler/tests/system/compile_test', ['ember-template-com | |
| 52187 52661 |  | 
| 52188 52662 | 
             
                var actual = compile['default'](templateString);
         | 
| 52189 52663 |  | 
| 52190 | 
            -
                equal(actual.revision, 'Ember@1.11.0 | 
| 52664 | 
            +
                equal(actual.revision, 'Ember@1.11.0', 'revision is included in generated template');
         | 
| 52191 52665 | 
             
              });
         | 
| 52192 52666 |  | 
| 52193 52667 | 
             
              QUnit.test('the template revision is different than the HTMLBars default revision', function() {
         | 
| @@ -52423,7 +52897,7 @@ enifed('ember-testing/test.jshint', function () { | |
| 52423 52897 | 
             
              });
         | 
| 52424 52898 |  | 
| 52425 52899 | 
             
            });
         | 
| 52426 | 
            -
            enifed('ember-testing/tests/acceptance_test', ['ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test', 'ember-testing/adapters/qunit', 'ember-views/views/view', 'ember-testing/initializers', 'ember-application/system/application', 'ember-routing/system/route', 'ember-template-compiler/system/compile', 'ember-routing'], function (run, jQuery, Test, QUnitAdapter, EmberView, __dep5__, EmberApplication, EmberRoute, compile) {
         | 
| 52900 | 
            +
            enifed('ember-testing/tests/acceptance_test', ['ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test', 'ember-testing/adapters/qunit', 'ember-views/views/view', 'ember-testing/initializers', 'ember-application/system/application', 'ember-routing/system/route', 'ember-template-compiler/system/compile', 'ember-runtime/ext/rsvp', 'ember-routing'], function (run, jQuery, Test, QUnitAdapter, EmberView, __dep5__, EmberApplication, EmberRoute, compile, RSVP) {
         | 
| 52427 52901 |  | 
| 52428 52902 | 
             
              'use strict';
         | 
| 52429 52903 |  | 
| @@ -52486,7 +52960,7 @@ enifed('ember-testing/tests/acceptance_test', ['ember-metal/run_loop', 'ember-vi | |
| 52486 52960 | 
             
                  });
         | 
| 52487 52961 |  | 
| 52488 52962 | 
             
                  Test['default'].registerAsyncHelper('slowHelper', function() {
         | 
| 52489 | 
            -
                    return  | 
| 52963 | 
            +
                    return new RSVP['default'].Promise(function(resolve) {
         | 
| 52490 52964 | 
             
                      setTimeout(resolve, 10);
         | 
| 52491 52965 | 
             
                    });
         | 
| 52492 52966 | 
             
                  });
         | 
| @@ -54786,26 +55260,6 @@ enifed('ember-views/system/renderer.jshint', function () { | |
| 54786 55260 | 
             
                ok(true, 'ember-views/system/renderer.js should pass jshint.'); 
         | 
| 54787 55261 | 
             
              });
         | 
| 54788 55262 |  | 
| 54789 | 
            -
            });
         | 
| 54790 | 
            -
            enifed('ember-views/system/sanitize_attribute_value.jscs-test', function () {
         | 
| 54791 | 
            -
             | 
| 54792 | 
            -
              'use strict';
         | 
| 54793 | 
            -
             | 
| 54794 | 
            -
              module('JSCS - ember-views/system');
         | 
| 54795 | 
            -
              test('ember-views/system/sanitize_attribute_value.js should pass jscs', function() {
         | 
| 54796 | 
            -
                ok(true, 'ember-views/system/sanitize_attribute_value.js should pass jscs.');
         | 
| 54797 | 
            -
              });
         | 
| 54798 | 
            -
             | 
| 54799 | 
            -
            });
         | 
| 54800 | 
            -
            enifed('ember-views/system/sanitize_attribute_value.jshint', function () {
         | 
| 54801 | 
            -
             | 
| 54802 | 
            -
              'use strict';
         | 
| 54803 | 
            -
             | 
| 54804 | 
            -
              module('JSHint - ember-views/system');
         | 
| 54805 | 
            -
              test('ember-views/system/sanitize_attribute_value.js should pass jshint', function() { 
         | 
| 54806 | 
            -
                ok(true, 'ember-views/system/sanitize_attribute_value.js should pass jshint.'); 
         | 
| 54807 | 
            -
              });
         | 
| 54808 | 
            -
             | 
| 54809 55263 | 
             
            });
         | 
| 54810 55264 | 
             
            enifed('ember-views/system/utils.jscs-test', function () {
         | 
| 54811 55265 |  | 
| @@ -55936,84 +56390,6 @@ enifed('ember-views/tests/system/render_buffer_test.jshint', function () { | |
| 55936 56390 | 
             
                ok(true, 'ember-views/tests/system/render_buffer_test.js should pass jshint.'); 
         | 
| 55937 56391 | 
             
              });
         | 
| 55938 56392 |  | 
| 55939 | 
            -
            });
         | 
| 55940 | 
            -
            enifed('ember-views/tests/system/sanitize_attribute_value_test', ['ember-views/system/sanitize_attribute_value', 'ember-htmlbars/utils/string', 'dom-helper'], function (sanitizeAttributeValue, string, DOMHelper) {
         | 
| 55941 | 
            -
             | 
| 55942 | 
            -
              'use strict';
         | 
| 55943 | 
            -
             | 
| 55944 | 
            -
              QUnit.module('ember-views: sanitizeAttributeValue(null, "href")');
         | 
| 55945 | 
            -
             | 
| 55946 | 
            -
              var goodProtocols = ['https', 'http', 'ftp', 'tel', 'file'];
         | 
| 55947 | 
            -
              var dom = new DOMHelper['default']();
         | 
| 55948 | 
            -
             | 
| 55949 | 
            -
              for (var i = 0, l = goodProtocols.length; i < l; i++) {
         | 
| 55950 | 
            -
                buildProtocolTest(goodProtocols[i]);
         | 
| 55951 | 
            -
              }
         | 
| 55952 | 
            -
             | 
| 55953 | 
            -
              function buildProtocolTest(protocol) {
         | 
| 55954 | 
            -
                QUnit.test('allows ' + protocol + ' protocol when element is not provided', function() {
         | 
| 55955 | 
            -
                  expect(1);
         | 
| 55956 | 
            -
             | 
| 55957 | 
            -
                  var expected = protocol + '://foo.com';
         | 
| 55958 | 
            -
                  var actual = sanitizeAttributeValue['default'](dom, null, 'href', expected);
         | 
| 55959 | 
            -
             | 
| 55960 | 
            -
                  equal(actual, expected, 'protocol not escaped');
         | 
| 55961 | 
            -
                });
         | 
| 55962 | 
            -
              }
         | 
| 55963 | 
            -
             | 
| 55964 | 
            -
              QUnit.test('blocks javascript: protocol', function() {
         | 
| 55965 | 
            -
                /* jshint scripturl:true */
         | 
| 55966 | 
            -
             | 
| 55967 | 
            -
                expect(1);
         | 
| 55968 | 
            -
             | 
| 55969 | 
            -
                var expected = 'javascript:alert("foo")';
         | 
| 55970 | 
            -
                var actual = sanitizeAttributeValue['default'](dom, null, 'href', expected);
         | 
| 55971 | 
            -
             | 
| 55972 | 
            -
                equal(actual, 'unsafe:' + expected, 'protocol escaped');
         | 
| 55973 | 
            -
              });
         | 
| 55974 | 
            -
             | 
| 55975 | 
            -
              QUnit.test('blocks blacklisted protocols', function() {
         | 
| 55976 | 
            -
                /* jshint scripturl:true */
         | 
| 55977 | 
            -
             | 
| 55978 | 
            -
                expect(1);
         | 
| 55979 | 
            -
             | 
| 55980 | 
            -
                var expected = 'javascript:alert("foo")';
         | 
| 55981 | 
            -
                var actual = sanitizeAttributeValue['default'](dom, null, 'href', expected);
         | 
| 55982 | 
            -
             | 
| 55983 | 
            -
                equal(actual, 'unsafe:' + expected, 'protocol escaped');
         | 
| 55984 | 
            -
              });
         | 
| 55985 | 
            -
             | 
| 55986 | 
            -
              QUnit.test('does not block SafeStrings', function() {
         | 
| 55987 | 
            -
                /* jshint scripturl:true */
         | 
| 55988 | 
            -
             | 
| 55989 | 
            -
                expect(1);
         | 
| 55990 | 
            -
             | 
| 55991 | 
            -
                var expected = 'javascript:alert("foo")';
         | 
| 55992 | 
            -
                var actual = sanitizeAttributeValue['default'](dom, null, 'href', new string.SafeString(expected));
         | 
| 55993 | 
            -
             | 
| 55994 | 
            -
                equal(actual, expected, 'protocol unescaped');
         | 
| 55995 | 
            -
              });
         | 
| 55996 | 
            -
             | 
| 55997 | 
            -
            });
         | 
| 55998 | 
            -
            enifed('ember-views/tests/system/sanitize_attribute_value_test.jscs-test', function () {
         | 
| 55999 | 
            -
             | 
| 56000 | 
            -
              'use strict';
         | 
| 56001 | 
            -
             | 
| 56002 | 
            -
              module('JSCS - ember-views/tests/system');
         | 
| 56003 | 
            -
              test('ember-views/tests/system/sanitize_attribute_value_test.js should pass jscs', function() {
         | 
| 56004 | 
            -
                ok(true, 'ember-views/tests/system/sanitize_attribute_value_test.js should pass jscs.');
         | 
| 56005 | 
            -
              });
         | 
| 56006 | 
            -
             | 
| 56007 | 
            -
            });
         | 
| 56008 | 
            -
            enifed('ember-views/tests/system/sanitize_attribute_value_test.jshint', function () {
         | 
| 56009 | 
            -
             | 
| 56010 | 
            -
              'use strict';
         | 
| 56011 | 
            -
             | 
| 56012 | 
            -
              module('JSHint - ember-views/tests/system');
         | 
| 56013 | 
            -
              test('ember-views/tests/system/sanitize_attribute_value_test.js should pass jshint', function() { 
         | 
| 56014 | 
            -
                ok(true, 'ember-views/tests/system/sanitize_attribute_value_test.js should pass jshint.'); 
         | 
| 56015 | 
            -
              });
         | 
| 56016 | 
            -
             | 
| 56017 56393 | 
             
            });
         | 
| 56018 56394 | 
             
            enifed('ember-views/tests/system/view_utils_test', ['ember-metal/run_loop', 'ember-views/views/view'], function (run, View) {
         | 
| 56019 56395 |  | 
| @@ -56868,10 +57244,10 @@ enifed('ember-views/tests/views/collection_test', ['ember-metal/core', 'ember-me | |
| 56868 57244 | 
             
                Ember['default'].lookup = {
         | 
| 56869 57245 | 
             
                  App: {
         | 
| 56870 57246 | 
             
                    EmptyView: View['default'].extend({
         | 
| 56871 | 
            -
             | 
| 56872 | 
            -
             | 
| 56873 | 
            -
             | 
| 56874 | 
            -
             | 
| 57247 | 
            +
                      tagName: 'kbd',
         | 
| 57248 | 
            +
                      render: function(buf) {
         | 
| 57249 | 
            +
                        buf.push("THIS IS AN EMPTY VIEW");
         | 
| 57250 | 
            +
                      }
         | 
| 56875 57251 | 
             
                    })
         | 
| 56876 57252 | 
             
                  }
         | 
| 56877 57253 | 
             
                };
         | 
| @@ -62224,7 +62600,7 @@ enifed('ember-views/tests/views/view/inject_test.jshint', function () { | |
| 62224 62600 | 
             
              });
         | 
| 62225 62601 |  | 
| 62226 62602 | 
             
            });
         | 
| 62227 | 
            -
            enifed('ember-views/tests/views/view/is_visible_test', ['ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/run_loop', 'ember-views/views/view', 'ember-views/views/container_view'], function (property_get, property_set, run, EmberView, ContainerView) {
         | 
| 62603 | 
            +
            enifed('ember-views/tests/views/view/is_visible_test', ['ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/run_loop', 'ember-views/views/view', 'ember-views/views/container_view', 'ember-template-compiler/system/compile'], function (property_get, property_set, run, EmberView, ContainerView, compile) {
         | 
| 62228 62604 |  | 
| 62229 62605 | 
             
              'use strict';
         | 
| 62230 62606 |  | 
| @@ -62350,8 +62726,28 @@ enifed('ember-views/tests/views/view/is_visible_test', ['ember-metal/property_ge | |
| 62350 62726 | 
             
              });
         | 
| 62351 62727 |  | 
| 62352 62728 | 
             
              QUnit.test("view should be notified after isVisible is set to false and the element has been hidden", function() {
         | 
| 62353 | 
            -
                 | 
| 62354 | 
            -
             | 
| 62729 | 
            +
                run['default'](function() {
         | 
| 62730 | 
            +
                  view = View.create({ isVisible: false });
         | 
| 62731 | 
            +
                  view.append();
         | 
| 62732 | 
            +
                });
         | 
| 62733 | 
            +
             | 
| 62734 | 
            +
                ok(view.$().is(':hidden'), "precond - view is hidden when appended");
         | 
| 62735 | 
            +
             | 
| 62736 | 
            +
                run['default'](function() {
         | 
| 62737 | 
            +
                  view.set('isVisible', true);
         | 
| 62738 | 
            +
                });
         | 
| 62739 | 
            +
             | 
| 62740 | 
            +
                ok(view.$().is(':visible'), "precond - view is now visible");
         | 
| 62741 | 
            +
                equal(parentBecameVisible, 1);
         | 
| 62742 | 
            +
                equal(childBecameVisible, 1);
         | 
| 62743 | 
            +
                equal(grandchildBecameVisible, 1);
         | 
| 62744 | 
            +
              });
         | 
| 62745 | 
            +
             | 
| 62746 | 
            +
              QUnit.test("view should change visibility with a virtual childView", function() {
         | 
| 62747 | 
            +
                view = View.create({
         | 
| 62748 | 
            +
                  isVisible: true,
         | 
| 62749 | 
            +
                  template: compile['default']('<div {{bind-attr bing="tweep"}}></div>')
         | 
| 62750 | 
            +
                });
         | 
| 62355 62751 |  | 
| 62356 62752 | 
             
                run['default'](function() {
         | 
| 62357 62753 | 
             
                  view.append();
         | 
| @@ -62360,13 +62756,10 @@ enifed('ember-views/tests/views/view/is_visible_test', ['ember-metal/property_ge | |
| 62360 62756 | 
             
                ok(view.$().is(':visible'), "precond - view is visible when appended");
         | 
| 62361 62757 |  | 
| 62362 62758 | 
             
                run['default'](function() {
         | 
| 62363 | 
            -
                   | 
| 62759 | 
            +
                  view.set('isVisible', false);
         | 
| 62364 62760 | 
             
                });
         | 
| 62365 62761 |  | 
| 62366 | 
            -
                ok( | 
| 62367 | 
            -
             | 
| 62368 | 
            -
                equal(childBecameHidden, 1);
         | 
| 62369 | 
            -
                equal(grandchildBecameHidden, 1);
         | 
| 62762 | 
            +
                ok(view.$().is(':hidden'), "precond - view is now hidden");
         | 
| 62370 62763 | 
             
              });
         | 
| 62371 62764 |  | 
| 62372 62765 | 
             
              QUnit.test("view should be notified after isVisible is set to true and the element has been shown", function() {
         | 
| @@ -65517,7 +65910,7 @@ enifed('ember/tests/helpers/helper_registration_test', ['ember', 'ember-htmlbars | |
| 65517 65910 | 
             
                ok(!helpers['x-borf'], "Container-registered helper doesn't wind up on global helpers hash");
         | 
| 65518 65911 | 
             
              });
         | 
| 65519 65912 |  | 
| 65520 | 
            -
             | 
| 65913 | 
            +
              // need to make `makeBoundHelper` for HTMLBars
         | 
| 65521 65914 | 
             
              QUnit.test("Bound helpers registered on the container can be late-invoked", function() {
         | 
| 65522 65915 | 
             
                Ember.TEMPLATES.application = compile("<div id='wrapper'>{{x-reverse}} {{x-reverse foo}}</div>");
         | 
| 65523 65916 |  | 
| @@ -65532,8 +65925,8 @@ enifed('ember/tests/helpers/helper_registration_test', ['ember', 'ember-htmlbars | |
| 65532 65925 | 
             
                ok(!helpers['x-reverse'], "Container-registered helper doesn't wind up on global helpers hash");
         | 
| 65533 65926 | 
             
              });
         | 
| 65534 65927 |  | 
| 65535 | 
            -
             | 
| 65536 | 
            -
             | 
| 65928 | 
            +
              // we have unit tests for this in ember-htmlbars/tests/system/lookup-helper
         | 
| 65929 | 
            +
              // and we are not going to recreate the handlebars helperMissing concept
         | 
| 65537 65930 | 
             
              QUnit.test("Undashed helpers registered on the container can not (presently) be invoked", function() {
         | 
| 65538 65931 |  | 
| 65539 65932 | 
             
                // Note: the reason we're not allowing undashed helpers is to avoid
         | 
| @@ -67224,7 +67617,7 @@ enifed('ember/tests/helpers/link_to_test', ['ember', 'ember-runtime/controllers/ | |
| 67224 67617 | 
             
                equal(router.get('location.path'), '/about');
         | 
| 67225 67618 | 
             
              }
         | 
| 67226 67619 |  | 
| 67227 | 
            -
              var aboutDefer;
         | 
| 67620 | 
            +
              var aboutDefer, otherDefer;
         | 
| 67228 67621 |  | 
| 67229 67622 | 
             
              if (!Ember.FEATURES.isEnabled('ember-routing-transitioning-classes')) {
         | 
| 67230 67623 | 
             
                QUnit.module("The {{link-to}} helper: eager URL updating", {
         | 
| @@ -67362,12 +67755,20 @@ enifed('ember/tests/helpers/link_to_test', ['ember', 'ember-runtime/controllers/ | |
| 67362 67755 | 
             
                      });
         | 
| 67363 67756 |  | 
| 67364 67757 | 
             
                      App.AboutRoute = Ember.Route.extend({
         | 
| 67365 | 
            -
                        model: function() {
         | 
| 67758 | 
            +
                        model: function () {
         | 
| 67366 67759 | 
             
                          aboutDefer = Ember.RSVP.defer();
         | 
| 67367 67760 | 
             
                          return aboutDefer.promise;
         | 
| 67368 67761 | 
             
                        }
         | 
| 67369 67762 | 
             
                      });
         | 
| 67370 67763 |  | 
| 67764 | 
            +
                      App.OtherRoute = Ember.Route.extend({
         | 
| 67765 | 
            +
                        model: function () {
         | 
| 67766 | 
            +
                          otherDefer = Ember.RSVP.defer();
         | 
| 67767 | 
            +
                          return otherDefer.promise;
         | 
| 67768 | 
            +
                        }
         | 
| 67769 | 
            +
                      });
         | 
| 67770 | 
            +
             | 
| 67771 | 
            +
             | 
| 67371 67772 | 
             
                      Ember.TEMPLATES.application = compile("{{outlet}}{{link-to 'Index' 'index' id='index-link'}}{{link-to 'About' 'about' id='about-link'}}{{link-to 'Other' 'other' id='other-link'}}");
         | 
| 67372 67773 | 
             
                    });
         | 
| 67373 67774 | 
             
                  },
         | 
| @@ -67408,6 +67809,85 @@ enifed('ember/tests/helpers/link_to_test', ['ember', 'ember-runtime/controllers/ | |
| 67408 67809 | 
             
                  assertHasClass('ember-transitioning-in', $index, false, $about, false, $other, false);
         | 
| 67409 67810 | 
             
                  assertHasClass('ember-transitioning-out', $index, false, $about, false, $other, false);
         | 
| 67410 67811 | 
             
                });
         | 
| 67812 | 
            +
             | 
| 67813 | 
            +
                QUnit.test("while a transition is underway with nested link-to's", function() {
         | 
| 67814 | 
            +
                  expect(54);
         | 
| 67815 | 
            +
             | 
| 67816 | 
            +
                  Router.map(function() {
         | 
| 67817 | 
            +
                    this.route('parent-route', function() {
         | 
| 67818 | 
            +
                      this.route('about');
         | 
| 67819 | 
            +
                      this.route('other');
         | 
| 67820 | 
            +
                    });
         | 
| 67821 | 
            +
                  });
         | 
| 67822 | 
            +
             | 
| 67823 | 
            +
                  App.ParentRouteAboutRoute = Ember.Route.extend({
         | 
| 67824 | 
            +
                    model: function () {
         | 
| 67825 | 
            +
                      aboutDefer = Ember.RSVP.defer();
         | 
| 67826 | 
            +
                      return aboutDefer.promise;
         | 
| 67827 | 
            +
                    }
         | 
| 67828 | 
            +
                  });
         | 
| 67829 | 
            +
             | 
| 67830 | 
            +
                  App.ParentRouteOtherRoute = Ember.Route.extend({
         | 
| 67831 | 
            +
                    model: function () {
         | 
| 67832 | 
            +
                      otherDefer = Ember.RSVP.defer();
         | 
| 67833 | 
            +
                      return otherDefer.promise;
         | 
| 67834 | 
            +
                    }
         | 
| 67835 | 
            +
                  });
         | 
| 67836 | 
            +
             | 
| 67837 | 
            +
                  Ember.TEMPLATES.application = compile("{{outlet}} {{#link-to 'index' tagName='li'}} {{link-to 'Index' 'index' id='index-link'}} {{/link-to}} {{#link-to 'parent-route.about' tagName='li'}} {{link-to 'About' 'parent-route.about' id='about-link'}} {{/link-to}} {{#link-to 'parent-route.other' tagName='li'}} {{link-to 'Other' 'parent-route.other' id='other-link'}} {{/link-to}}");
         | 
| 67838 | 
            +
             | 
| 67839 | 
            +
                  bootApplication();
         | 
| 67840 | 
            +
             | 
| 67841 | 
            +
                  function assertHasClass(className) {
         | 
| 67842 | 
            +
                    var i = 1;
         | 
| 67843 | 
            +
                    while (i < arguments.length) {
         | 
| 67844 | 
            +
                      var $a = arguments[i];
         | 
| 67845 | 
            +
                      var shouldHaveClass = arguments[i+1];
         | 
| 67846 | 
            +
                      equal($a.hasClass(className), shouldHaveClass, $a.attr('id') + " should " + (shouldHaveClass ? '' : "not ") + "have class " + className);
         | 
| 67847 | 
            +
                      i +=2;
         | 
| 67848 | 
            +
                    }
         | 
| 67849 | 
            +
                  }
         | 
| 67850 | 
            +
             | 
| 67851 | 
            +
                  var $index = Ember.$('#index-link');
         | 
| 67852 | 
            +
                  var $about = Ember.$('#about-link');
         | 
| 67853 | 
            +
                  var $other = Ember.$('#other-link');
         | 
| 67854 | 
            +
             | 
| 67855 | 
            +
                  Ember.run($about, 'click');
         | 
| 67856 | 
            +
             | 
| 67857 | 
            +
                  assertHasClass('active', $index, true, $about, false, $other, false);
         | 
| 67858 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, true, $other, false);
         | 
| 67859 | 
            +
                  assertHasClass('ember-transitioning-out', $index, true, $about, false, $other, false);
         | 
| 67860 | 
            +
             | 
| 67861 | 
            +
                  Ember.run(aboutDefer, 'resolve');
         | 
| 67862 | 
            +
             | 
| 67863 | 
            +
                  assertHasClass('active', $index, false, $about, true, $other, false);
         | 
| 67864 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, false, $other, false);
         | 
| 67865 | 
            +
                  assertHasClass('ember-transitioning-out', $index, false, $about, false, $other, false);
         | 
| 67866 | 
            +
             | 
| 67867 | 
            +
                  Ember.run($other, 'click');
         | 
| 67868 | 
            +
             | 
| 67869 | 
            +
                  assertHasClass('active', $index, false, $about, true, $other, false);
         | 
| 67870 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, false, $other, true);
         | 
| 67871 | 
            +
                  assertHasClass('ember-transitioning-out', $index, false, $about, true, $other, false);
         | 
| 67872 | 
            +
             | 
| 67873 | 
            +
                  Ember.run(otherDefer, 'resolve');
         | 
| 67874 | 
            +
             | 
| 67875 | 
            +
                  assertHasClass('active', $index, false, $about, false, $other, true);
         | 
| 67876 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, false, $other, false);
         | 
| 67877 | 
            +
                  assertHasClass('ember-transitioning-out', $index, false, $about, false, $other, false);
         | 
| 67878 | 
            +
             | 
| 67879 | 
            +
                  Ember.run($about, 'click');
         | 
| 67880 | 
            +
             | 
| 67881 | 
            +
                  assertHasClass('active', $index, false, $about, false, $other, true);
         | 
| 67882 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, true, $other, false);
         | 
| 67883 | 
            +
                  assertHasClass('ember-transitioning-out', $index, false, $about, false, $other, true);
         | 
| 67884 | 
            +
             | 
| 67885 | 
            +
                  Ember.run(aboutDefer, 'resolve');
         | 
| 67886 | 
            +
             | 
| 67887 | 
            +
                  assertHasClass('active', $index, false, $about, true, $other, false);
         | 
| 67888 | 
            +
                  assertHasClass('ember-transitioning-in', $index, false, $about, false, $other, false);
         | 
| 67889 | 
            +
                  assertHasClass('ember-transitioning-out', $index, false, $about, false, $other, false);
         | 
| 67890 | 
            +
                });
         | 
| 67411 67891 |  | 
| 67412 67892 |  | 
| 67413 67893 | 
             
            });
         | 
| @@ -67537,6 +68017,8 @@ enifed('ember/tests/routing/basic_test', ['ember', 'ember-metal/enumerable_utils | |
| 67537 68017 |  | 
| 67538 68018 | 
             
              'use strict';
         | 
| 67539 68019 |  | 
| 68020 | 
            +
              var trim = Ember.$.trim;
         | 
| 68021 | 
            +
             | 
| 67540 68022 | 
             
              var compile = EmberHandlebars['default'].compile;
         | 
| 67541 68023 |  | 
| 67542 68024 | 
             
              var Router, App, router, registry, container, originalLoggerError;
         | 
| @@ -71139,6 +71621,247 @@ enifed('ember/tests/routing/basic_test', ['ember', 'ember-metal/enumerable_utils | |
| 71139 71621 | 
             
                equal(Ember.$('#qunit-fixture').text(), "A-The index-B-Hello world-C", "second render");
         | 
| 71140 71622 | 
             
              });
         | 
| 71141 71623 |  | 
| 71624 | 
            +
              QUnit.test("Can render routes with no 'main' outlet and their children", function() {
         | 
| 71625 | 
            +
                Ember.TEMPLATES.application = compile('<div id="application">{{outlet "app"}}</div>');
         | 
| 71626 | 
            +
                Ember.TEMPLATES.app = compile('<div id="app-common">{{outlet "common"}}</div><div id="app-sub">{{outlet "sub"}}</div>');
         | 
| 71627 | 
            +
                Ember.TEMPLATES.common = compile('<div id="common"></div>');
         | 
| 71628 | 
            +
                Ember.TEMPLATES.sub = compile('<div id="sub"></div>');
         | 
| 71629 | 
            +
             | 
| 71630 | 
            +
                Router.map(function() {
         | 
| 71631 | 
            +
                  this.route('app', { path: "/app" }, function() {
         | 
| 71632 | 
            +
                    this.resource('sub', { path: "/sub" });
         | 
| 71633 | 
            +
                  });
         | 
| 71634 | 
            +
                });
         | 
| 71635 | 
            +
             | 
| 71636 | 
            +
                App.AppRoute = Ember.Route.extend({
         | 
| 71637 | 
            +
                  renderTemplate : function() {
         | 
| 71638 | 
            +
                    this.render('app', {
         | 
| 71639 | 
            +
                      outlet: 'app',
         | 
| 71640 | 
            +
                      into: 'application'
         | 
| 71641 | 
            +
                    });
         | 
| 71642 | 
            +
                    this.render('common', {
         | 
| 71643 | 
            +
                      outlet: 'common',
         | 
| 71644 | 
            +
                      into: 'app'
         | 
| 71645 | 
            +
                    });
         | 
| 71646 | 
            +
                  }
         | 
| 71647 | 
            +
                });
         | 
| 71648 | 
            +
             | 
| 71649 | 
            +
                App.SubRoute = Ember.Route.extend({
         | 
| 71650 | 
            +
                  renderTemplate : function() {
         | 
| 71651 | 
            +
                    this.render('sub', {
         | 
| 71652 | 
            +
                      outlet: 'sub',
         | 
| 71653 | 
            +
                      into: 'app'
         | 
| 71654 | 
            +
                    });
         | 
| 71655 | 
            +
                  }
         | 
| 71656 | 
            +
                });
         | 
| 71657 | 
            +
             | 
| 71658 | 
            +
                bootApplication();
         | 
| 71659 | 
            +
                handleURL('/app');
         | 
| 71660 | 
            +
                equal(Ember.$('#app-common #common').length, 1, "Finds common while viewing /app");
         | 
| 71661 | 
            +
                handleURL('/app/sub');
         | 
| 71662 | 
            +
                equal(Ember.$('#app-common #common').length, 1, "Finds common while viewing /app/sub");
         | 
| 71663 | 
            +
                equal(Ember.$('#app-sub #sub').length, 1, "Finds sub while viewing /app/sub");
         | 
| 71664 | 
            +
              });
         | 
| 71665 | 
            +
             | 
| 71666 | 
            +
              QUnit.test("Tolerates stacked renders", function() {
         | 
| 71667 | 
            +
                Ember.TEMPLATES.application = compile('{{outlet}}{{outlet "modal"}}');
         | 
| 71668 | 
            +
                Ember.TEMPLATES.index = compile('hi');
         | 
| 71669 | 
            +
                Ember.TEMPLATES.layer = compile('layer');
         | 
| 71670 | 
            +
                App.ApplicationRoute = Ember.Route.extend({
         | 
| 71671 | 
            +
                  actions: {
         | 
| 71672 | 
            +
                    openLayer: function() {
         | 
| 71673 | 
            +
                      this.render('layer', {
         | 
| 71674 | 
            +
                        into: 'application',
         | 
| 71675 | 
            +
                        outlet: 'modal'
         | 
| 71676 | 
            +
                      });
         | 
| 71677 | 
            +
                    },
         | 
| 71678 | 
            +
                    close: function() {
         | 
| 71679 | 
            +
                      this.disconnectOutlet({
         | 
| 71680 | 
            +
                        outlet: 'modal',
         | 
| 71681 | 
            +
                        parentView: 'application'
         | 
| 71682 | 
            +
                      });
         | 
| 71683 | 
            +
                    }
         | 
| 71684 | 
            +
                  }
         | 
| 71685 | 
            +
                });
         | 
| 71686 | 
            +
                bootApplication();
         | 
| 71687 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hi');
         | 
| 71688 | 
            +
                Ember.run(router, 'send', 'openLayer');
         | 
| 71689 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hilayer');
         | 
| 71690 | 
            +
                Ember.run(router, 'send', 'openLayer');
         | 
| 71691 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hilayer');
         | 
| 71692 | 
            +
                Ember.run(router, 'send', 'close');
         | 
| 71693 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hi');
         | 
| 71694 | 
            +
              });
         | 
| 71695 | 
            +
             | 
| 71696 | 
            +
              QUnit.test("Renders child into parent with non-default template name", function() {
         | 
| 71697 | 
            +
                Ember.TEMPLATES.application = compile('<div class="a">{{outlet}}</div>');
         | 
| 71698 | 
            +
                Ember.TEMPLATES['exports/root'] = compile('<div class="b">{{outlet}}</div>');
         | 
| 71699 | 
            +
                Ember.TEMPLATES['exports/index'] = compile('<div class="c"></div>');
         | 
| 71700 | 
            +
             | 
| 71701 | 
            +
                Router.map(function() {
         | 
| 71702 | 
            +
                  this.route('root', function() {
         | 
| 71703 | 
            +
                  });
         | 
| 71704 | 
            +
                });
         | 
| 71705 | 
            +
             | 
| 71706 | 
            +
                App.RootRoute = Ember.Route.extend({
         | 
| 71707 | 
            +
                  renderTemplate: function() {
         | 
| 71708 | 
            +
                    this.render('exports/root');
         | 
| 71709 | 
            +
                  }
         | 
| 71710 | 
            +
                });
         | 
| 71711 | 
            +
             | 
| 71712 | 
            +
                App.RootIndexRoute = Ember.Route.extend({
         | 
| 71713 | 
            +
                  renderTemplate: function() {
         | 
| 71714 | 
            +
                    this.render('exports/index');
         | 
| 71715 | 
            +
                  }
         | 
| 71716 | 
            +
                });
         | 
| 71717 | 
            +
             | 
| 71718 | 
            +
                bootApplication();
         | 
| 71719 | 
            +
                handleURL('/root');
         | 
| 71720 | 
            +
                equal(Ember.$('#qunit-fixture .a .b .c').length, 1);
         | 
| 71721 | 
            +
              });
         | 
| 71722 | 
            +
             | 
| 71723 | 
            +
              QUnit.test("Allows any route to disconnectOutlet another route's templates", function() {
         | 
| 71724 | 
            +
                Ember.TEMPLATES.application = compile('{{outlet}}{{outlet "modal"}}');
         | 
| 71725 | 
            +
                Ember.TEMPLATES.index = compile('hi');
         | 
| 71726 | 
            +
                Ember.TEMPLATES.layer = compile('layer');
         | 
| 71727 | 
            +
                App.ApplicationRoute = Ember.Route.extend({
         | 
| 71728 | 
            +
                  actions: {
         | 
| 71729 | 
            +
                    openLayer: function() {
         | 
| 71730 | 
            +
                      this.render('layer', {
         | 
| 71731 | 
            +
                        into: 'application',
         | 
| 71732 | 
            +
                        outlet: 'modal'
         | 
| 71733 | 
            +
                      });
         | 
| 71734 | 
            +
                    }
         | 
| 71735 | 
            +
                  }
         | 
| 71736 | 
            +
                });
         | 
| 71737 | 
            +
                App.IndexRoute = Ember.Route.extend({
         | 
| 71738 | 
            +
                  actions: {
         | 
| 71739 | 
            +
                    close: function() {
         | 
| 71740 | 
            +
                      this.disconnectOutlet({
         | 
| 71741 | 
            +
                        parentView: 'application',
         | 
| 71742 | 
            +
                        outlet: 'modal'
         | 
| 71743 | 
            +
                      });
         | 
| 71744 | 
            +
                    }
         | 
| 71745 | 
            +
                  }
         | 
| 71746 | 
            +
                });
         | 
| 71747 | 
            +
                bootApplication();
         | 
| 71748 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hi');
         | 
| 71749 | 
            +
                Ember.run(router, 'send', 'openLayer');
         | 
| 71750 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hilayer');
         | 
| 71751 | 
            +
                Ember.run(router, 'send', 'close');
         | 
| 71752 | 
            +
                equal(trim(Ember.$('#qunit-fixture').text()), 'hi');
         | 
| 71753 | 
            +
              });
         | 
| 71754 | 
            +
             | 
| 71755 | 
            +
              QUnit.test("Can render({into:...}) the render helper", function() {
         | 
| 71756 | 
            +
                Ember.TEMPLATES.application = compile('{{render "foo"}}');
         | 
| 71757 | 
            +
                Ember.TEMPLATES.foo = compile('<div class="foo">{{outlet}}</div>');
         | 
| 71758 | 
            +
                Ember.TEMPLATES.index = compile('other');
         | 
| 71759 | 
            +
                Ember.TEMPLATES.bar = compile('bar');
         | 
| 71760 | 
            +
             | 
| 71761 | 
            +
                App.IndexRoute = Ember.Route.extend({
         | 
| 71762 | 
            +
                  renderTemplate: function() {
         | 
| 71763 | 
            +
                    this.render({ into: 'foo' });
         | 
| 71764 | 
            +
                  },
         | 
| 71765 | 
            +
                  actions: {
         | 
| 71766 | 
            +
                    changeToBar: function() {
         | 
| 71767 | 
            +
                      this.disconnectOutlet({
         | 
| 71768 | 
            +
                        parentView: 'foo',
         | 
| 71769 | 
            +
                        outlet: 'main'
         | 
| 71770 | 
            +
                      });
         | 
| 71771 | 
            +
                      this.render('bar', { into: 'foo' });
         | 
| 71772 | 
            +
                    }
         | 
| 71773 | 
            +
                  }
         | 
| 71774 | 
            +
                });
         | 
| 71775 | 
            +
             | 
| 71776 | 
            +
                bootApplication();
         | 
| 71777 | 
            +
                equal(Ember.$('#qunit-fixture .foo').text(), 'other');
         | 
| 71778 | 
            +
                Ember.run(router, 'send', 'changeToBar');
         | 
| 71779 | 
            +
                equal(Ember.$('#qunit-fixture .foo').text(), 'bar');
         | 
| 71780 | 
            +
              });
         | 
| 71781 | 
            +
             | 
| 71782 | 
            +
              QUnit.test("Can disconnect from the render helper", function() {
         | 
| 71783 | 
            +
                Ember.TEMPLATES.application = compile('{{render "foo"}}');
         | 
| 71784 | 
            +
                Ember.TEMPLATES.foo = compile('<div class="foo">{{outlet}}</div>');
         | 
| 71785 | 
            +
                Ember.TEMPLATES.index = compile('other');
         | 
| 71786 | 
            +
             | 
| 71787 | 
            +
                App.IndexRoute = Ember.Route.extend({
         | 
| 71788 | 
            +
                  renderTemplate: function() {
         | 
| 71789 | 
            +
                    this.render({ into: 'foo' });
         | 
| 71790 | 
            +
                  },
         | 
| 71791 | 
            +
                  actions: {
         | 
| 71792 | 
            +
                    disconnect: function() {
         | 
| 71793 | 
            +
                      this.disconnectOutlet({
         | 
| 71794 | 
            +
                        parentView: 'foo',
         | 
| 71795 | 
            +
                        outlet: 'main'
         | 
| 71796 | 
            +
                      });
         | 
| 71797 | 
            +
                    }
         | 
| 71798 | 
            +
                  }
         | 
| 71799 | 
            +
                });
         | 
| 71800 | 
            +
             | 
| 71801 | 
            +
                bootApplication();
         | 
| 71802 | 
            +
                equal(Ember.$('#qunit-fixture .foo').text(), 'other');
         | 
| 71803 | 
            +
                Ember.run(router, 'send', 'disconnect');
         | 
| 71804 | 
            +
                equal(Ember.$('#qunit-fixture .foo').text(), '');
         | 
| 71805 | 
            +
              });
         | 
| 71806 | 
            +
             | 
| 71807 | 
            +
             | 
| 71808 | 
            +
              QUnit.test("Can render({into:...}) the render helper's children", function() {
         | 
| 71809 | 
            +
                Ember.TEMPLATES.application = compile('{{render "foo"}}');
         | 
| 71810 | 
            +
                Ember.TEMPLATES.foo = compile('<div class="foo">{{outlet}}</div>');
         | 
| 71811 | 
            +
                Ember.TEMPLATES.index = compile('<div class="index">{{outlet}}</div>');
         | 
| 71812 | 
            +
                Ember.TEMPLATES.other = compile('other');
         | 
| 71813 | 
            +
                Ember.TEMPLATES.bar = compile('bar');
         | 
| 71814 | 
            +
             | 
| 71815 | 
            +
                App.IndexRoute = Ember.Route.extend({
         | 
| 71816 | 
            +
                  renderTemplate: function() {
         | 
| 71817 | 
            +
                    this.render({ into: 'foo' });
         | 
| 71818 | 
            +
                    this.render('other', { into: 'index' });
         | 
| 71819 | 
            +
                  },
         | 
| 71820 | 
            +
                  actions: {
         | 
| 71821 | 
            +
                    changeToBar: function() {
         | 
| 71822 | 
            +
                      this.disconnectOutlet({
         | 
| 71823 | 
            +
                        parentView: 'index',
         | 
| 71824 | 
            +
                        outlet: 'main'
         | 
| 71825 | 
            +
                      });
         | 
| 71826 | 
            +
                      this.render('bar', { into: 'index' });
         | 
| 71827 | 
            +
                    }
         | 
| 71828 | 
            +
                  }
         | 
| 71829 | 
            +
                });
         | 
| 71830 | 
            +
             | 
| 71831 | 
            +
                bootApplication();
         | 
| 71832 | 
            +
                equal(Ember.$('#qunit-fixture .foo .index').text(), 'other');
         | 
| 71833 | 
            +
                Ember.run(router, 'send', 'changeToBar');
         | 
| 71834 | 
            +
                equal(Ember.$('#qunit-fixture .foo .index').text(), 'bar');
         | 
| 71835 | 
            +
             | 
| 71836 | 
            +
              });
         | 
| 71837 | 
            +
             | 
| 71838 | 
            +
              QUnit.test("Can disconnect from the render helper's children", function() {
         | 
| 71839 | 
            +
                Ember.TEMPLATES.application = compile('{{render "foo"}}');
         | 
| 71840 | 
            +
                Ember.TEMPLATES.foo = compile('<div class="foo">{{outlet}}</div>');
         | 
| 71841 | 
            +
                Ember.TEMPLATES.index = compile('<div class="index">{{outlet}}</div>');
         | 
| 71842 | 
            +
                Ember.TEMPLATES.other = compile('other');
         | 
| 71843 | 
            +
             | 
| 71844 | 
            +
                App.IndexRoute = Ember.Route.extend({
         | 
| 71845 | 
            +
                  renderTemplate: function() {
         | 
| 71846 | 
            +
                    this.render({ into: 'foo' });
         | 
| 71847 | 
            +
                    this.render('other', { into: 'index' });
         | 
| 71848 | 
            +
                  },
         | 
| 71849 | 
            +
                  actions: {
         | 
| 71850 | 
            +
                    disconnect: function() {
         | 
| 71851 | 
            +
                      this.disconnectOutlet({
         | 
| 71852 | 
            +
                        parentView: 'index',
         | 
| 71853 | 
            +
                        outlet: 'main'
         | 
| 71854 | 
            +
                      });
         | 
| 71855 | 
            +
                    }
         | 
| 71856 | 
            +
                  }
         | 
| 71857 | 
            +
                });
         | 
| 71858 | 
            +
             | 
| 71859 | 
            +
                bootApplication();
         | 
| 71860 | 
            +
                equal(Ember.$('#qunit-fixture .foo .index').text(), 'other');
         | 
| 71861 | 
            +
                Ember.run(router, 'send', 'disconnect');
         | 
| 71862 | 
            +
                equal(Ember.$('#qunit-fixture .foo .index').text(), '');
         | 
| 71863 | 
            +
              });
         | 
| 71864 | 
            +
             | 
| 71142 71865 | 
             
            });
         | 
| 71143 71866 | 
             
            enifed('ember/tests/routing/basic_test.jscs-test', function () {
         | 
| 71144 71867 |  | 
| @@ -71279,6 +72002,30 @@ enifed('ember/tests/routing/query_params_test', ['ember', 'ember-metal/computed' | |
| 71279 72002 | 
             
                }
         | 
| 71280 72003 | 
             
              });
         | 
| 71281 72004 |  | 
| 72005 | 
            +
              QUnit.test("Single query params can be set on ObjectController [DEPRECATED]", function() {
         | 
| 72006 | 
            +
                expectDeprecation("Ember.ObjectController is deprecated, please use Ember.Controller and use `model.propertyName`.");
         | 
| 72007 | 
            +
             | 
| 72008 | 
            +
                Router.map(function() {
         | 
| 72009 | 
            +
                  this.route("home", { path: '/' });
         | 
| 72010 | 
            +
                });
         | 
| 72011 | 
            +
             | 
| 72012 | 
            +
                App.HomeController = Ember.ObjectController.extend({
         | 
| 72013 | 
            +
                  queryParams: ['foo'],
         | 
| 72014 | 
            +
                  foo: "123"
         | 
| 72015 | 
            +
                });
         | 
| 72016 | 
            +
             | 
| 72017 | 
            +
                bootApplication();
         | 
| 72018 | 
            +
             | 
| 72019 | 
            +
                var controller = container.lookup('controller:home');
         | 
| 72020 | 
            +
             | 
| 72021 | 
            +
                setAndFlush(controller, 'foo', '456');
         | 
| 72022 | 
            +
             | 
| 72023 | 
            +
                equal(router.get('location.path'), "/?foo=456");
         | 
| 72024 | 
            +
             | 
| 72025 | 
            +
                setAndFlush(controller, 'foo', '987');
         | 
| 72026 | 
            +
                equal(router.get('location.path'), "/?foo=987");
         | 
| 72027 | 
            +
              });
         | 
| 72028 | 
            +
             | 
| 71282 72029 | 
             
              QUnit.test("Single query params can be set", function() {
         | 
| 71283 72030 | 
             
                Router.map(function() {
         | 
| 71284 72031 | 
             
                  this.route("home", { path: '/' });
         |