ember-source 1.10.0.beta.4 → 1.10.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 +32 -25
- data/dist/ember-template-compiler.js +219 -68
- data/dist/ember-testing.js +12 -12
- data/dist/ember-tests.js +508 -73
- data/dist/ember-tests.prod.js +396 -73
- data/dist/ember.debug.js +564 -6494
- data/dist/ember.js +564 -6494
- data/dist/ember.min.js +12 -15
- data/dist/ember.prod.js +550 -6482
- metadata +4 -4
data/dist/ember-tests.prod.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.10.0
|
8
|
+
* @version 1.10.0
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -4034,7 +4034,7 @@ enifed("ember-htmlbars.jshint",
|
|
4034
4034
|
"use strict";
|
4035
4035
|
module('JSHint - .');
|
4036
4036
|
test('ember-htmlbars.js should pass jshint', function() {
|
4037
|
-
ok(
|
4037
|
+
ok(true, 'ember-htmlbars.js should pass jshint.');
|
4038
4038
|
});
|
4039
4039
|
});
|
4040
4040
|
enifed("ember-htmlbars/compat.jshint",
|
@@ -4073,15 +4073,6 @@ enifed("ember-htmlbars/compat/make-bound-helper.jshint",
|
|
4073
4073
|
ok(true, 'ember-htmlbars/compat/make-bound-helper.js should pass jshint.');
|
4074
4074
|
});
|
4075
4075
|
});
|
4076
|
-
enifed("ember-htmlbars/compat/precompile.jshint",
|
4077
|
-
[],
|
4078
|
-
function() {
|
4079
|
-
"use strict";
|
4080
|
-
module('JSHint - ember-htmlbars/compat');
|
4081
|
-
test('ember-htmlbars/compat/precompile.js should pass jshint', function() {
|
4082
|
-
ok(true, 'ember-htmlbars/compat/precompile.js should pass jshint.');
|
4083
|
-
});
|
4084
|
-
});
|
4085
4076
|
enifed("ember-htmlbars/compat/register-bound-helper.jshint",
|
4086
4077
|
[],
|
4087
4078
|
function() {
|
@@ -4482,14 +4473,13 @@ enifed("ember-htmlbars/tests/attr_nodes/href_test.jshint",
|
|
4482
4473
|
ok(true, 'ember-htmlbars/tests/attr_nodes/href_test.js should pass jshint.');
|
4483
4474
|
});
|
4484
4475
|
});
|
4485
|
-
enifed("ember-htmlbars/tests/attr_nodes/
|
4486
|
-
["ember-views/views/view","ember-metal/run_loop","ember-template-compiler/system/compile"
|
4487
|
-
function(__dependency1__, __dependency2__, __dependency3__
|
4476
|
+
enifed("ember-htmlbars/tests/attr_nodes/property_test",
|
4477
|
+
["ember-views/views/view","ember-metal/run_loop","ember-template-compiler/system/compile"],
|
4478
|
+
function(__dependency1__, __dependency2__, __dependency3__) {
|
4488
4479
|
"use strict";
|
4489
4480
|
var EmberView = __dependency1__["default"];
|
4490
4481
|
var run = __dependency2__["default"];
|
4491
4482
|
var compile = __dependency3__["default"];
|
4492
|
-
var equalInnerHTML = __dependency4__.equalInnerHTML;
|
4493
4483
|
|
4494
4484
|
var view;
|
4495
4485
|
|
@@ -4505,13 +4495,13 @@ enifed("ember-htmlbars/tests/attr_nodes/nonmatching_reflection_test",
|
|
4505
4495
|
}
|
4506
4496
|
|
4507
4497
|
});
|
4508
|
-
enifed("ember-htmlbars/tests/attr_nodes/
|
4498
|
+
enifed("ember-htmlbars/tests/attr_nodes/property_test.jshint",
|
4509
4499
|
[],
|
4510
4500
|
function() {
|
4511
4501
|
"use strict";
|
4512
4502
|
module('JSHint - ember-htmlbars/tests/attr_nodes');
|
4513
|
-
test('ember-htmlbars/tests/attr_nodes/
|
4514
|
-
ok(true, 'ember-htmlbars/tests/attr_nodes/
|
4503
|
+
test('ember-htmlbars/tests/attr_nodes/property_test.js should pass jshint', function() {
|
4504
|
+
ok(true, 'ember-htmlbars/tests/attr_nodes/property_test.js should pass jshint.');
|
4515
4505
|
});
|
4516
4506
|
});
|
4517
4507
|
enifed("ember-htmlbars/tests/attr_nodes/sanitized_test",
|
@@ -4570,13 +4560,12 @@ enifed("ember-htmlbars/tests/attr_nodes/svg_test.jshint",
|
|
4570
4560
|
});
|
4571
4561
|
});
|
4572
4562
|
enifed("ember-htmlbars/tests/attr_nodes/value_test",
|
4573
|
-
["ember-views/views/view","ember-metal/run_loop","ember-template-compiler/system/compile"
|
4574
|
-
function(__dependency1__, __dependency2__, __dependency3__
|
4563
|
+
["ember-views/views/view","ember-metal/run_loop","ember-template-compiler/system/compile"],
|
4564
|
+
function(__dependency1__, __dependency2__, __dependency3__) {
|
4575
4565
|
"use strict";
|
4576
4566
|
var EmberView = __dependency1__["default"];
|
4577
4567
|
var run = __dependency2__["default"];
|
4578
4568
|
var compile = __dependency3__["default"];
|
4579
|
-
var equalInnerHTML = __dependency4__.equalInnerHTML;
|
4580
4569
|
|
4581
4570
|
var view;
|
4582
4571
|
|
@@ -4857,6 +4846,32 @@ enifed("ember-htmlbars/tests/compat/helper_test",
|
|
4857
4846
|
runAppend(view);
|
4858
4847
|
});
|
4859
4848
|
|
4849
|
+
test('allows unbound usage within an element', function() {
|
4850
|
+
expect(4);
|
4851
|
+
|
4852
|
+
function someHelper(param1, param2, options) {
|
4853
|
+
equal(param1, 'blammo');
|
4854
|
+
equal(param2, 'blazzico');
|
4855
|
+
|
4856
|
+
return "class='foo'";
|
4857
|
+
}
|
4858
|
+
|
4859
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4860
|
+
|
4861
|
+
view = EmberView.create({
|
4862
|
+
controller: {
|
4863
|
+
value: 'foo'
|
4864
|
+
},
|
4865
|
+
template: compile('<div {{test "blammo" "blazzico"}}>Bar</div>')
|
4866
|
+
});
|
4867
|
+
|
4868
|
+
expectDeprecation(function() {
|
4869
|
+
runAppend(view);
|
4870
|
+
}, 'Returning a string of attributes from a helper inside an element is deprecated.');
|
4871
|
+
|
4872
|
+
equal(view.$('.foo').length, 1, 'class attribute was added by helper');
|
4873
|
+
});
|
4874
|
+
|
4860
4875
|
test('registering a helper created from `Ember.Handlebars.makeViewHelper` does not double wrap the helper', function() {
|
4861
4876
|
expect(1);
|
4862
4877
|
|
@@ -4876,6 +4891,111 @@ enifed("ember-htmlbars/tests/compat/helper_test",
|
|
4876
4891
|
equal(view.$().text(), 'woot!');
|
4877
4892
|
});
|
4878
4893
|
|
4894
|
+
test('does not add `options.fn` if no block was specified', function() {
|
4895
|
+
expect(1);
|
4896
|
+
|
4897
|
+
function someHelper(options) {
|
4898
|
+
ok(!options.fn, '`options.fn` is not present when block is not specified');
|
4899
|
+
}
|
4900
|
+
|
4901
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4902
|
+
|
4903
|
+
view = EmberView.create({
|
4904
|
+
controller: {
|
4905
|
+
value: 'foo'
|
4906
|
+
},
|
4907
|
+
template: compile('{{test}}')
|
4908
|
+
});
|
4909
|
+
|
4910
|
+
runAppend(view);
|
4911
|
+
});
|
4912
|
+
|
4913
|
+
test('does not return helper result if block was specified', function() {
|
4914
|
+
expect(1);
|
4915
|
+
|
4916
|
+
function someHelper(options) {
|
4917
|
+
return 'asdf';
|
4918
|
+
}
|
4919
|
+
|
4920
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4921
|
+
|
4922
|
+
view = EmberView.create({
|
4923
|
+
controller: {
|
4924
|
+
value: 'foo'
|
4925
|
+
},
|
4926
|
+
template: compile('{{#test}}lkj;{{/test}}')
|
4927
|
+
});
|
4928
|
+
|
4929
|
+
runAppend(view);
|
4930
|
+
|
4931
|
+
equal(view.$().text(), '');
|
4932
|
+
});
|
4933
|
+
|
4934
|
+
test('allows usage of the template fn', function() {
|
4935
|
+
expect(1);
|
4936
|
+
|
4937
|
+
function someHelper(options) {
|
4938
|
+
options.fn();
|
4939
|
+
}
|
4940
|
+
|
4941
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4942
|
+
|
4943
|
+
view = EmberView.create({
|
4944
|
+
controller: {
|
4945
|
+
value: 'foo'
|
4946
|
+
},
|
4947
|
+
template: compile('{{#test}}foo{{/test}}')
|
4948
|
+
});
|
4949
|
+
|
4950
|
+
runAppend(view);
|
4951
|
+
|
4952
|
+
equal(view.$().text(), 'foo');
|
4953
|
+
});
|
4954
|
+
|
4955
|
+
QUnit.test('ordered param types are added to options.types', function() {
|
4956
|
+
expect(3);
|
4957
|
+
|
4958
|
+
function someHelper(param1, param2, param3, options) {
|
4959
|
+
equal(options.types[0], 'NUMBER');
|
4960
|
+
equal(options.types[1], 'ID');
|
4961
|
+
equal(options.types[2], 'STRING');
|
4962
|
+
}
|
4963
|
+
|
4964
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4965
|
+
|
4966
|
+
view = EmberView.create({
|
4967
|
+
controller: {
|
4968
|
+
first: 'blammo',
|
4969
|
+
second: 'blazzico'
|
4970
|
+
},
|
4971
|
+
template: compile('{{test 1 two "3"}}')
|
4972
|
+
});
|
4973
|
+
|
4974
|
+
runAppend(view);
|
4975
|
+
});
|
4976
|
+
|
4977
|
+
QUnit.test('`hash` params are to options.hashTypes', function() {
|
4978
|
+
expect(3);
|
4979
|
+
|
4980
|
+
function someHelper(options) {
|
4981
|
+
equal(options.hashTypes.string, 'STRING');
|
4982
|
+
equal(options.hashTypes.number, 'NUMBER');
|
4983
|
+
equal(options.hashTypes.id, 'ID');
|
4984
|
+
}
|
4985
|
+
|
4986
|
+
registerHandlebarsCompatibleHelper('test', someHelper);
|
4987
|
+
|
4988
|
+
view = EmberView.create({
|
4989
|
+
controller: {
|
4990
|
+
value: 'Jacquie'
|
4991
|
+
},
|
4992
|
+
template: compile('{{test string="foo" number=42 id=someBoundThing}}')
|
4993
|
+
});
|
4994
|
+
|
4995
|
+
runAppend(view);
|
4996
|
+
});
|
4997
|
+
|
4998
|
+
// jscs:enable validateIndentation
|
4879
4999
|
|
4880
5000
|
});
|
4881
5001
|
enifed("ember-htmlbars/tests/compat/helper_test.jshint",
|
@@ -5585,8 +5705,8 @@ enifed("ember-htmlbars/tests/compat/precompile_test.jshint",
|
|
5585
5705
|
});
|
5586
5706
|
});
|
5587
5707
|
enifed("ember-htmlbars/tests/helpers/bind_attr_test",
|
5588
|
-
["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","
|
5589
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__
|
5708
|
+
["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"],
|
5709
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__) {
|
5590
5710
|
"use strict";
|
5591
5711
|
/*jshint newcap:false*/
|
5592
5712
|
var Ember = __dependency1__["default"];
|
@@ -5603,10 +5723,9 @@ enifed("ember-htmlbars/tests/helpers/bind_attr_test",
|
|
5603
5723
|
var set = __dependency11__.set;
|
5604
5724
|
var runAppend = __dependency12__.runAppend;
|
5605
5725
|
var runDestroy = __dependency12__.runDestroy;
|
5606
|
-
var equalInnerHTML = __dependency13__.equalInnerHTML;
|
5607
5726
|
|
5608
|
-
var helpers =
|
5609
|
-
var compile =
|
5727
|
+
var helpers = __dependency13__["default"];
|
5728
|
+
var compile = __dependency14__["default"];
|
5610
5729
|
var view;
|
5611
5730
|
|
5612
5731
|
var originalLookup = Ember.lookup;
|
@@ -5872,13 +5991,13 @@ enifed("ember-htmlbars/tests/helpers/bind_attr_test",
|
|
5872
5991
|
|
5873
5992
|
runAppend(view);
|
5874
5993
|
|
5875
|
-
|
5994
|
+
equal(view.element.firstChild.className, 'bar', 'renders class');
|
5876
5995
|
|
5877
5996
|
run(function() {
|
5878
5997
|
set(view, 'foo', 'baz');
|
5879
5998
|
});
|
5880
5999
|
|
5881
|
-
|
6000
|
+
equal(view.element.firstChild.className, 'baz', 'updates rendered class');
|
5882
6001
|
});
|
5883
6002
|
|
5884
6003
|
test("should be able to bind unquoted class attribute with {{bind-attr}}", function() {
|
@@ -5910,13 +6029,13 @@ enifed("ember-htmlbars/tests/helpers/bind_attr_test",
|
|
5910
6029
|
|
5911
6030
|
runAppend(view);
|
5912
6031
|
|
5913
|
-
|
6032
|
+
equal(view.element.firstChild.className, 'is-truthy', 'renders class');
|
5914
6033
|
|
5915
6034
|
run(function() {
|
5916
6035
|
set(view, 'isNumber', 0);
|
5917
6036
|
});
|
5918
6037
|
|
5919
|
-
|
6038
|
+
ok(view.element.firstChild.className !== 'is-truthy', 'removes class');
|
5920
6039
|
});
|
5921
6040
|
|
5922
6041
|
test("should be able to bind class to view attribute with {{bind-attr}}", function() {
|
@@ -9583,6 +9702,9 @@ enifed("ember-htmlbars/tests/helpers/sanitized_bind_attr_test",
|
|
9583
9702
|
{ tag: 'a', attr: 'href',
|
9584
9703
|
template: compile('<a {{bind-attr href=view.badValue}}></a>') },
|
9585
9704
|
{ tag: 'body', attr: 'background',
|
9705
|
+
// IE8 crashes when setting background with
|
9706
|
+
// a javascript: protocol
|
9707
|
+
skip: (document.documentMode && document.documentMode <= 8),
|
9586
9708
|
template: compile('<body {{bind-attr background=view.badValue}}></body>') },
|
9587
9709
|
{ tag: 'link', attr: 'href',
|
9588
9710
|
template: compile('<link {{bind-attr href=view.badValue}}>') },
|
@@ -9596,6 +9718,10 @@ enifed("ember-htmlbars/tests/helpers/sanitized_bind_attr_test",
|
|
9596
9718
|
var attr = badTags[i].attr;
|
9597
9719
|
var template = badTags[i].template;
|
9598
9720
|
|
9721
|
+
if (badTags[i].skip) {
|
9722
|
+
return;
|
9723
|
+
}
|
9724
|
+
|
9599
9725
|
test("XSS - should not bind unsafe "+tagName+" "+attr+" values", function() {
|
9600
9726
|
view = EmberView.create({
|
9601
9727
|
template: template,
|
@@ -10230,7 +10356,7 @@ enifed("ember-htmlbars/tests/helpers/unbound_test.jshint",
|
|
10230
10356
|
});
|
10231
10357
|
});
|
10232
10358
|
enifed("ember-htmlbars/tests/helpers/view_test",
|
10233
|
-
["ember-metal/property_set","ember-views/views/view","container/container","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-
|
10359
|
+
["ember-metal/property_set","ember-views/views/view","container/container","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/object_controller","ember-runtime/tests/utils","ember-metal/property_get","ember-metal/computed"],
|
10234
10360
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__) {
|
10235
10361
|
"use strict";
|
10236
10362
|
/*globals EmberDev */
|
@@ -12517,6 +12643,95 @@ enifed("ember-htmlbars/tests/hooks/component_test.jshint",
|
|
12517
12643
|
ok(true, 'ember-htmlbars/tests/hooks/component_test.js should pass jshint.');
|
12518
12644
|
});
|
12519
12645
|
});
|
12646
|
+
enifed("ember-htmlbars/tests/hooks/element_test",
|
12647
|
+
["ember-views/views/view","ember-htmlbars/helpers","ember-runtime/tests/utils","ember-template-compiler/system/compile"],
|
12648
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__) {
|
12649
|
+
"use strict";
|
12650
|
+
var EmberView = __dependency1__["default"];
|
12651
|
+
var helpers = __dependency2__["default"];
|
12652
|
+
var registerHelper = __dependency2__.registerHelper;
|
12653
|
+
var runAppend = __dependency3__.runAppend;
|
12654
|
+
var runDestroy = __dependency3__.runDestroy;
|
12655
|
+
var compile = __dependency4__["default"];
|
12656
|
+
|
12657
|
+
var view;
|
12658
|
+
|
12659
|
+
QUnit.module('ember-htmlbars: element hook', {
|
12660
|
+
teardown: function() {
|
12661
|
+
runDestroy(view);
|
12662
|
+
delete helpers.test;
|
12663
|
+
}
|
12664
|
+
});
|
12665
|
+
|
12666
|
+
test('allows unbound usage within an element', function() {
|
12667
|
+
expect(4);
|
12668
|
+
|
12669
|
+
function someHelper(params, hash, options, env) {
|
12670
|
+
equal(params[0], 'blammo');
|
12671
|
+
equal(params[1], 'blazzico');
|
12672
|
+
|
12673
|
+
return "class='foo'";
|
12674
|
+
}
|
12675
|
+
|
12676
|
+
registerHelper('test', someHelper);
|
12677
|
+
|
12678
|
+
view = EmberView.create({
|
12679
|
+
controller: {
|
12680
|
+
value: 'foo'
|
12681
|
+
},
|
12682
|
+
template: compile('<div {{test "blammo" "blazzico"}}>Bar</div>')
|
12683
|
+
});
|
12684
|
+
|
12685
|
+
expectDeprecation(function() {
|
12686
|
+
runAppend(view);
|
12687
|
+
}, 'Returning a string of attributes from a helper inside an element is deprecated.');
|
12688
|
+
|
12689
|
+
equal(view.$('.foo').length, 1, 'class attribute was added by helper');
|
12690
|
+
});
|
12691
|
+
|
12692
|
+
test('allows unbound usage within an element from property', function() {
|
12693
|
+
expect(2);
|
12694
|
+
|
12695
|
+
view = EmberView.create({
|
12696
|
+
controller: {
|
12697
|
+
someProp: 'class="foo"'
|
12698
|
+
},
|
12699
|
+
template: compile('<div {{someProp}}>Bar</div>')
|
12700
|
+
});
|
12701
|
+
|
12702
|
+
expectDeprecation(function() {
|
12703
|
+
runAppend(view);
|
12704
|
+
}, 'Returning a string of attributes from a helper inside an element is deprecated.');
|
12705
|
+
|
12706
|
+
equal(view.$('.foo').length, 1, 'class attribute was added by helper');
|
12707
|
+
});
|
12708
|
+
|
12709
|
+
test('allows unbound usage within an element creating multiple attributes', function() {
|
12710
|
+
expect(2);
|
12711
|
+
|
12712
|
+
view = EmberView.create({
|
12713
|
+
controller: {
|
12714
|
+
someProp: 'class="foo" data-foo="bar"'
|
12715
|
+
},
|
12716
|
+
template: compile('<div {{someProp}}>Bar</div>')
|
12717
|
+
});
|
12718
|
+
|
12719
|
+
expectDeprecation(function() {
|
12720
|
+
runAppend(view);
|
12721
|
+
}, 'Returning a string of attributes from a helper inside an element is deprecated.');
|
12722
|
+
|
12723
|
+
equal(view.$('.foo[data-foo="bar"]').length, 1, 'attributes added by helper');
|
12724
|
+
});
|
12725
|
+
});
|
12726
|
+
enifed("ember-htmlbars/tests/hooks/element_test.jshint",
|
12727
|
+
[],
|
12728
|
+
function() {
|
12729
|
+
"use strict";
|
12730
|
+
module('JSHint - ember-htmlbars/tests/hooks');
|
12731
|
+
test('ember-htmlbars/tests/hooks/element_test.js should pass jshint', function() {
|
12732
|
+
ok(true, 'ember-htmlbars/tests/hooks/element_test.js should pass jshint.');
|
12733
|
+
});
|
12734
|
+
});
|
12520
12735
|
enifed("ember-htmlbars/tests/hooks/text_node_test",
|
12521
12736
|
["ember-views/views/view","ember-metal/run_loop","ember-runtime/system/object","ember-template-compiler/system/compile","htmlbars-test-helpers","ember-runtime/tests/utils"],
|
12522
12737
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__) {
|
@@ -12854,7 +13069,18 @@ enifed("ember-htmlbars/tests/integration/block_params_test",
|
|
12854
13069
|
}
|
12855
13070
|
});
|
12856
13071
|
|
12857
|
-
test("
|
13072
|
+
QUnit.test("should raise error if helper not available", function() {
|
13073
|
+
view = View.create({
|
13074
|
+
template: compile('{{#shouldfail}}{{/shouldfail}}')
|
13075
|
+
});
|
13076
|
+
|
13077
|
+
expectAssertion(function() {
|
13078
|
+
runAppend(view);
|
13079
|
+
}, 'A helper named `shouldfail` could not be found');
|
13080
|
+
|
13081
|
+
});
|
13082
|
+
|
13083
|
+
QUnit.test("basic block params usage", function() {
|
12858
13084
|
view = View.create({
|
12859
13085
|
committer: { name: "rwjblue" },
|
12860
13086
|
template: compile('{{#alias view.committer.name as |name|}}name: {{name}}, length: {{name.length}}{{/alias}}')
|
@@ -23235,12 +23461,12 @@ enifed("ember-metal/tests/run_loop/schedule_test",
|
|
23235
23461
|
test('makes sure it does not trigger an autorun during testing', function() {
|
23236
23462
|
expectAssertion(function() {
|
23237
23463
|
run.schedule('actions', function() {});
|
23238
|
-
}, /wrap any code with asynchronous side-effects in
|
23464
|
+
}, /wrap any code with asynchronous side-effects in a run/);
|
23239
23465
|
|
23240
23466
|
// make sure not just the first violation is asserted.
|
23241
23467
|
expectAssertion(function() {
|
23242
23468
|
run.schedule('actions', function() {});
|
23243
|
-
}, /wrap any code with asynchronous side-effects in
|
23469
|
+
}, /wrap any code with asynchronous side-effects in a run/);
|
23244
23470
|
});
|
23245
23471
|
});
|
23246
23472
|
enifed("ember-metal/tests/run_loop/schedule_test.jshint",
|
@@ -33142,6 +33368,32 @@ enifed("ember-runtime/tests/ext/rsvp_test",
|
|
33142
33368
|
Ember.testing = wasEmberTesting ;
|
33143
33369
|
}
|
33144
33370
|
});
|
33371
|
+
|
33372
|
+
|
33373
|
+
test('rejections where the errorThrown is a string should wrap the sting in an error object', function() {
|
33374
|
+
expect(2);
|
33375
|
+
|
33376
|
+
var wasEmberTesting = Ember.testing;
|
33377
|
+
var wasOnError = Ember.onerror;
|
33378
|
+
|
33379
|
+
try {
|
33380
|
+
Ember.testing = false;
|
33381
|
+
Ember.onerror = function(error) {
|
33382
|
+
equal(error.message, actualError, 'expected the real error on the jqXHR');
|
33383
|
+
equal(error.__reason_with_error_thrown__, jqXHR, 'also retains a helpful reference to the rejection reason');
|
33384
|
+
};
|
33385
|
+
|
33386
|
+
var actualError = "OMG what really happened";
|
33387
|
+
var jqXHR = {
|
33388
|
+
errorThrown: actualError
|
33389
|
+
};
|
33390
|
+
|
33391
|
+
run(RSVP, 'reject', jqXHR);
|
33392
|
+
} finally {
|
33393
|
+
Ember.onerror = wasOnError;
|
33394
|
+
Ember.testing = wasEmberTesting;
|
33395
|
+
}
|
33396
|
+
});
|
33145
33397
|
});
|
33146
33398
|
enifed("ember-runtime/tests/ext/rsvp_test.jshint",
|
33147
33399
|
[],
|
@@ -46081,6 +46333,24 @@ enifed("ember-template-compiler.jshint",
|
|
46081
46333
|
ok(true, 'ember-template-compiler.js should pass jshint.');
|
46082
46334
|
});
|
46083
46335
|
});
|
46336
|
+
enifed("ember-template-compiler/compat.jshint",
|
46337
|
+
[],
|
46338
|
+
function() {
|
46339
|
+
"use strict";
|
46340
|
+
module('JSHint - ember-template-compiler');
|
46341
|
+
test('ember-template-compiler/compat.js should pass jshint', function() {
|
46342
|
+
ok(true, 'ember-template-compiler/compat.js should pass jshint.');
|
46343
|
+
});
|
46344
|
+
});
|
46345
|
+
enifed("ember-template-compiler/compat/precompile.jshint",
|
46346
|
+
[],
|
46347
|
+
function() {
|
46348
|
+
"use strict";
|
46349
|
+
module('JSHint - ember-template-compiler/compat');
|
46350
|
+
test('ember-template-compiler/compat/precompile.js should pass jshint', function() {
|
46351
|
+
ok(true, 'ember-template-compiler/compat/precompile.js should pass jshint.');
|
46352
|
+
});
|
46353
|
+
});
|
46084
46354
|
enifed("ember-template-compiler/plugins.jshint",
|
46085
46355
|
[],
|
46086
46356
|
function() {
|
@@ -47027,6 +47297,7 @@ enifed("ember-testing/tests/helpers_test",
|
|
47027
47297
|
jQuery(document).off('ajaxComplete');
|
47028
47298
|
});
|
47029
47299
|
Test.pendingAjaxRequests = null;
|
47300
|
+
Test.waiters = null;
|
47030
47301
|
|
47031
47302
|
// Other cleanup
|
47032
47303
|
|
@@ -47246,25 +47517,34 @@ enifed("ember-testing/tests/helpers_test",
|
|
47246
47517
|
});
|
47247
47518
|
|
47248
47519
|
test("`wait` respects registerWaiters", function() {
|
47249
|
-
expect(
|
47520
|
+
expect(3);
|
47250
47521
|
|
47251
47522
|
var counter=0;
|
47252
47523
|
function waiter() {
|
47253
47524
|
return ++counter > 2;
|
47254
47525
|
}
|
47255
47526
|
|
47527
|
+
var other=0;
|
47528
|
+
function otherWaiter() {
|
47529
|
+
return ++other > 2;
|
47530
|
+
}
|
47531
|
+
|
47256
47532
|
run(App, App.advanceReadiness);
|
47257
47533
|
Test.registerWaiter(waiter);
|
47534
|
+
Test.registerWaiter(otherWaiter);
|
47258
47535
|
|
47259
47536
|
App.testHelpers.wait().then(function() {
|
47260
47537
|
equal(waiter(), true, 'should not resolve until our waiter is ready');
|
47261
47538
|
Test.unregisterWaiter(waiter);
|
47262
|
-
equal(Test.waiters.length,
|
47539
|
+
equal(Test.waiters.length, 1, 'should not leave the waiter registered');
|
47540
|
+
other = 0;
|
47541
|
+
return App.testHelpers.wait();
|
47542
|
+
}).then(function() {
|
47543
|
+
equal(otherWaiter(), true, 'other waiter is still registered');
|
47263
47544
|
});
|
47264
47545
|
});
|
47265
47546
|
|
47266
|
-
|
47267
|
-
test("`visit` advances readiness.", function(){
|
47547
|
+
test("`visit` advances readiness.", function() {
|
47268
47548
|
expect(2);
|
47269
47549
|
|
47270
47550
|
equal(App._readinessDeferrals, 1, "App is in deferred state after setupForTesting.");
|
@@ -47303,7 +47583,7 @@ enifed("ember-testing/tests/helpers_test",
|
|
47303
47583
|
});
|
47304
47584
|
|
47305
47585
|
test("`click` triggers appropriate events in order", function() {
|
47306
|
-
expect(
|
47586
|
+
expect(5);
|
47307
47587
|
|
47308
47588
|
var click, wait, events;
|
47309
47589
|
|
@@ -47327,7 +47607,7 @@ enifed("ember-testing/tests/helpers_test",
|
|
47327
47607
|
})
|
47328
47608
|
});
|
47329
47609
|
|
47330
|
-
Ember.TEMPLATES.index = compile('{{input type="text"}} {{view view.Checkbox}} {{textarea}}');
|
47610
|
+
Ember.TEMPLATES.index = compile('{{input type="text"}} {{view view.Checkbox}} {{textarea}} <div contenteditable="true"> </div>');
|
47331
47611
|
|
47332
47612
|
run(App, App.advanceReadiness);
|
47333
47613
|
|
@@ -47355,6 +47635,13 @@ enifed("ember-testing/tests/helpers_test",
|
|
47355
47635
|
deepEqual(events,
|
47356
47636
|
['mousedown', 'focusin', 'mouseup', 'click'],
|
47357
47637
|
'fires focus events on textareas');
|
47638
|
+
}).then(function() {
|
47639
|
+
events = [];
|
47640
|
+
return click('.index-view div');
|
47641
|
+
}).then(function() {
|
47642
|
+
deepEqual(events,
|
47643
|
+
['mousedown', 'focusin', 'mouseup', 'click'],
|
47644
|
+
'fires focus events on contenteditable');
|
47358
47645
|
}).then(function() {
|
47359
47646
|
// In IE (< 8), the change event only fires when the value changes before element focused.
|
47360
47647
|
jQuery('.index-view input[type=checkbox]').focus();
|
@@ -47386,7 +47673,7 @@ enifed("ember-testing/tests/helpers_test",
|
|
47386
47673
|
|
47387
47674
|
|
47388
47675
|
test("`wait` respects registerWaiters with optional context", function() {
|
47389
|
-
expect(
|
47676
|
+
expect(3);
|
47390
47677
|
|
47391
47678
|
var obj = {
|
47392
47679
|
counter: 0,
|
@@ -47395,17 +47682,34 @@ enifed("ember-testing/tests/helpers_test",
|
|
47395
47682
|
}
|
47396
47683
|
};
|
47397
47684
|
|
47685
|
+
var other=0;
|
47686
|
+
function otherWaiter() {
|
47687
|
+
return ++other > 2;
|
47688
|
+
}
|
47689
|
+
|
47398
47690
|
run(App, App.advanceReadiness);
|
47399
47691
|
Test.registerWaiter(obj, obj.ready);
|
47692
|
+
Test.registerWaiter(otherWaiter);
|
47400
47693
|
|
47401
47694
|
App.testHelpers.wait().then(function() {
|
47402
47695
|
equal(obj.ready(), true, 'should not resolve until our waiter is ready');
|
47403
47696
|
Test.unregisterWaiter(obj, obj.ready);
|
47404
|
-
equal(Test.waiters.length,
|
47697
|
+
equal(Test.waiters.length, 1, 'should not leave the waiter registered');
|
47698
|
+
return App.testHelpers.wait();
|
47699
|
+
}).then(function() {
|
47700
|
+
equal(otherWaiter(), true, 'other waiter should still be registered');
|
47405
47701
|
});
|
47406
47702
|
});
|
47407
47703
|
|
47408
|
-
test("`
|
47704
|
+
test("`wait` does not error if routing has not begun", function() {
|
47705
|
+
expect(1);
|
47706
|
+
|
47707
|
+
App.testHelpers.wait().then(function() {
|
47708
|
+
ok(true, 'should not error without `visit`');
|
47709
|
+
});
|
47710
|
+
});
|
47711
|
+
|
47712
|
+
test("`triggerEvent accepts an optional options hash without context", function() {
|
47409
47713
|
expect(3);
|
47410
47714
|
|
47411
47715
|
var triggerEvent, wait, event;
|
@@ -50557,17 +50861,18 @@ enifed("ember-views/tests/views/component_test.jshint",
|
|
50557
50861
|
});
|
50558
50862
|
});
|
50559
50863
|
enifed("ember-views/tests/views/container_view_test",
|
50560
|
-
["ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/computed","ember-runtime/controllers/controller","ember-views/system/jquery","ember-views/views/view","ember-views/views/container_view"],
|
50561
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__) {
|
50864
|
+
["ember-metal/property_get","ember-metal/property_set","ember-metal/run_loop","ember-metal/computed","ember-metal/streams/utils","ember-runtime/controllers/controller","ember-views/system/jquery","ember-views/views/view","ember-views/views/container_view"],
|
50865
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__) {
|
50562
50866
|
"use strict";
|
50563
50867
|
var get = __dependency1__.get;
|
50564
50868
|
var set = __dependency2__.set;
|
50565
50869
|
var run = __dependency3__["default"];
|
50566
50870
|
var computed = __dependency4__.computed;
|
50567
|
-
var
|
50568
|
-
var
|
50569
|
-
var
|
50570
|
-
var
|
50871
|
+
var read = __dependency5__.read;
|
50872
|
+
var Controller = __dependency6__["default"];
|
50873
|
+
var jQuery = __dependency7__["default"];
|
50874
|
+
var View = __dependency8__["default"];
|
50875
|
+
var ContainerView = __dependency9__["default"];
|
50571
50876
|
|
50572
50877
|
var trim = jQuery.trim;
|
50573
50878
|
var container, view, otherContainer;
|
@@ -50862,8 +51167,8 @@ enifed("ember-views/tests/views/container_view_test",
|
|
50862
51167
|
equal(container.objectAt(0), mainView, "should have the currentView as the only child view");
|
50863
51168
|
equal(mainView.get('parentView'), container, "parentView is setup");
|
50864
51169
|
equal(context, container.get('context'), 'context preserved');
|
50865
|
-
equal(mainView._keywords.controller
|
50866
|
-
equal(mainView._keywords.view
|
51170
|
+
equal(read(mainView._keywords.controller), controller, 'controller keyword is setup');
|
51171
|
+
equal(read(mainView._keywords.view), mainView, 'view keyword is setup');
|
50867
51172
|
});
|
50868
51173
|
|
50869
51174
|
test("if a ContainerView is created with a currentView, it is rendered as a child view", function() {
|
@@ -50891,8 +51196,8 @@ enifed("ember-views/tests/views/container_view_test",
|
|
50891
51196
|
equal(container.objectAt(0), mainView, "should have the currentView as the only child view");
|
50892
51197
|
equal(mainView.get('parentView'), container, "parentView is setup");
|
50893
51198
|
equal(context, container.get('context'), 'context preserved');
|
50894
|
-
equal(mainView._keywords.controller
|
50895
|
-
equal(mainView._keywords.view
|
51199
|
+
equal(read(mainView._keywords.controller), controller, 'controller keyword is setup');
|
51200
|
+
equal(read(mainView._keywords.view), mainView, 'view keyword is setup');
|
50896
51201
|
});
|
50897
51202
|
|
50898
51203
|
test("if a ContainerView starts with no currentView and then one is set, the ContainerView is updated", function() {
|
@@ -50926,8 +51231,8 @@ enifed("ember-views/tests/views/container_view_test",
|
|
50926
51231
|
equal(container.objectAt(0), mainView, "should have the currentView as the only child view");
|
50927
51232
|
equal(mainView.get('parentView'), container, "parentView is setup");
|
50928
51233
|
equal(context, container.get('context'), 'context preserved');
|
50929
|
-
equal(mainView._keywords.controller
|
50930
|
-
equal(mainView._keywords.view
|
51234
|
+
equal(read(mainView._keywords.controller), controller, 'controller keyword is setup');
|
51235
|
+
equal(read(mainView._keywords.view), mainView, 'view keyword is setup');
|
50931
51236
|
});
|
50932
51237
|
|
50933
51238
|
test("if a ContainerView starts with a currentView and then is set to null, the ContainerView is updated", function() {
|
@@ -50956,8 +51261,8 @@ enifed("ember-views/tests/views/container_view_test",
|
|
50956
51261
|
equal(container.objectAt(0), mainView, "should have the currentView as the only child view");
|
50957
51262
|
equal(mainView.get('parentView'), container, "parentView is setup");
|
50958
51263
|
equal(context, container.get('context'), 'context preserved');
|
50959
|
-
equal(mainView._keywords.controller
|
50960
|
-
equal(mainView._keywords.view
|
51264
|
+
equal(read(mainView._keywords.controller), controller, 'controller keyword is setup');
|
51265
|
+
equal(read(mainView._keywords.view), mainView, 'view keyword is setup');
|
50961
51266
|
|
50962
51267
|
run(function() {
|
50963
51268
|
set(container, 'currentView', null);
|
@@ -50993,8 +51298,8 @@ enifed("ember-views/tests/views/container_view_test",
|
|
50993
51298
|
equal(container.objectAt(0), mainView, "should have the currentView as the only child view");
|
50994
51299
|
equal(mainView.get('parentView'), container, "parentView is setup");
|
50995
51300
|
equal(context, container.get('context'), 'context preserved');
|
50996
|
-
equal(mainView._keywords.controller
|
50997
|
-
equal(mainView._keywords.view
|
51301
|
+
equal(read(mainView._keywords.controller), controller, 'controller keyword is setup');
|
51302
|
+
equal(read(mainView._keywords.view), mainView, 'view keyword is setup');
|
50998
51303
|
|
50999
51304
|
run(function() {
|
51000
51305
|
set(container, 'currentView', null);
|
@@ -51732,23 +52037,26 @@ enifed("ember-views/tests/views/select_test",
|
|
51732
52037
|
ok(select.$().is(":disabled"));
|
51733
52038
|
});
|
51734
52039
|
|
51735
|
-
|
51736
|
-
|
51737
|
-
|
52040
|
+
// Browsers before IE10 do not support the required property.
|
52041
|
+
if (document && ('required' in document.createElement('input'))) {
|
52042
|
+
test("should begin required if the required attribute is true", function() {
|
52043
|
+
select.set('required', true);
|
52044
|
+
append();
|
51738
52045
|
|
51739
|
-
|
51740
|
-
|
52046
|
+
ok(select.element.required, 'required property is truthy');
|
52047
|
+
});
|
51741
52048
|
|
51742
|
-
|
51743
|
-
|
51744
|
-
|
52049
|
+
test("should become required if the required attribute is changed", function() {
|
52050
|
+
append();
|
52051
|
+
ok(!select.element.required, 'required property is falsy');
|
51745
52052
|
|
51746
|
-
|
51747
|
-
|
52053
|
+
run(function() { select.set('required', true); });
|
52054
|
+
ok(select.element.required, 'required property is truthy');
|
51748
52055
|
|
51749
|
-
|
51750
|
-
|
51751
|
-
|
52056
|
+
run(function() { select.set('required', false); });
|
52057
|
+
ok(!select.element.required, 'required property is falsy');
|
52058
|
+
});
|
52059
|
+
}
|
51752
52060
|
|
51753
52061
|
test("should become disabled if the disabled attribute is changed", function() {
|
51754
52062
|
append();
|
@@ -52789,7 +53097,7 @@ enifed("ember-views/tests/views/text_field_test",
|
|
52789
53097
|
}
|
52790
53098
|
});
|
52791
53099
|
|
52792
|
-
test("should become disabled if the disabled attribute is true", function() {
|
53100
|
+
test("should become disabled if the disabled attribute is true before append", function() {
|
52793
53101
|
textField.set('disabled', true);
|
52794
53102
|
append();
|
52795
53103
|
|
@@ -53754,6 +54062,21 @@ enifed("ember-views/tests/views/view/attribute_bindings_test",
|
|
53754
54062
|
ok(!view.$().attr('notNumber'), "removes notNumber attribute when NaN");
|
53755
54063
|
});
|
53756
54064
|
|
54065
|
+
test("should normalize case for attribute bindings", function() {
|
54066
|
+
view = EmberView.create({
|
54067
|
+
tagName: 'input',
|
54068
|
+
attributeBindings: ['disAbled'],
|
54069
|
+
|
54070
|
+
disAbled: true
|
54071
|
+
});
|
54072
|
+
|
54073
|
+
run(function() {
|
54074
|
+
view.createElement();
|
54075
|
+
});
|
54076
|
+
|
54077
|
+
ok(view.$().prop('disabled'), "sets property with correct case");
|
54078
|
+
});
|
54079
|
+
|
53757
54080
|
test("should update attribute bindings", function() {
|
53758
54081
|
view = EmberView.create({
|
53759
54082
|
classNameBindings: ['priority', 'isUrgent', 'isClassified:classified', 'canIgnore'],
|