Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit c68c451

Browse files
committed
fix(css): add empty class check to NgElement.
Dart2js 1.10 started passes classNames through without performing empty string check. DOM apis throw on empty string, so we perform the empty class name check inside our APIs.
1 parent ddc1319 commit c68c451

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

lib/core_dom/ng_element.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ class NgElement {
3636

3737
/// Schedules a DOM write adding [className] to the element.
3838
void addClass(String className) {
39+
if (className.isEmpty) return;
3940
_scheduleDomWrite();
4041
_classesToUpdate[className] = true;
4142
}
4243

4344
/// Schedules a DOM write removing [className] from the element.
4445
void removeClass(String className) {
46+
if (className.isEmpty) return;
4547
_scheduleDomWrite();
4648
_classesToUpdate[className] = false;
4749
}

test/core_dom/ng_element_spec.dart

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ void main() {
1818
var element = e('<div></div>');
1919
var ngElement = new NgElement(element, scope, animate);
2020

21-
ngElement..addClass('one')..addClass('two three');
21+
ngElement..addClass('one')..addClass('two')..addClass('three');
2222

2323
['one', 'two', 'three'].forEach((className) {
2424
expect(element).not.toHaveClass(className);
@@ -54,6 +54,19 @@ void main() {
5454
expect(element).toHaveClass('four');
5555
});
5656

57+
it('should ignore empty strings',
58+
(TestBed _, Animate animate) {
59+
60+
var scope = _.rootScope;
61+
var element = e('<div></div>');
62+
var ngElement = new NgElement(element, scope, animate);
63+
64+
ngElement..addClass('');
65+
ngElement..removeClass('');
66+
67+
scope.apply();
68+
});
69+
5770
it('should always apply the last dom operation on the given className',
5871
(TestBed _, Animate animate) {
5972

0 commit comments

Comments
 (0)