ember-source 1.10.0.beta.4 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
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'],
|