fix(core): properly evaluate expressions with conditional and boolean operators

Fixes #8235
Fixes #8244

Closes #8282
This commit is contained in:
Pawel Kozlowski
2016-04-27 15:30:07 +02:00
parent 1e8864c4a5
commit 1ad2a02b11
5 changed files with 34 additions and 4 deletions
@@ -71,7 +71,35 @@ function declareTests(isJit: boolean) {
async.done();
});
}));
});
describe('expressions', () => {
it('should evaluate conditional and boolean operators with right precedence - #8244',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideView(MyComp,
new ViewMetadata({template: `{{'red' + (true ? ' border' : '')}}`}))
.createAsync(MyComp)
.then((fixture) => {
fixture.detectChanges();
expect(fixture.nativeElement).toHaveText('red border');
async.done();
});
}));
if (!IS_DART) {
it('should evaluate conditional and unary operators with right precedence - #8235',
inject([TestComponentBuilder, AsyncTestCompleter],
(tcb: TestComponentBuilder, async) => {
tcb.overrideView(MyComp, new ViewMetadata({template: `{{!null?.length}}`}))
.createAsync(MyComp)
.then((fixture) => {
fixture.detectChanges();
expect(fixture.nativeElement).toHaveText('true');
async.done();
});
}));
}
});
describe('providers', () => {