mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-01-19 00:07:17 +01:00
test all pages load correctly (#2699)
# Description Please provide a summary of the changes, including relevant motivation and context. Closes #(issue_number) ## Checklist - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have performed a self-review of my own code - [ ] I have attached images of the change if it is UI based - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] If my code has heavily changed functionality I have updated relevant docs on [Stirling-PDFs doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) - [ ] My changes generate no new warnings - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only)
This commit is contained in:
parent
1b26fa40f2
commit
3e216872ce
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@ -109,5 +109,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Run Docker Compose Tests
|
- name: Run Docker Compose Tests
|
||||||
run: |
|
run: |
|
||||||
|
chmod +x ./cucumber/test_webpages.sh
|
||||||
chmod +x ./test.sh
|
chmod +x ./test.sh
|
||||||
./test.sh
|
./test.sh
|
||||||
|
97
cucumber/test_webpages.sh
Normal file
97
cucumber/test_webpages.sh
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to check a single webpage
|
||||||
|
check_webpage() {
|
||||||
|
local url=$1
|
||||||
|
local base_url=${2:-"http://localhost:8080"}
|
||||||
|
local full_url="${base_url}${url}"
|
||||||
|
local timeout=10
|
||||||
|
|
||||||
|
echo -n "Testing $full_url ... "
|
||||||
|
|
||||||
|
# Use curl to fetch the page with timeout
|
||||||
|
response=$(curl -s -w "\n%{http_code}" --max-time $timeout "$full_url")
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "FAILED - Connection error or timeout"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Split response into body and status code
|
||||||
|
HTTP_STATUS=$(echo "$response" | tail -n1)
|
||||||
|
BODY=$(echo "$response" | sed '$d')
|
||||||
|
|
||||||
|
# Check HTTP status
|
||||||
|
if [ "$HTTP_STATUS" != "200" ]; then
|
||||||
|
echo "FAILED - HTTP Status: $HTTP_STATUS"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if response contains HTML
|
||||||
|
if ! echo "$BODY" | grep -q "<!DOCTYPE html>\|<html"; then
|
||||||
|
echo "FAILED - Response is not HTML"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "OK"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main function to test all URLs from the list
|
||||||
|
test_all_urls() {
|
||||||
|
local url_file=$1
|
||||||
|
local base_url=${2:-"http://localhost:8080"}
|
||||||
|
local failed_count=0
|
||||||
|
local total_count=0
|
||||||
|
local start_time=$(date +%s)
|
||||||
|
|
||||||
|
echo "Starting webpage tests..."
|
||||||
|
echo "Base URL: $base_url"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
|
||||||
|
while IFS= read -r url || [ -n "$url" ]; do
|
||||||
|
# Skip empty lines
|
||||||
|
[ -z "$url" ] && continue
|
||||||
|
|
||||||
|
((total_count++))
|
||||||
|
if ! check_webpage "$url" "$base_url"; then
|
||||||
|
((failed_count++))
|
||||||
|
fi
|
||||||
|
done < "$url_file"
|
||||||
|
|
||||||
|
local end_time=$(date +%s)
|
||||||
|
local duration=$((end_time - start_time))
|
||||||
|
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "Test Summary:"
|
||||||
|
echo "Total tests: $total_count"
|
||||||
|
echo "Failed tests: $failed_count"
|
||||||
|
echo "Passed tests: $((total_count - failed_count))"
|
||||||
|
echo "Duration: ${duration} seconds"
|
||||||
|
|
||||||
|
return $failed_count
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main execution
|
||||||
|
main() {
|
||||||
|
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
local url_file="${script_dir}/webpage_urls.txt"
|
||||||
|
|
||||||
|
if [ ! -f "$url_file" ]; then
|
||||||
|
echo "Error: URL list file not found: $url_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run tests using the URL list
|
||||||
|
if test_all_urls "$url_file"; then
|
||||||
|
echo "All webpage tests passed!"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "Some webpage tests failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run main if script is executed directly
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||||
|
main "$@"
|
||||||
|
fi
|
54
cucumber/webpage_urls.txt
Normal file
54
cucumber/webpage_urls.txt
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
/
|
||||||
|
/multi-tool
|
||||||
|
/merge-pdfs
|
||||||
|
/split-pdfs
|
||||||
|
/rotate-pdf
|
||||||
|
/remove-pages
|
||||||
|
/pdf-organizer
|
||||||
|
/multi-page-layout
|
||||||
|
/scale-pages
|
||||||
|
/crop
|
||||||
|
/extract-page
|
||||||
|
/pdf-to-single-page
|
||||||
|
/img-to-pdf
|
||||||
|
/markdown-to-pdf
|
||||||
|
/pdf-to-img
|
||||||
|
/pdf-to-text
|
||||||
|
/pdf-to-csv
|
||||||
|
/sign
|
||||||
|
/add-password
|
||||||
|
/remove-password
|
||||||
|
/change-permissions
|
||||||
|
/add-watermark
|
||||||
|
/cert-sign
|
||||||
|
/validate-signature
|
||||||
|
/remove-cert-sign
|
||||||
|
/sanitize-pdf
|
||||||
|
/auto-redact
|
||||||
|
/redact
|
||||||
|
/stamp
|
||||||
|
/view-pdf
|
||||||
|
/add-page-numbers
|
||||||
|
/add-image
|
||||||
|
/extract-images
|
||||||
|
/flatten
|
||||||
|
/remove-annotations
|
||||||
|
/remove-blanks
|
||||||
|
/compare
|
||||||
|
/change-metadata
|
||||||
|
/get-info-on-pdf
|
||||||
|
/remove-image-pdf
|
||||||
|
/replace-and-invert-color-pdf
|
||||||
|
/pipeline
|
||||||
|
/auto-rename
|
||||||
|
/adjust-contrast
|
||||||
|
/overlay-pdf
|
||||||
|
/auto-split-pdf
|
||||||
|
/split-pdf-by-sections
|
||||||
|
/split-pdf-by-chapters
|
||||||
|
/split-by-size-or-count
|
||||||
|
/show-javascript
|
||||||
|
/swagger-ui/index.html
|
||||||
|
/licenses
|
||||||
|
/releases
|
@ -182,7 +182,6 @@ public class EndpointConfiguration {
|
|||||||
addEndpointToGroup("Python", "extract-image-scans");
|
addEndpointToGroup("Python", "extract-image-scans");
|
||||||
addEndpointToGroup("Python", "html-to-pdf");
|
addEndpointToGroup("Python", "html-to-pdf");
|
||||||
addEndpointToGroup("Python", "url-to-pdf");
|
addEndpointToGroup("Python", "url-to-pdf");
|
||||||
addEndpointToGroup("Python", "pdf-to-img");
|
|
||||||
addEndpointToGroup("Python", "file-to-pdf");
|
addEndpointToGroup("Python", "file-to-pdf");
|
||||||
|
|
||||||
// openCV
|
// openCV
|
||||||
|
9
test.sh
9
test.sh
@ -78,6 +78,15 @@ main() {
|
|||||||
|
|
||||||
# Test each configuration
|
# Test each configuration
|
||||||
run_tests "Stirling-PDF-Ultra-Lite" "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml"
|
run_tests "Stirling-PDF-Ultra-Lite" "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml"
|
||||||
|
|
||||||
|
echo "Testing webpage accessibility..."
|
||||||
|
if ./cucumber/test_webpages.sh; then
|
||||||
|
passed_tests+=("Webpage-Accessibility")
|
||||||
|
else
|
||||||
|
failed_tests+=("Webpage-Accessibility")
|
||||||
|
echo "Webpage accessibility tests failed"
|
||||||
|
fi
|
||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml" down
|
docker-compose -f "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml" down
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user