mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-10-25 11:17:28 +02: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 | ||||
|         run: | | ||||
|           chmod +x ./cucumber/test_webpages.sh | ||||
|           chmod +x ./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", "html-to-pdf"); | ||||
|         addEndpointToGroup("Python", "url-to-pdf"); | ||||
|         addEndpointToGroup("Python", "pdf-to-img"); | ||||
|         addEndpointToGroup("Python", "file-to-pdf"); | ||||
| 
 | ||||
|         // openCV | ||||
|  | ||||
							
								
								
									
										9
									
								
								test.sh
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								test.sh
									
									
									
									
									
								
							| @ -78,6 +78,15 @@ main() { | ||||
| 	 | ||||
|     # Test each configuration | ||||
|     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 | ||||
| 	 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user