Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 934e991

Browse files
committed
Update xml validation file
1 parent ad26c1a commit 934e991

1 file changed

Lines changed: 49 additions & 70 deletions

File tree

.travis/validate_report_files.sh

Lines changed: 49 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,66 @@
11
#!/usr/bin/env bash
22

33
GL_VALID=1
4-
5-
HTML_FILENAME="coverage.html"
6-
JUNIT_FILENAME="junit_test_results.xml"
7-
TFS_FILENAME="tfs_test_results.xml"
84
XSD_DIR="$TRAVIS_BUILD_DIR/.travis/xsd"
95
XML_JAR_DIR="$TRAVIS_BUILD_DIR/.travis/lib"
10-
JUNIT_XSD="$XSD_DIR/junit4.xsd"
11-
TFS_XSD="$XSD_DIR/junit_windy.xsd"
12-
13-
14-
#Exclude existing issue with OL nested in PRE
15-
EXCLUSION_REGEX=".*Element\s.?ol.?\snot\sallowed\sas\schild\sof\selement\s.?pre.*"
16-
17-
#HTML Validation API
18-
HTML_VALIDATOR_URL="https://validator.w3.org/nu/"
19-
VALIDATOR_OUT="gnu"
20-
WARNING_REGEX="info warning:"
21-
ERROR_REGEX="error:"
22-
236
#XML Validator
247
XML_VALIDATOR="$XML_JAR_DIR/xml_validator.jar"
8+
HTML_VALIDATOR_URL="https://validator.w3.org/nu/"
259

26-
#Validate HTML
27-
HTML_VALIDATION_RESULTS=$(curl -H "Content-Type: text/html; charset=utf-8" --data-binary @$HTML_FILENAME "$HTML_VALIDATOR_URL?out=$VALIDATOR_OUT&filterpattern=$EXCLUSION_REGEX")
28-
29-
ERROR_COUNT=$(echo "$HTML_VALIDATION_RESULTS" | grep -c "$ERROR_REGEX")
30-
WARNING_COUNT=$(echo "$HTML_VALIDATION_RESULTS" | grep -c "$WARNING_REGEX")
31-
32-
if [ "$ERROR_COUNT" -gt 0 ]; then
33-
GL_VALID=0
34-
echo ""
35-
echo "******************************"
36-
echo "HTML File is invalid"
37-
echo "There are $ERROR_COUNT errors, $WARNING_COUNT warning in $HTML_FILENAME"
38-
echo "Please see results:"
39-
echo "$HTML_VALIDATION_RESULTS" | grep "$ERROR_REGEX"
40-
fi
41-
42-
43-
44-
#Debug
45-
echo "PWD"
46-
pwd
47-
48-
echo ""
49-
echo "LS $TRAVIS_BUILD_DIR"]
50-
ls $TRAVIS_BUILD_DIR
51-
52-
53-
54-
#Validate XML TFS_FILENAME
55-
TFS_RESULT=$(java -jar $XML_VALIDATOR -s $TFS_XSD $TFS_FILENAME 2>&1)
56-
57-
if [ $? -ne 0 ]; then
58-
GL_VALID=0
59-
echo ""
60-
echo "******************************"
61-
echo "TFS Test Result XML is invalid"
62-
echo "Please see results:"
63-
echo "$TFS_RESULT"
64-
fi
65-
66-
#Validate XML JUNIT_FILENAME
67-
JUNIT_RESULT=$(java -jar $XML_VALIDATOR -s $JUNIT_XSD $JUNIT_FILENAME 2>&1)
68-
69-
if [ $? -ne 0 ]; then
10+
HTML_FILENAME="coverage.html"
11+
declare -A XML_FILES
12+
XML_FILES["junit_test_results.xml"]="junit4.xsd"
13+
XML_FILES["tfs_test_results.xml"]="junit_windy.xsd"
14+
15+
function ValidateHtml {
16+
EXCLUSION_REGEX=".*Element\s.?ol.?\snot\sallowed\sas\schild\sof\selement\s.?pre.*"
17+
#HTML Validation API
18+
VALIDATOR_OUT="gnu"
19+
WARNING_REGEX="info warning:"
20+
ERROR_REGEX="error:"
21+
#Validate HTML
22+
HTML_VALIDATION_RESULTS=$(curl -H "Content-Type: text/html; charset=utf-8" --data-binary @$1 "$HTML_VALIDATOR_URL?out=$VALIDATOR_OUT&filterpattern=$EXCLUSION_REGEX")
23+
24+
ERROR_COUNT=$(echo "$HTML_VALIDATION_RESULTS" | grep -c "$ERROR_REGEX")
25+
WARNING_COUNT=$(echo "$HTML_VALIDATION_RESULTS" | grep -c "$WARNING_REGEX")
26+
27+
if [ "$ERROR_COUNT" -gt 0 ]; then
7028
GL_VALID=0
71-
echo ""
72-
echo "******************************"
73-
echo "JUNIT Test Result XML is invalid"
74-
echo "Please see results:"
75-
echo "$JUNIT_RESULT"
76-
fi
29+
echo ""
30+
echo "******************************"
31+
echo "HTML File is invalid"
32+
echo "There are $ERROR_COUNT errors, $WARNING_COUNT warning in $HTML_FILENAME"
33+
echo "Please see results:"
34+
echo "$HTML_VALIDATION_RESULTS" | grep "$ERROR_REGEX"
35+
fi
36+
}
37+
38+
function ValidateXML() {
39+
echo "Validate File $1 against schema $2"
40+
VALIDATION_RESULT=$(java -jar $XML_VALIDATOR -s $1 $2 2>&1)
41+
42+
if [ $? -ne 0 ]; then
43+
GL_VALID=0
44+
echo ""
45+
echo "******************************"
46+
echo "XML is invalid"
47+
echo "Please see results:"
48+
echo "$VALIDATION_RESULT"
49+
fi
50+
}
51+
52+
ValidateHtml "$HTML_FILENAME"
53+
54+
for XMLFILE in "${!XML_FILES[@]}"; do
55+
#echo "$XMLFILE" "${XML_FILES[$XMLFILE]}";
56+
ValidateXML "$XMLFILE" "XSD_DIR/${XML_FILES[$XMLFILE]}"
57+
done
7758

7859
if [ $GL_VALID -ne 1 ]; then
7960
echo ""
8061
echo "******************************"
8162
echo "Validation failed please see results above."
8263
exit 1
8364
else
84-
echo ""
85-
echo "******************************"
86-
echo "Validation passed. Good Job!"
65+
exit 0
8766
fi

0 commit comments

Comments
 (0)