mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
tests: Port findUrl() test to jasmine
Based on https://bugzilla.gnome.org/show_bug.cgi?id=783738 from Sam Spilsbury. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
This commit is contained in:
parent
8345047c24
commit
41aa44707a
2 changed files with 111 additions and 112 deletions
|
|
@ -27,6 +27,7 @@ unit_tests = [
|
||||||
'markup',
|
'markup',
|
||||||
'params',
|
'params',
|
||||||
'signalTracker',
|
'signalTracker',
|
||||||
|
'url',
|
||||||
]
|
]
|
||||||
|
|
||||||
foreach test : unit_tests
|
foreach test : unit_tests
|
||||||
|
|
@ -45,7 +46,6 @@ foreach test : unit_tests
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
legacy_tests = [
|
legacy_tests = [
|
||||||
'url',
|
|
||||||
'versionCompare',
|
'versionCompare',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,121 +2,120 @@
|
||||||
|
|
||||||
// Test cases for MessageTray URLification
|
// Test cases for MessageTray URLification
|
||||||
|
|
||||||
const JsUnit = imports.jsUnit;
|
|
||||||
|
|
||||||
import 'resource:///org/gnome/shell/ui/environment.js';
|
import 'resource:///org/gnome/shell/ui/environment.js';
|
||||||
|
import {findUrls} from 'resource:///org/gnome/shell/misc/util.js';
|
||||||
|
|
||||||
import * as Util 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}],
|
||||||
|
},
|
||||||
|
|
||||||
const tests = [
|
{
|
||||||
{
|
input: 'Visit http://www.gnome.org/ and http://developer.gnome.org',
|
||||||
input: 'This is a test',
|
output: [{url: 'http://www.gnome.org/', pos: 6},
|
||||||
output: [],
|
{url: 'http://developer.gnome.org', pos: 32}],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
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',
|
input: 'This is not.a.domain test.',
|
||||||
output: [{url: 'http://www.gnome.org/', pos: 6},
|
output: [],
|
||||||
{url: 'http://developer.gnome.org', pos: 32}],
|
},
|
||||||
},
|
{
|
||||||
|
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) {
|
||||||
input: 'This is not.a.domain test.',
|
const {input, output} = param;
|
||||||
output: [],
|
const findsOrDoesNotFind = output.length > 0
|
||||||
},
|
? 'finds'
|
||||||
{
|
: 'does not find';
|
||||||
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 (let i = 0; i < tests.length; i++) {
|
it(`${findsOrDoesNotFind} URLs in "${input}"`, () => {
|
||||||
let match = Util.findUrls(tests[i].input);
|
expect(findUrls(input)).toEqual(output);
|
||||||
|
});
|
||||||
JsUnit.assertEquals(`Test ${i} match length`,
|
|
||||||
match.length, tests[i].output.length);
|
|
||||||
for (let j = 0; j < match.length; j++) {
|
|
||||||
JsUnit.assertEquals(`Test ${i}, match ${j} url`, match[j].url, tests[i].output[j].url);
|
|
||||||
JsUnit.assertEquals(`Test ${i}, match ${j} position`, match[j].pos, tests[i].output[j].pos);
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue