|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
3 | 3 | GL_VALID=1 |
4 | | - |
5 | | -HTML_FILENAME="coverage.html" |
6 | | -JUNIT_FILENAME="junit_test_results.xml" |
7 | | -TFS_FILENAME="tfs_test_results.xml" |
8 | 4 | XSD_DIR="$TRAVIS_BUILD_DIR/.travis/xsd" |
9 | 5 | 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 | | - |
23 | 6 | #XML Validator |
24 | 7 | XML_VALIDATOR="$XML_JAR_DIR/xml_validator.jar" |
| 8 | +HTML_VALIDATOR_URL="https://validator.w3.org/nu/" |
25 | 9 |
|
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 |
70 | 28 | 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 |
77 | 58 |
|
78 | 59 | if [ $GL_VALID -ne 1 ]; then |
79 | 60 | echo "" |
80 | 61 | echo "******************************" |
81 | 62 | echo "Validation failed please see results above." |
82 | 63 | exit 1 |
83 | 64 | else |
84 | | - echo "" |
85 | | - echo "******************************" |
86 | | - echo "Validation passed. Good Job!" |
| 65 | + exit 0 |
87 | 66 | fi |
0 commit comments