Commit 51b629c4 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(Utils/uri-tools): add spec file to test uris

parent 50d190a2
......@@ -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\-\._~]'
......
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)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment