upskill-event-manager/wordpress-dev/bin/check-urls.sh

104 lines
No EOL
2.9 KiB
Bash
Executable file

#!/bin/bash
# Define colors for output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# Base URL of the staging server
BASE_URL="https://wordpress-974670-5399585.cloudwaysapps.com"
# Login credentials (used for manual testing only)
echo "${YELLOW}Login Credentials for Manual Testing${NC}"
echo "Username: test_trainer"
echo "Password: Test123!"
echo ""
# Array of URLs to test
declare -a URLS=(
"/"
"/community-login/"
"/hvac-dashboard/"
"/trainer-profile/"
"/event-summary/"
"/manage-event/"
"/email-attendees/"
"/certificate-reports/"
"/generate-certificates/"
)
# Array of expected redirects (if not logged in)
declare -a REDIRECTS=(
""
""
"/community-login/"
"/community-login/"
"/community-login/"
"/community-login/"
"/community-login/"
"/community-login/"
"/community-login/"
)
echo "${YELLOW}Checking URLs on $BASE_URL...${NC}"
echo ""
# Loop through the URLs and check HTTP status
for i in "${!URLS[@]}"; do
URL="${BASE_URL}${URLS[$i]}"
EXPECTED_REDIRECT="${REDIRECTS[$i]}"
echo "Testing: ${URL}"
# Get the HTTP status code
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
# Get the final URL after redirects
FINAL_URL=$(curl -s -o /dev/null -L -w "%{url_effective}" "$URL")
# Display results
echo " Status Code: $HTTP_STATUS"
echo " Final URL: $FINAL_URL"
# Check if the status is 500 (to identify our error)
if [ "$HTTP_STATUS" -eq 500 ]; then
echo " ${RED}Error: Server error (500)${NC}"
# Check for 404 errors
elif [ "$HTTP_STATUS" -eq 404 ]; then
echo " ${RED}Error: Page not found (404)${NC}"
# Check if the status is 200 or a redirect (3xx)
elif [ "$HTTP_STATUS" -eq 200 ] || [ "$HTTP_STATUS" -ge 300 ] && [ "$HTTP_STATUS" -lt 400 ]; then
# If we have an expected redirect, check it
if [ -n "$EXPECTED_REDIRECT" ]; then
if [[ "$FINAL_URL" == *"$EXPECTED_REDIRECT"* ]]; then
echo " ${GREEN}Success: Redirected as expected${NC}"
else
echo " ${YELLOW}Warning: Redirected, but not to expected location${NC}"
echo " Expected: *${EXPECTED_REDIRECT}*"
fi
else
echo " ${GREEN}Success: Page loaded successfully${NC}"
fi
else
echo " ${RED}Error: Unexpected HTTP status${NC}"
fi
echo ""
done
echo "${YELLOW}Test completed. Please also test with actual login to verify page functionality.${NC}"
echo ""
echo "To test logged-in functionality:"
echo "1. Go to $BASE_URL/community-login/"
echo "2. Enter the test credentials"
echo "3. After login, check each page manually:"
for URL in "${URLS[@]}"; do
if [ "$URL" != "/" ] && [ "$URL" != "/community-login/" ]; then
echo " - $BASE_URL$URL"
fi
done
# Make script executable
chmod +x "$0"