Files
Ady Elouej 6f9a64e6f5 fix(compiler): remove namespaced MathML script elements
Treat MathML-namespaced script elements as scripts during template preprocessing. This prevents scripts nested in MathML HTML integration points from surviving template compilation.

(cherry picked from commit 107f6fa49d)
2026-08-07 23:33:00 +00:00

50 lines
1.3 KiB
TypeScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import {Component} from '@angular/core';
import {ssr} from './hydration_utils';
describe('renderApplication', () => {
it('should render ARIA attributes from attribute bindings', async () => {
@Component({
selector: 'app',
template: '<div [attr.aria-label]="label"></div>',
})
class SomeComponent {
label = 'some label';
}
const html = await ssr(SomeComponent);
expect(html).toContain('aria-label="some label"');
});
it('should render ARIA attributes using property binding syntax', async () => {
@Component({
selector: 'app',
template: '<div [aria-label]="label"></div>',
})
class SomeComponent {
label = 'a third label';
}
const html = await ssr(SomeComponent);
expect(html).toContain('aria-label="a third label"');
});
it('should not serialize MathML script elements', async () => {
@Component({
selector: 'app',
template: '<math><mtext><script>bad()</script></mtext></math>',
})
class SomeComponent {}
const html = await ssr(SomeComponent, {enableHydration: false});
expect(html).not.toContain('<script');
});
});