# Email Attendees Feature - Manual Test Plan This document outlines a manual testing plan for the Email Attendees functionality in the HVAC Community Events plugin. ## Prerequisites - A WordPress site with The Events Calendar and Event Tickets plugins installed and activated - The HVAC Community Events plugin installed and activated - A user with the `hvac_trainer` role - At least one event created by the trainer - At least one attendee registered for the event ## Test Scenarios ### 1. Navigation and Access Control | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 1.1 | As a logged-in trainer, navigate to Event Summary page of your event | Event Summary page loads with event details and Email Attendees button is visible | | | 1.2 | Click on Email Attendees button | Redirects to Email Attendees page with the same event ID | | | 1.3 | Try to access Email Attendees page directly when logged out | Redirects to login page | | | 1.4 | Try to access Email Attendees page for an event you don't own | Access denied message appears | | ### 2. UI Elements | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 2.1 | Load Email Attendees page for an event with attendees | Page shows event title, navigation buttons, email form, and list of attendees | | | 2.2 | Verify form elements | Subject field, CC field, rich text editor, and recipient list are present | | | 2.3 | Check navigation buttons | View Event Summary and Return to Dashboard buttons are functional | | | 2.4 | Verify attendee list | List shows attendee names, emails, and ticket types | | | 2.5 | Check for Select All functionality | Select All checkbox selects/deselects all attendees | | ### 3. Filtering | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 3.1 | With multiple ticket types, check if filter exists | Ticket type filter dropdown is visible with all ticket types | | | 3.2 | Select a specific ticket type | Page reloads with only attendees of that ticket type | | | 3.3 | Select "All Tickets" option | Page shows all attendees regardless of ticket type | | ### 4. Form Validation | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 4.1 | Submit form without subject | Error message indicates subject is required | | | 4.2 | Submit form without message | Error message indicates message is required | | | 4.3 | Submit form without selecting recipients | Error message indicates at least one recipient is required | | | 4.4 | Enter invalid email in CC field | Error message indicates invalid email format | | ### 5. Email Sending | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 5.1 | Fill all required fields and submit | Success message indicates email was sent | | | 5.2 | Check recipient receives email | Email is received with correct subject and content | | | 5.3 | Send email with CC | CC recipient also receives the email | | | 5.4 | Verify personalization | Email begins with attendee's name if available | | | 5.5 | Check email subject | Subject contains event title and custom subject text | | ### 6. Edge Cases | # | Test Case | Expected Result | Pass/Fail | |---|-----------|-----------------|-----------| | 6.1 | Access page for an event with no attendees | Message indicates no attendees available | | | 6.2 | Try to email non-existent event | Redirects to dashboard with error message | | | 6.3 | Test with a large number of attendees | List correctly paginates or scrolls, Select All works correctly | | | 6.4 | Test with special characters in email fields | Special characters are properly escaped | | ## Test Results **Tester:** ______________________ **Date:** ________________________ **Environment:** _________________ **Overall Result:** _______________ ## Notes - Record any bugs, issues, or unexpected behavior in this section - Include browser and device information for any UI or display issues - Document any performance concerns or usability issues ## Recommendations - Add any recommendations for future improvements or feature enhancements here