mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-22 22:28:08 +00:00
feat(Utils/uri-tools): add spec file to test uris
This commit is contained in:
parent
50d190a267
commit
51b629c4e1
3 changed files with 107 additions and 22 deletions
|
|
@ -20,38 +20,28 @@ NC='\e[0m'
|
|||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $SCRIPT_DIR/..
|
||||
|
||||
# Check JS lib.
|
||||
printf "${BLUE}Testing scripts lib...${NC}\n"
|
||||
# ====================================================================
|
||||
|
||||
so_far_so_good=0
|
||||
$TEST_RUNNER -import $MODULES_PATH -input './ui/scripts/Utils/utils.spec.qml'
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
printf "${GREEN}Done. No error found in scripts lib.\n"
|
||||
else
|
||||
printf "${RED}One or more errors were found. Please to fix them.\n"
|
||||
so_far_so_good=1
|
||||
fi
|
||||
printf "${NC}\n"
|
||||
|
||||
# Check all `*.spec.qml` files
|
||||
# Check all `*.spec.qml` files.
|
||||
while read line
|
||||
do
|
||||
qml_file=$(
|
||||
source_file=$(
|
||||
printf "$line" |
|
||||
sed -n 's/^\s*<\s*file\s*>\s*\(.*\.qml\)\s*<\s*\/\s*file\s*>\s*$/\1/p'
|
||||
sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p'
|
||||
)
|
||||
if [[ ! -z $qml_file ]]; then
|
||||
spec_qml_file="${qml_file%.*}.${TEST_FILE_EXTENSION}"
|
||||
if [[ ! -z $source_file ]]; then
|
||||
spec_file="${source_file%.*}.${TEST_FILE_EXTENSION}"
|
||||
|
||||
if [ -f $spec_qml_file ]; then
|
||||
printf "${BLUE}Running unit qml tests of '${qml_file}'...${NC}\n"
|
||||
$TEST_RUNNER -import $MODULES_PATH -import $SCRIPTS_PATH -input "$spec_qml_file"
|
||||
if [ -f $spec_file ]; then
|
||||
printf "${BLUE}Running unit qml tests of '${source_file}'...${NC}\n"
|
||||
$TEST_RUNNER -import $MODULES_PATH -import $SCRIPTS_PATH -input "$spec_file"
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
printf "${GREEN}All unit tests have succeeded for '${spec_qml_file}'.\n"
|
||||
printf "${GREEN}All unit tests have succeeded for '${spec_file}'.\n"
|
||||
else
|
||||
printf "${RED}Unit tests have failed for '${spec_qml_file}'.\n"
|
||||
printf "${RED}Unit tests have failed for '${spec_file}'.\n"
|
||||
so_far_so_good=1
|
||||
fi
|
||||
printf "${NC}\n"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ var SUPPORTS_URL = true
|
|||
// Level 0. ----------------------------------------------------------
|
||||
|
||||
var URI_PCT_ENCODED = '%[A-Fa-f\\d]{2}'
|
||||
var URI_PORT = '\d*'
|
||||
var URI_PORT = '\\d*'
|
||||
var URI_SCHEME = '[a-zA-Z][\\w+\-\.]*'
|
||||
var URI_SUB_DELIMS = '[!$&\'()*+,;=]'
|
||||
var URI_UNRESERVED = '[\\w\-\._~]'
|
||||
|
|
|
|||
95
tests/ui/scripts/Utils/uri-tools.spec.qml
Normal file
95
tests/ui/scripts/Utils/uri-tools.spec.qml
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
import QtTest 1.1
|
||||
|
||||
import './uri-tools.js' as UriTools
|
||||
|
||||
// ===================================================================
|
||||
|
||||
TestCase {
|
||||
function test_regexExists () {
|
||||
compare(
|
||||
UriTools.URI_REGEX instanceof RegExp,
|
||||
true,
|
||||
'`URI_REGEX` is not a `RegExp` or is undefined.'
|
||||
)
|
||||
}
|
||||
|
||||
function test_urlSupport () {
|
||||
compare(
|
||||
typeof UriTools.SUPPORTS_URL,
|
||||
'boolean',
|
||||
'`SUPPORTS_URL` is not a `Boolean` or is undefined.'
|
||||
)
|
||||
}
|
||||
|
||||
function test_matchUri_data () {
|
||||
return [
|
||||
{
|
||||
input: 'http://www.LaRmInA.com/',
|
||||
output: [ 'http://www.LaRmInA.com/' ]
|
||||
}, {
|
||||
input: 'http://foob%3Dbar@baz.fr',
|
||||
output: [ 'http://foob%3Dbar@baz.fr' ]
|
||||
}, {
|
||||
input: 'file://a/b/c/;d',
|
||||
output: [ 'file://a/b/c/;d' ]
|
||||
}, {
|
||||
input: 'ftp://0/',
|
||||
output: [ 'ftp://0/' ]
|
||||
}, {
|
||||
input: 'mailto://valentin.cognito@domain.unknown',
|
||||
output: [ 'mailto://valentin.cognito@domain.unknown' ]
|
||||
}, {
|
||||
input: 'mailto://sLimAne@egypt',
|
||||
output: [ 'mailto://sLimAne@egypt' ]
|
||||
}, {
|
||||
input: 'file://beetlejuice-beetlejuice-beetlejui...',
|
||||
output: [ 'file://beetlejuice-beetlejuice-beetlejui...' ]
|
||||
}, {
|
||||
input: 'https://gitlab@localhost',
|
||||
output: [ 'https://gitlab@localhost' ]
|
||||
}, {
|
||||
input: 'xmpp:von.zimmel@reich.org',
|
||||
output: [ 'xmpp:von.zimmel@reich.org' ]
|
||||
}, {
|
||||
input: 'dot.dot://dot.dot.dot@dot.dot.dot',
|
||||
output: [ 'dot.dot://dot.dot.dot@dot.dot.dot' ]
|
||||
}, {
|
||||
input: 'A:B',
|
||||
output: [ 'A:B' ]
|
||||
}, {
|
||||
input: 'foo://a=B.7z*+9aZb;$.!,!,!_(~_~)_-&\':',
|
||||
output: [ 'foo://a=B.7z*+9aZb;$.!,!,!_(~_~)_-&\':' ]
|
||||
}, {
|
||||
input: 'foo+bar+baz://hey:1800/it-s-me?a&b=12',
|
||||
output: [ 'foo+bar+baz://hey:1800/it-s-me?a&b=12' ]
|
||||
}, {
|
||||
input: 'nsa://localhost:666',
|
||||
output: [ 'nsa://localhost:666' ]
|
||||
}, {
|
||||
input: 'protocol://U$3r:p@sswd/WwW.L33t.sp3',
|
||||
output: [ 'protocol://U$3r:p@sswd/WwW.L33t.sp3' ]
|
||||
}, {
|
||||
input: 'http://a/B/c?a&b&c',
|
||||
output: [ 'http://a/B/c?a&b&c' ]
|
||||
}, {
|
||||
input: '1http://www.linphone.org',
|
||||
output: [ 'http://www.linphone.org' ]
|
||||
}, {
|
||||
input: '://www.linphone.org',
|
||||
output: UriTools.SUPPORTS_URL
|
||||
? [ 'www.linphone.org' ]
|
||||
: null
|
||||
}, {
|
||||
input: 'http',
|
||||
output: null
|
||||
}, {
|
||||
input: '/path/',
|
||||
output: null
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
function test_matchUri (data) {
|
||||
compare(data.input.match(UriTools.URI_REGEX), data.output)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue