import { describe, expect, it } from 'vitest'; import { Circle } from '../Circle'; import { Ellipse } from '../Ellipse'; import { Rect } from '../Rect'; import { FabricText } from '../Text/Text'; import { FabricImage } from '../Image'; import { Shadow } from '../../Shadow'; const MALICIOUS = 'x" />'; const MALICIOUS2 = `x" onclick="alert('svg animatetransform onbegin')"`; const ONCLICK_PAYLOAD = `onclick="alert('svg animatetransform onbegin')"`; describe.each([MALICIOUS, MALICIOUS2])( 'Object SVG export sanitization (%s)', (payload) => { it('sanitizes object id attributes', () => { const rect = new Rect({ id: payload, width: 10, height: 10, }); const svg = rect.toSVG(); expect(svg).not.toContain('', { fontFamily: `Times New Roman ${payload}`, }); const svg = text.toSVG(); expect(svg).not.toContain('