mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-17 08:34:54 -04:00

Signed-off-by: Erik Michelson <github@erik.michelson.eu> Signed-off-by: Philip Molares <philip.molares@udo.edu>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
import { ConsoleLoggerService } from './console-logger.service';
|
|
|
|
describe('sanitize', () => {
|
|
it('removes non-printable ASCII character', () => {
|
|
for (let i = 0; i < 32; i++) {
|
|
const nonPrintableString = String.fromCharCode(i);
|
|
expect(ConsoleLoggerService.sanitize(`a${nonPrintableString}b`)).toEqual(
|
|
'ab',
|
|
);
|
|
}
|
|
});
|
|
it('replaces non-zero-width space with space', () => {
|
|
const nonZeroWidthSpaces = [
|
|
'\u0020', // space
|
|
'\u00A0', // non-breaking space
|
|
'\u2000', // en quad
|
|
'\u2001', // en quad
|
|
'\u2002', // en space
|
|
'\u2003', // en space
|
|
'\u2004', // three-per-em space
|
|
'\u2005', // four-per-em space
|
|
'\u2006', // six-per-em space
|
|
'\u2007', // figure space
|
|
'\u2008', // punctuation space
|
|
'\u2009', // thin space
|
|
'\u200a', // hair space
|
|
'\u202F', // narrow no-break space
|
|
'\u205F', // medium mathematical space
|
|
'\u3000', // ideographic space
|
|
];
|
|
nonZeroWidthSpaces.forEach((space) => {
|
|
expect(ConsoleLoggerService.sanitize(`c${space}d`)).toEqual('c d');
|
|
});
|
|
});
|
|
});
|