Linkify messages with unicode drawing characters

This commit is contained in:
Scott Nonnenberg 2023-08-25 06:47:01 -07:00 committed by GitHub
parent 7b11804cda
commit 0459ab02d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 9 deletions

View file

@ -62,12 +62,6 @@ describe('Link previews', () => {
assert.isFalse(shouldLinkifyMessage('\u202e'));
});
it('returns false for strings with unicode drawing characters', () => {
assert.isFalse(shouldLinkifyMessage('\u2500'));
assert.isFalse(shouldLinkifyMessage('\u2588'));
assert.isFalse(shouldLinkifyMessage('\u25FF'));
});
it('returns true other strings', () => {
assert.isTrue(shouldLinkifyMessage(null));
assert.isTrue(shouldLinkifyMessage(undefined));
@ -166,6 +160,21 @@ describe('Link previews', () => {
assert.strictEqual(isLinkSneaky(link), true);
});
it('returns true for strings with unicode drawing characters', () => {
assert.strictEqual(
isLinkSneaky('https://example.com/\u2500/stuff'),
true
);
assert.strictEqual(
isLinkSneaky('https://example.com/\u2588/stuff'),
true
);
assert.strictEqual(
isLinkSneaky('https://example.com/\u25FF/stuff'),
true
);
});
it('returns true for $', () => {
const link = 'r.id$s.id';
assert.strictEqual(isLinkSneaky(link), true);

View file

@ -90,9 +90,6 @@ export function shouldLinkifyMessage(
if (DIRECTIONAL_OVERRIDES.test(message)) {
return false;
}
if (UNICODE_DRAWING.test(message)) {
return false;
}
return true;
}
@ -187,6 +184,10 @@ export function isLinkSneaky(href: string): boolean {
return true;
}
if (UNICODE_DRAWING.test(href)) {
return true;
}
const url = maybeParseUrl(href);
// If we can't parse it, it's sneaky.