Skip to content

Commit d646463

Browse files
committed
fix(test): StyleCompiler tests failing in Android browsers
1 parent c83207f commit d646463

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

modules/angular2/test/compiler/style_compiler_spec.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {IS_DART} from '../platform';
1515
import {SpyXHR} from '../core/spies';
1616
import {BaseException, WrappedException} from 'angular2/src/core/facade/exceptions';
1717

18-
import {CONST_EXPR, isPresent} from 'angular2/src/core/facade/lang';
18+
import {CONST_EXPR, isPresent, StringWrapper} from 'angular2/src/core/facade/lang';
1919
import {PromiseWrapper, Promise} from 'angular2/src/core/facade/async';
2020
import {evalModule} from './eval_module';
2121
import {StyleCompiler} from 'angular2/src/compiler/style_compiler';
@@ -69,7 +69,7 @@ export function main() {
6969
});
7070
compiler.compileComponentRuntime(comp(styles, styleAbsUrls, encapsulation))
7171
.then((value) => {
72-
expect(value).toEqual(expectedStyles);
72+
compareStyles(value, expectedStyles);
7373
async.done();
7474
});
7575
});
@@ -121,7 +121,7 @@ export function main() {
121121
compiler.compileComponentCodeGen(comp(styles, styleAbsUrls, encapsulation));
122122
evalModule(testableModule(sourceModule.source), sourceModule.imports, null)
123123
.then((value) => {
124-
expect(value).toEqual(expectedStyles);
124+
compareStyles(value, expectedStyles);
125125
async.done();
126126
});
127127
});
@@ -139,7 +139,8 @@ export function main() {
139139

140140
it('should allow to import rules',
141141
runTest(['div {color: red}'], [IMPORT_ABS_MODULE_NAME], encapsulation,
142-
['div {color: red}', 'span {color: blue}']));
142+
['div {color: red}', 'span {color: blue}']),
143+
1000);
143144
});
144145

145146
describe('with shim', () => {
@@ -153,7 +154,8 @@ export function main() {
153154
it('should allow to import rules',
154155
runTest(
155156
['div {color: red}'], [IMPORT_ABS_MODULE_NAME], encapsulation,
156-
['div[_ngcontent-23] {\ncolor: red;\n}', 'span[_ngcontent-23] {\ncolor: blue;\n}']));
157+
['div[_ngcontent-23] {\ncolor: red;\n}', 'span[_ngcontent-23] {\ncolor: blue;\n}']),
158+
1000);
157159
});
158160
});
159161

@@ -165,8 +167,9 @@ export function main() {
165167
evalModule(testableModule(sourceModule.source),
166168
sourceModule.imports, null)))
167169
.then((values) => {
168-
expect(values[0]).toEqual(expectedStyles);
169-
expect(values[1]).toEqual(expectedShimStyles);
170+
compareStyles(values[0], expectedStyles);
171+
compareStyles(values[1], expectedShimStyles);
172+
170173
async.done();
171174
});
172175
});
@@ -177,10 +180,12 @@ export function main() {
177180

178181
it('should allow to import rules with relative paths',
179182
runTest(`div {color: red}@import ${IMPORT_REL_MODULE_NAME};`,
180-
['div {color: red}', 'span {color: blue}'], [
183+
['div {color: red}', 'span {color: blue}'],
184+
[
181185
'div[_ngcontent-%COMP%] {\ncolor: red;\n}',
182186
'span[_ngcontent-%COMP%] {\ncolor: blue;\n}'
183-
]));
187+
]),
188+
1000);
184189
});
185190
});
186191
}
@@ -196,3 +201,11 @@ function testableModule(sourceModule: string) {
196201
`;
197202
}
198203
}
204+
205+
// Needed for Android browsers which add an extra space at the end of some lines
206+
function compareStyles(styles: string[], expectedStyles: string[]) {
207+
expect(styles.length).toEqual(expectedStyles.length);
208+
for (var i = 0; i < styles.length; i++) {
209+
expect(StringWrapper.replaceAll(styles[i], /\s+\n/g, '\n')).toEqual(expectedStyles[i]);
210+
}
211+
}

0 commit comments

Comments
 (0)