Ladybird+Tests/LibWeb: Add very basic text-only test harness

This allows us to create "text tests" in addition to "layout tests".
Text tests work the same as layout tests, but dump the document content
as text and exit upon receiving the window "load" event.
This commit is contained in:
Andreas Kling 2023-05-25 19:43:37 +02:00
parent 3389eed59c
commit edbc732785
Notes: sideshowbarker 2024-07-17 07:20:57 +09:00
4 changed files with 45 additions and 0 deletions

View File

@ -170,4 +170,10 @@ if (BUILD_TESTING)
COMMAND ${SERENITY_SOURCE_DIR}/Tests/LibWeb/Layout/layout_test.sh ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(Layout PROPERTIES ENVIRONMENT QT_QPA_PLATFORM=offscreen)
add_test(
NAME LibWebText
COMMAND ${SERENITY_SOURCE_DIR}/Tests/LibWeb/Text/text_test.sh ${CMAKE_CURRENT_BINARY_DIR}
)
set_tests_properties(LibWebText PROPERTIES ENVIRONMENT QT_QPA_PLATFORM=offscreen)
endif()

View File

@ -0,0 +1,2 @@
Well hello
friends!

View File

@ -0,0 +1,9 @@
<div id="out"></div><script>
function println(s) {
const out = document.getElementById("out");
out.appendChild(document.createTextNode(s + "\n"))
}
println("Well hello")
println("friends!")
</script>

28
Tests/LibWeb/Text/text_test.sh Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -eo pipefail
SCRIPT_DIR="$(cd -P -- "$(dirname -- "${0}")" && pwd -P)"
LADYBIRD_BUILD_DIR="${1}"
if [[ -z "${LADYBIRD_BUILD_DIR}" ]] ; then
echo "Provide path to the Ladybird build directory"
exit 1
fi
BROWSER_BINARY="./headless-browser"
find "${SCRIPT_DIR}/input/" -type f -name "*.html" -print0 | while IFS= read -r -d '' input_html_path; do
input_html_file=${input_html_path/${SCRIPT_DIR}"/input/"/}
input_html_file=${input_html_file/".html"/}
output_text_dump=$(cd "${LADYBIRD_BUILD_DIR}"; timeout 300s "${BROWSER_BINARY}" --dump-text "${input_html_path}")
expected_text_dump_path="${SCRIPT_DIR}/expected/${input_html_file}.txt"
if cmp <(echo "${output_text_dump}") "${expected_text_dump_path}"; then
echo "${input_html_file} PASSED"
else
echo "${input_html_file} FAILED"
diff -u "${expected_text_dump_path}" <(echo "${output_text_dump}")
fi
done