Extension:Email notification/test cases

Introduction
Below are test cases for the Email Notification feature. Test cases beginning with "Try to" refer to negative test cases, i.e. actions that should fail. Failures should be graceful, i.e. nothing should crash, normal actions should continue to work, and error messages should be decipherable by non-programmers.

Test cases in parentheses are stubs that need to be fleshed out.

This is a very rough draft.

PHP.ini
(Say something about what happens if PHP.ini isn't configured for SMTP)

LocalProperties.php
wgPasswordSender

wgEmailNotificationMailsSentFromPageEditor

wgEmailNotificationForWatchlistPages

wgEmailNotificationForUserTalkPages

wgEmailNotificationRevealPageEditorAddress

wgEmailNotificationForMinorEdits

wgRCUseModStyle

wgRCShowWatchingUsers

wgPageShowWatchingUsers

wgShowUpdatedMarker

Variables
$WATCHINGUSERNAME

$WATCHINGUSERNAME_QP (QP = "quoted-printable", only for use in mail headers)

$WATCHINGUSEREMAILADDR

$PAGETITLE

$PAGETITLE_QP (QP = "quoted-printable", only for use in mail headers)

$PAGEEDITORNAMEANDEMAILADDR

$PAGEEDITORNAMEANDEMAILADDR_QP (QP = "quoted-printable", only for use in mail headers)

$PAGEEDITOR

$PAGEEDITOR_QP (QP = "quoted-printable", only for use in mail headers)

$PAGEEDITDATE (expresses the page edit date/time in the watching user's local time)

$PAGEEDITDATEUTC

$OLDID (id of the last-visited revision of page $PAGETITLE)

$PAGEMINOREDIT

$PAGESUMMARY

$WIKIADMINEMAILADDR

Templates
email_notification_to

email_notification_subject

email_notification_headers

email_notification_body

Managing User Preferences
(What happens if the user provides a malformed email address?)

(What happens if the user provides a well-formed but invalid email address?)

Watch Lists
(Adding a page to the watch list)

(Removing a page from the watch list)

(Viewing the watch list)

General
Your own changes never trigger a notification to yourself.

Once you have received an email notification for a page, you will not receive subsequent email notifications for the same page until you have visited the page.

Page Changes
The "Send me an email on page changes" user preference controls whether page changes trigger notification emails.

This setting works for pages that have been referenced but which do not yet exist.

User Talk Page Changes
The "Send me an email when my user talk page is changed" user preference controls whether user talk page changes trigger notification emails.

Minor Edits
The "Send me an email also for minor edits of pages" user preference controls whether minor edits in content pages and user talk pages trigger notification emails.

The "Send me an email also for minor edits of pages" user preference works in conjunction with the "Send me an email on page changes" and "Send me an email when my user talk page is changed" user preferences.

Exposed Email Address
The "Reveal my email address in notification mails" user preference controls whether your emaio address is exposed in notification emails.

Real Name vs. Username
If your real name is specified in your user preferences, it will appear in (which variable?) in notification emails about changes that you made.

If your real name is unspecified in your user preferences, your username substituted for your real name in (which variable?) in notification emails about changes that you made.

Beamy New Marker
A beamy new marker  updated (since my last visit)  indicates new contents on watch-listed pages since the last visit (of user X). The "updated" marker can be seen on a) the watchlist page, on b) the recent changes page close to the bold-titled page names of pages being watched, and on c) the page history showing all revisions of a page.

Your own changes never trigger notification mails or "updated" markers for you (you are only notified about someone else's changes).

Notification Flag Reset
If you press the notification flag reset button in your watchlist page, changes by others to pages on your watchlist will trigger email notifications.

Watcher Count
Recent changes view and page(article) footers show number of watching users.

Adding a watcher to a page will increase the watcher count in the page footer.

Removing a watcher from a page will decrease the watcher count in the page footer.

Other Error Conditions
(What happens if the wiki engine can't contact the SMTP server?)

If one of the watchers has a bad email address, is the notification still sent to the remaining watchers?

What if there are hundreds of watchers?