diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt index abc669e233..2809669283 100644 --- a/Ladybird/CMakeLists.txt +++ b/Ladybird/CMakeLists.txt @@ -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() diff --git a/Tests/LibWeb/Text/expected/basic.txt b/Tests/LibWeb/Text/expected/basic.txt new file mode 100644 index 0000000000..15fe1aea8e --- /dev/null +++ b/Tests/LibWeb/Text/expected/basic.txt @@ -0,0 +1,2 @@ +Well hello +friends! diff --git a/Tests/LibWeb/Text/input/basic.html b/Tests/LibWeb/Text/input/basic.html new file mode 100644 index 0000000000..5b2bc34098 --- /dev/null +++ b/Tests/LibWeb/Text/input/basic.html @@ -0,0 +1,9 @@ +
diff --git a/Tests/LibWeb/Text/text_test.sh b/Tests/LibWeb/Text/text_test.sh new file mode 100755 index 0000000000..5a661bf036 --- /dev/null +++ b/Tests/LibWeb/Text/text_test.sh @@ -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