tests: Port Highlighter test to jasmine

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
This commit is contained in:
Florian Müllner 2024-01-20 08:00:39 +01:00 committed by Marge Bot
parent ea4f859547
commit 9315d42dd6
2 changed files with 124 additions and 136 deletions

View File

@ -20,6 +20,7 @@ unit_testenv.append('GI_TYPELIB_PATH', shell_typelib_path, separator: ':')
unit_testenv.append('GI_TYPELIB_PATH', st_typelib_path, separator: ':')
unit_tests = [
'highlighter',
]
foreach test : unit_tests
@ -38,7 +39,6 @@ foreach test : unit_tests
endforeach
legacy_tests = [
'highlighter',
'injectionManager',
'insertSorted',
'jsParse',

View File

@ -2,13 +2,13 @@
// Test cases for SearchResult description match highlighter
const JsUnit = imports.jsUnit;
import Pango from 'gi://Pango';
import 'resource:///org/gnome/shell/ui/environment.js';
import * as Util from 'resource:///org/gnome/shell/misc/util.js';
import {Highlighter} from 'resource:///org/gnome/shell/misc/util.js';
const tests = [
describe('Highlighter', () => {
const tests = [
{
input: 'abc cba',
terms: null,
@ -119,29 +119,17 @@ const tests = [
terms: ['a'],
output: '&amp;<b>a</b>mp;',
},
];
];
try {
for (let i = 0; i < tests.length; i++) {
let highlighter = new Util.Highlighter(tests[i].terms);
let output = highlighter.highlight(tests[i].input);
for (const test of tests) {
const {terms, input, output: expected} = test;
JsUnit.assertEquals(`Test ${i + 1} highlight ` +
`"${tests[i].terms}" in "${tests[i].input}"`,
output, tests[i].output);
it(`highlights ${JSON.stringify(terms)} in "${input}"`, () => {
const highlighter = new Highlighter(terms);
const output = highlighter.highlight(input);
let parsed = false;
try {
Pango.parse_markup(output, -1, '');
parsed = true;
} catch (e) {}
JsUnit.assertEquals(`Test ${i + 1} is valid markup`, true, parsed);
expect(output).toEqual(expected);
expect(() => Pango.parse_markup(output, -1, '')).not.toThrow();
});
}
} catch (e) {
if (typeof e.isJsUnitException != 'undefined' &&
e.isJsUnitException) {
if (e.comment)
log(`Error in: ${e.comment}`);
}
throw e;
}
});