/**
* Tests for the 'utils/string' file.
*/
// Do not warn if these variables were not defined before.
/* global QUnit */
/**
* Tests for {@link dwv.utils.capitaliseFirstLetter}.
*
* @function module:tests/utils~capitaliseFirstLetter
*/
QUnit.test('Test CapitaliseFirstLetter.', function (assert) {
// undefined
assert.equal(dwv.utils.capitaliseFirstLetter(), null, 'Capitalise undefined');
// null
assert.equal(dwv.utils.capitaliseFirstLetter(null), null, 'Capitalise null');
// empty
assert.equal(dwv.utils.capitaliseFirstLetter(''), '', 'Capitalise empty');
// short
assert.equal(
dwv.utils.capitaliseFirstLetter('a'), 'A', 'Capitalise one letter');
// space first
assert.equal(dwv.utils.capitaliseFirstLetter(' a'), ' a', 'Capitalise space');
// regular
assert.equal(
dwv.utils.capitaliseFirstLetter('dicom'), 'Dicom', 'Capitalise regular');
assert.equal(
dwv.utils.capitaliseFirstLetter('Dicom'),
'Dicom',
'Capitalise regular no need');
// with spaces
assert.equal(
dwv.utils.capitaliseFirstLetter('le ciel est bleu'),
'Le ciel est bleu',
'Capitalise sentence');
});
/**
* Tests for {@link dwv.utils.endsWith}.
*
* @function module:tests/utils~endsWith
*/
QUnit.test('Test EndsWith.', function (assert) {
// undefined
assert.equal(dwv.utils.endsWith(), false, 'EndsWith undefined');
assert.equal(dwv.utils.endsWith('test'), false, 'EndsWith end undefined');
// null
assert.equal(dwv.utils.endsWith(null), false, 'EndsWith null');
assert.equal(dwv.utils.endsWith('test', null), false, 'EndsWith end null');
// empty
assert.equal(dwv.utils.endsWith('', ''), true, 'EndsWith empty');
assert.equal(dwv.utils.endsWith('test', ''), true, 'EndsWith end empty');
// short
assert.equal(dwv.utils.endsWith('a', 'a'), true, 'EndsWith one letter');
assert.equal(
dwv.utils.endsWith('a', 'A'),
false,
'EndsWith one letter case sensitive');
// end bigger than input
assert.equal(dwv.utils.endsWith('a', 'aba'), false, 'EndsWith large end');
// space
assert.equal(dwv.utils.endsWith('test ', ' '), true, 'EndsWith end space');
assert.equal(dwv.utils.endsWith('test ', 'a'), false, 'EndsWith with space');
// regular
assert.equal(
dwv.utils.endsWith('Winter is coming.', '.'), true, 'EndsWith test#0');
assert.equal(
dwv.utils.endsWith('Winter is coming.', 'coming.'),
true, 'EndsWith test#1');
assert.equal(
dwv.utils.endsWith('Winter is coming.', 'ING.'),
false, 'EndsWith test#2');
assert.equal(
dwv.utils.endsWith('Winter is coming.', 'is coming.'),
true, 'EndsWith test#3');
assert.equal(
dwv.utils.endsWith('Winter is coming.', 'Winter is coming.'),
true, 'EndsWith test#4');
});
/**
* Tests for {@link dwv.utils.getFlags}.
*
* @function module:tests/utils~getFlags
*/
QUnit.test('Test getFlags.', function (assert) {
// empty
assert.equal(
dwv.utils.getFlags('').length, 0, 'getFlags empty');
// null
assert.equal(
dwv.utils.getFlags(null).length, 0, 'getFlags null');
// undefined
assert.equal(
dwv.utils.getFlags().length, 0, 'getFlags undefined');
// nothing to do
var str00 = 'abcd';
assert.equal(
dwv.utils.getFlags(str00).length, 0, 'getFlags nothing to do');
// empty braces
var str01 = '{}';
assert.equal(
dwv.utils.getFlags(str01).length, 0, 'getFlags empty braces');
// real #0
var str10 = '{a}';
assert.equal(
dwv.utils.getFlags(str10)[0], 'a', 'getFlags #0');
// real #1
var str11 = 'aaa{a}aaa';
assert.equal(
dwv.utils.getFlags(str11)[0], 'a', 'getFlags #1');
// real #2
var str12 = '{a}-{b}-{c}';
var res12 = dwv.utils.getFlags(str12);
assert.equal(res12[0], 'a', 'getFlags #2.0');
assert.equal(res12[1], 'b', 'getFlags #2.1');
assert.equal(res12[2], 'c', 'getFlags #2.2');
// real #3
var str13 = '{a{b}}';
assert.equal(
dwv.utils.getFlags(str13)[0], 'b', 'getFlags #3');
});
/**
* Tests for {@link dwv.utils.replaceFlags}.
*
* @function module:tests/utils~replaceFlags
*/
QUnit.test('Test ReplaceFlags.', function (assert) {
// empty/null
assert.equal(dwv.utils.replaceFlags('', null), '', 'ReplaceFlags empty/null');
// null/null
assert.equal(
dwv.utils.replaceFlags(null, null), '', 'ReplaceFlags null/null');
// empty/undefined
assert.equal(dwv.utils.replaceFlags(''), '', 'ReplaceFlags empty/undefined');
// real
var str = '{a}';
var values = {a: {value: 33, unit: 'ohm'}};
assert.equal(
dwv.utils.replaceFlags(str, values), '33.00 ohm', 'ReplaceFlags real');
// real surrounded
str = 'Resistance:{a}.';
values = {a: {value: 33, unit: 'ohm'}};
assert.equal(
dwv.utils.replaceFlags(str, values),
'Resistance:33.00 ohm.',
'ReplaceFlags surrounded');
// real no unit
str = '{a}';
values = {a: {value: 33}};
assert.equal(
dwv.utils.replaceFlags(str, values), '33.00', 'ReplaceFlags real no unit');
// no match
str = '{a}';
values = {b: {value: 33, unit: 'ohm'}};
assert.equal(
dwv.utils.replaceFlags(str, values), '{a}', 'ReplaceFlags no match');
// no value
str = '{a}';
values = {a: {unit: 'ohm'}};
assert.equal(
dwv.utils.replaceFlags(str, values), '{a}', 'ReplaceFlags no value');
// nothing to do
str = 'a';
values = {a: {value: 33, unit: 'ohm'}};
assert.equal(
dwv.utils.replaceFlags(str, values), 'a', 'ReplaceFlags nothing to do');
// nothing to do no values
str = 'a';
values = {};
assert.equal(
dwv.utils.replaceFlags(str, values),
'a',
'ReplaceFlags nothing to do no values');
});
/**
* Tests for {@link dwv.utils.getFileExtension}.
*
* @function module:tests/utils~getFileExtension
*/
QUnit.test('Test getFileExtension.', function (assert) {
// undefined
assert.equal(
dwv.utils.getFileExtension(), null, 'getFileExtension undefined');
// null
assert.equal(dwv.utils.getFileExtension(null), null, 'getFileExtension null');
// empty
assert.equal(dwv.utils.getFileExtension(''), null, 'getFileExtension empty');
// dot
assert.equal(dwv.utils.getFileExtension('.'), null, 'getFileExtension dot');
// no extension
assert.equal(
dwv.utils.getFileExtension('filename'),
null, 'getFileExtension no extension');
// test #00
var test00 = 'image.png';
var res00 = 'png';
assert.equal(
dwv.utils.getFileExtension(test00), res00, 'getFileExtension 00: simple');
// test #01
var test01 = 'IMAGE.PNG';
var res01 = 'png';
assert.equal(
dwv.utils.getFileExtension(test01), res01,
'getFileExtension 01: upper case');
// test #02
var test02 = 'image.10.png';
var res02 = 'png';
assert.equal(
dwv.utils.getFileExtension(test02), res02,
'getFileExtension 02: multiple dots');
// test #03
var test03 = '.profile';
var res03 = null;
assert.equal(
dwv.utils.getFileExtension(test03), res03,
'getFileExtension 04: start with dot');
// test #04
var test04 = 'MR.1.3.12.123456.123456789';
var res04 = null;
assert.equal(
dwv.utils.getFileExtension(test04), res04,
'getFileExtension 03: dots and numbers');
// test #10
var test10 = '/path/to/file/image.png';
var res10 = 'png';
assert.equal(
dwv.utils.getFileExtension(test10), res10, 'getFileExtension 10');
// test #11
var test11 = 'domain.org/path/to/file/image.png';
var res11 = 'png';
assert.equal(
dwv.utils.getFileExtension(test11), res11, 'getFileExtension 11');
// test #12
var test12 = 'domain.org/path/to/file/IMAGE';
var res12 = null;
assert.equal(
dwv.utils.getFileExtension(test12), res12, 'getFileExtension 12');
});