Skip to content

Contact Form 7 Testing


CheckView officially supports automated testing of Contact Form 7 forms. Contact Form 7 appears as a form plugin when you create a test flow, and CheckView builds the test steps for you, no manual step configuration required. Contact Form 7 does not save submissions on its own, so CheckView captures each test submission itself to verify it, and separately confirms the notification email arrived.

Requirements

  • The CheckView helper plugin, kept up to date. Contact Form 7 has been supported since the helper plugin’s first release. See Installing and Updating the CheckView Helper Plugin.
  • CheckView helper plugin 2.0.33 or newer for two additions: validating file upload fields, and integration suppression.
  • No storage add-on is needed. CheckView does not rely on Flamingo or any other entry-saving plugin to validate a Contact Form 7 submission.

What CheckView does on a Contact Form 7 test

  • Automatic test generation. CheckView detects your Contact Form 7 forms, finds the pages they appear on, and generates the test steps automatically. Forms embedded with Contact Form 7’s shortcode are detected, including a shortcode inside a reusable block.
  • Email suppression. Mail sent by the form is redirected to the CheckView test inbox during a test run, so your real recipients never receive test submissions. This applies to Mail (2), the optional autoresponder, as well as the main mail. CC and BCC recipients are stripped.
  • Email delivery check. CheckView confirms the test email actually arrived in its inbox, not just that the form reported success.
  • Anti-spam and CAPTCHA handling. Contact Form 7’s own spam check is skipped for CheckView test sessions only, which covers its reCAPTCHA v3 and Akismet integrations and the Disallowed Comment Keys list. CheckView also gets test submissions past CleanTalk, hCaptcha for WordPress, Simple Cloudflare Turnstile and WP Armour. Honeypot fields added by Contact Form 7 honeypot add-ons are left empty, which is what a real visitor’s browser does. See Automatic Disabling of Anti-Spam and CAPTCHA Plugins.
  • Integration suppression. When Disable Form Integrations During Tests is on, CheckView removes third-party add-ons from the point where Contact Form 7 prepares its email, so Mailchimp, webhook, CRM and similar add-ons that run there do not fire for test submissions. Contact Form 7’s own code is left in place. See Disable Form Integrations During Tests.
  • Database submission validation. Because Contact Form 7 keeps no entries, CheckView records the submitted values in its own tables once Contact Form 7 has accepted the submission, verifies them against the values the bot entered, and then removes them. See Database Test Submission Validation.
  • Storage add-ons kept clean. If Flamingo is installed, test submissions are not saved to it. If Contact Form 7 Database Addon (CFDB7) is installed, the entry it saves for a test submission is deleted straight away.
  • Piped options. Drop-down menus that use Contact Form 7 pipes (a visible label with a different value behind it) are validated against the option the bot actually chose.
  • File uploads. File fields are uploaded and checked in the stored submission, so a broken upload fails the test rather than passing silently. See Testing Forms with File Uploads.
  • Date fields. Contact Form 7 date fields are native browser date inputs. CheckView fills them with a date inside the range the field allows, so restrictions such as future only, past only, or a fixed window keep passing as the calendar moves on. See Date Pickers.
  • Multi-step forms. Forms built with the Contact Form 7 Multi-Step Forms add-on, which moves between separate pages, are navigated automatically, and the test keeps its identity across each page. See Multi-Page Forms.

Creating a Contact Form 7 test flow

Contact Form 7 works the same as any other supported form plugin. From your website dashboard, click Add Test Flow, choose Contact Form 7, select your form and URL, set a schedule, and CheckView builds the steps. Full walkthrough: Creating a Form Test Flow.

Things to know

Tests submit without Contact Form 7’s JavaScript

During a test, CheckView switches off Contact Form 7’s front-end script for the test browser only. The form is then submitted the way Contact Form 7 handles it without JavaScript: a full page submission rather than the in-page submission real visitors get. Contact Form 7 runs the same validation, spam checks and mail on both paths, so everything behind the form is tested. A JavaScript conflict that only breaks the in-page submission for real visitors may not show up in a test.

Forms that are not found on a page

CheckView finds a form’s pages by looking for Contact Form 7’s shortcode, in the form Contact Form 7 generates today ([contact-form-7 id="1a2b3c4"]), in your page content. A form added with the block editor’s Contact Form 7 block, placed through a page builder widget, or embedded with an older shortcode that uses the form’s numeric ID is not listed against its page. Add the page with a custom URL instead: see No URLs Detected When Creating a Test Flow.

Multi-step Next buttons

The Contact Form 7 Multi-Step Forms add-on’s Next button is recognized by its default “Next” label. If you have renamed it, automatic generation may not step through the form, and the steps can be set up manually as described in Multi-Page Forms.

Integrations CheckView cannot detect

Integration suppression covers add-ons that attach as Contact Form 7 prepares its email. An add-on that runs after the email has been sent, connects somewhere else in the submission, or registers itself anonymously may still run during a test. If you need to be certain a sensitive integration never fires, test against a staging environment.

Contact Form 7 is one of the form plugins covered by automated WordPress form testing.