Florian Müllner 105abab1e4 js: Remove modelines
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3431>
2024-07-30 18:20:55 +00:00

120 lines
3.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Test cases for MessageTray URLification
import 'resource:///org/gnome/shell/ui/environment.js';
import {findUrls} from 'resource:///org/gnome/shell/misc/util.js';
describe('findUrls()', () => {
const urlParameters = [
{
input: 'This is a test',
output: [],
},
{
input: 'This is http://www.gnome.org a test',
output: [{url: 'http://www.gnome.org', pos: 8}],
},
{
input: 'This is http://www.gnome.org',
output: [{url: 'http://www.gnome.org', pos: 8}],
},
{
input: 'http://www.gnome.org a test',
output: [{url: 'http://www.gnome.org', pos: 0}],
},
{
input: 'http://www.gnome.org',
output: [{url: 'http://www.gnome.org', pos: 0}],
},
{
input: 'Go to http://www.gnome.org.',
output: [{url: 'http://www.gnome.org', pos: 6}],
},
{
input: 'Go to http://www.gnome.org/.',
output: [{url: 'http://www.gnome.org/', pos: 6}],
},
{
input: '(Go to http://www.gnome.org!)',
output: [{url: 'http://www.gnome.org', pos: 7}],
},
{
input: 'Use GNOME (http://www.gnome.org).',
output: [{url: 'http://www.gnome.org', pos: 11}],
},
{
input: 'This is a http://www.gnome.org/path test.',
output: [{url: 'http://www.gnome.org/path', pos: 10}],
},
{
input: 'This is a www.gnome.org scheme-less test.',
output: [{url: 'www.gnome.org', pos: 10}],
},
{
input: 'This is a www.gnome.org/scheme-less test.',
output: [{url: 'www.gnome.org/scheme-less', pos: 10}],
},
{
input: 'This is a http://www.gnome.org:99/port test.',
output: [{url: 'http://www.gnome.org:99/port', pos: 10}],
},
{
input: 'This is an ftp://www.gnome.org/ test.',
output: [{url: 'ftp://www.gnome.org/', pos: 11}],
},
{
input: 'https://www.gnome.org/(some_url,_with_very_unusual_characters)',
output: [{url: 'https://www.gnome.org/(some_url,_with_very_unusual_characters)', pos: 0}],
},
{
input: 'https://www.gnome.org/(some_url_with_unbalanced_parenthesis',
output: [{url: 'https://www.gnome.org/', pos: 0}],
},
{
input: 'https://www.gnome.org/ plus trailing junk',
output: [{url: 'https://www.gnome.org/', pos: 0}],
},
{
input: 'Visit http://www.gnome.org/ and http://developer.gnome.org',
output: [{url: 'http://www.gnome.org/', pos: 6},
{url: 'http://developer.gnome.org', pos: 32}],
},
{
input: 'This is not.a.domain test.',
output: [],
},
{
input: 'This is not:a.url test.',
output: [],
},
{
input: 'This is not:/a.url/ test.',
output: [],
},
{
input: 'This is not:/a.url/ test.',
output: [],
},
{
input: 'This is not@a.url/ test.',
output: [],
},
{
input: 'This is surely@not.a/url test.',
output: [],
},
];
for (const param of urlParameters) {
const {input, output} = param;
const findsOrDoesNotFind = output.length > 0
? 'finds'
: 'does not find';
it(`${findsOrDoesNotFind} URLs in "${input}"`, () => {
expect(findUrls(input)).toEqual(output);
});
}
});