2022-02-09 16:15:26 -08:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
## Runs automated tests
|
|
|
|
##
|
|
|
|
## Usage: __PROG__ [options]
|
|
|
|
##
|
|
|
|
prog="$0"
|
|
|
|
me=`basename "$prog"`
|
2022-02-15 12:53:26 -08:00
|
|
|
unit=$(realpath $(dirname "$0")/../generate_website.sh)
|
2022-02-16 14:12:26 -08:00
|
|
|
fixture_dir=$(realpath $(dirname "$0")/fixtures)
|
2022-02-09 16:15:26 -08:00
|
|
|
|
2022-02-15 12:53:26 -08:00
|
|
|
test_timestamp_from_filename() {
|
|
|
|
source $unit
|
|
|
|
assertEquals "1644452667" "$(timestamp_from_filename foo-1644452667-bar.baz)"
|
2022-02-09 16:15:26 -08:00
|
|
|
}
|
|
|
|
|
2022-02-15 12:53:26 -08:00
|
|
|
test_render_pass_audio() {
|
|
|
|
WXRX_WEB_DIR=${SHUNIT_TMPDIR}
|
|
|
|
mkdir -p ${WXRX_WEB_DIR}/templates
|
|
|
|
mkdir -p ${WXRX_WEB_DIR}/public
|
|
|
|
echo << EOF > ${WXRX_WEB_DIR}/templates/pass-audio.template
|
|
|
|
<audio>
|
|
|
|
{{WAV_FILE}}
|
|
|
|
</audio>
|
|
|
|
EOF
|
2022-02-09 16:15:26 -08:00
|
|
|
}
|
|
|
|
|
2022-02-16 14:12:26 -08:00
|
|
|
test_render_page() {
|
2022-02-17 14:06:06 -08:00
|
|
|
stdoutF=${SHUNIT_TMPDIR}/stdout
|
2022-02-16 14:12:26 -08:00
|
|
|
stderrF=${SHUNIT_TMPDIR}/stderr
|
2022-02-17 14:06:06 -08:00
|
|
|
WXRX_WEB_TEMPLATES=${fixture_dir}/test_generate_website/templates
|
2022-02-16 14:12:26 -08:00
|
|
|
source ${unit}
|
|
|
|
|
|
|
|
render_page noaa_15-1643805264.wav noaa_15-1643805264-therm.png noaa_15-1643805264-MCIR.png >${stdoutF} 2>${stderrF}
|
|
|
|
rtrn=$?
|
|
|
|
assertTrue "expected 0 return status" ${rtrn}
|
|
|
|
assertNotNull "expected output to stdout" "`cat ${stdoutF}`"
|
|
|
|
assertNull 'unexpected message to stderr' "`cat ${stderrF}`"
|
|
|
|
|
|
|
|
assertNotNull 'expected wavfile in markup' "`grep 'noaa_15-1643805264.wav' ${stdoutF}`"
|
2022-02-17 10:05:26 -08:00
|
|
|
assertNotNull 'expected thermal image' "`grep 'noaa_15-1643805264-therm.png' ${stdoutF}`"
|
|
|
|
assertNotNull 'expected MCIR image' "`grep 'noaa_15-1643805264-MCIR.png' ${stdoutF}`"
|
|
|
|
assertNotNull 'expected title text' "`grep -F 'Wed Feb 02 07:34:24 EST 2022' ${stdoutF}`"
|
|
|
|
assertNotNull 'expected a description' "`grep -F 'NOAA-15 therm recorded' ${stdoutF}`"
|
2022-02-16 14:12:26 -08:00
|
|
|
}
|
|
|
|
|
2022-02-17 14:06:06 -08:00
|
|
|
test_find_manifest_files() {
|
|
|
|
stdoutF=${SHUNIT_TMPDIR}/stdout
|
|
|
|
stderrF=${SHUNIT_TMPDIR}/stderr
|
|
|
|
expectedF=${SHUNIT_TMPDIR}/expected
|
|
|
|
pushd ${fixture_dir}/test_generate_website >/dev/null
|
|
|
|
source ${unit}
|
|
|
|
find_manifest_files >${stdoutF} 2>${stderrF}
|
|
|
|
rtrn=$?
|
|
|
|
assertTrue "expected 0 return status" ${rtrn}
|
|
|
|
assertNotNull "expected output to stdout" "`cat ${stdoutF}`"
|
|
|
|
assertNull "unexpected output to stderr" "`cat ${stderrF}`"
|
|
|
|
cat << EOF >${expectedF}
|
|
|
|
bar-passes/noaa_15-1643805264-manifest.txt
|
|
|
|
foo-passes/noaa_15-1643805264-manifest.txt
|
|
|
|
noaa_15-1643805264-manifest.txt
|
|
|
|
EOF
|
|
|
|
assertNull "diff found in output" "`diff \"${expectedF}\" \"${stdoutF}\"`"
|
|
|
|
popd >/dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
# Using a fixture directory with a manifest, subdirs (also containing manifests)
|
|
|
|
# generate_website should mirror the directory structure and generate HTML for
|
|
|
|
# each manifest
|
|
|
|
test_generate_pages() {
|
|
|
|
stdoutF=${SHUNIT_TMPDIR}/stdout
|
|
|
|
stderrF=${SHUNIT_TMPDIR}/stderr
|
2022-02-18 11:20:26 -08:00
|
|
|
expectedF=${SHUNIT_TMPDIR}/expected
|
2022-02-17 14:06:06 -08:00
|
|
|
WXRX_WEB_PUBDIR=${SHUNIT_TMPDIR}/test_generate_website/public
|
|
|
|
WXRX_WEB_TEMPLATES=${fixture_dir}/test_generate_website/templates
|
|
|
|
data_dir=${fixture_dir}/test_generate_website
|
|
|
|
source ${unit}
|
2022-02-09 16:15:26 -08:00
|
|
|
|
2022-02-17 14:06:06 -08:00
|
|
|
pushd ${data_dir} >/dev/null
|
|
|
|
generate_pages >${stdoutF} 2>${stderrF}
|
|
|
|
rtrn=$?
|
|
|
|
assertTrue "expected 0 return status" ${rtrn}
|
|
|
|
assertNull "unexpected output to stderr" "`cat ${stderrF}`"
|
|
|
|
assertTrue "expected html file" "[ -f ${WXRX_WEB_PUBDIR}/noaa_15-1643805264.html ]"
|
|
|
|
assertTrue "expected directory foo-passes" "[ -f ${WXRX_WEB_PUBDIR}/foo-passes/noaa_15-1643805264.html ]"
|
|
|
|
assertTrue "expected directory bar-passes" "[ -f ${WXRX_WEB_PUBDIR}/bar-passes/noaa_15-1643805264.html ]"
|
|
|
|
cat << EOF >${expectedF}
|
|
|
|
1643805264 bar-passes/noaa_15-1643805264.html bar-passes/noaa_15-1643805264-MCIR.png
|
|
|
|
1643805264 foo-passes/noaa_15-1643805264.html foo-passes/noaa_15-1643805264-MCIR.png
|
|
|
|
1643805264 noaa_15-1643805264.html noaa_15-1643805264-MCIR.png
|
|
|
|
EOF
|
|
|
|
assertNull 'found diff in expected output' "`diff ${stdoutF} ${expectedF}`"
|
|
|
|
|
|
|
|
diff "${expectedF}" "${stdoutF}"
|
|
|
|
|
|
|
|
cat "${stderrF}"
|
|
|
|
popd >/dev/null
|
|
|
|
}
|
2022-02-09 16:15:26 -08:00
|
|
|
|
2022-02-18 11:20:26 -08:00
|
|
|
test_render_index() {
|
|
|
|
stdoutF=${SHUNIT_TMPDIR}/stdout
|
|
|
|
stderrF=${SHUNIT_TMPDIR}/stderr
|
|
|
|
expectedF=${SHUNIT_TMPDIR}/expected
|
|
|
|
WXRX_WEB_TEMPLATES=${fixture_dir}/test_generate_website/templates
|
|
|
|
source ${unit}
|
|
|
|
|
|
|
|
render_index "Expected Title" "Generated Timestamp" << EOF >${stdoutF} 2>${stderrF}
|
|
|
|
1643805264 bar-passes/noaa_15-1643805264.html bar-passes/noaa_15-1643805264-MCIR.png
|
|
|
|
1643805264 foo-passes/noaa_15-1643805264.html foo-passes/noaa_15-1643805264-MCIR.png
|
|
|
|
1643805264 noaa_15-1643805264.html noaa_15-1643805264-MCIR.png
|
|
|
|
EOF
|
|
|
|
|
|
|
|
rtrn=$?
|
|
|
|
assertTrue "expected 0 return status" ${rtrn}
|
|
|
|
assertNotNull "expected output" "`cat ${stdoutF}`"
|
|
|
|
assertNull "unexpected stderr" "`cat ${stderrF}`"
|
|
|
|
assertNotNull 'expected a title in output' "`grep -F 'Expected Title' ${stdoutF}`"
|
|
|
|
assertNotNull 'expected generated date in output' "`grep -F 'Generated Timestamp' ${stdoutF}`"
|
|
|
|
assertNotNull 'expected url' "`grep -F 'bar-passes/noaa_15-1643805264.html' ${stdoutF}`"
|
|
|
|
}
|
|
|
|
|
2022-02-09 16:15:26 -08:00
|
|
|
. shunit2
|