A repo of tests suites for CommandBox. The sites are already built out and are contained in subfolders. In most cases, you just need to cd
to a folder and run server start
. For any examples using AJP, you'll also need to run server run-script ajp-up
to startup the Apache AJP proxy in Docker and then run server run-script ajp-down
when finished to stop it. This assumes you have Docker installed.
These tests require the latest version of CommandBox 6.0 and assume you've installed the commandbox-hostupdater
to help create all the hosts
file entries while testing.
To run the automated test runner, you can cd
into a specific folder and run
task run tests/Runner
You will also need to run
install
in the root of the project to install TestBox.
To run all tests at once, go to the root of this project and run
task run TaskRunnerAll
Some of the SSL tests may not work the first time. They import the SSL cert so it's trusted, but Lucee (CommandBox) must be stopped and restarted after the first time for this to take affect.
This basic tests, hits all the core features of CommandBox servers across Lucee, Adobe, and production vs development profiles.
This tests the basic legacy behavior of starting a single site server with a custom SSL cert configured
Test the basic legacy behavior of starting a single site server with basic auth and an auth predicate configured.
Test the basic legacy behavior of starting a single site server with client cert auth and an auth predicate configured.
Test the forced case sensitivity or forced case INsensitivity of the web server.
Test ModCFML integration to have more than one web root inside a single CommandBox server. We're testing with Apache, but the CommandBox portions work the same whether you are using Nginx, Apache, or IIS.
This test hits all the basic multi-site features of CommandBox by configuring multuple websites, each with different bindings and settings.
This test hits all the same settings as Multi Site Basic
above, but instead of configuring everthing in a single server.json
file, it breaks the settings into .site.json
files in the web root of each site.
This test hits all the same settings as Multi Site with web root convention
above, but instead of finding the site JSON files by convention in the web root, it breaks the settings into JSON files stored in a directory outside the web roots in the web root of each site.
This test hits all the same settings as Multi Site with explicit siteConfigFile
above, but instead specifying each site JSON file explicitily, it uses a file globbing pattern to simply load all the JSON files in a directory.
Test the ability to set a default site in multi-site mode, as well as what happens when there is no matched binding with no default site set.
Test all the possible ways bindings can be set including the "legacy" syntax as well as the new bindings
key. Also test global bindings applying to all sites, as well as per-site bindings. Test HTTP, SSL, and AJP as well as having multiple ports listened to at the same time.
Test all the possible ways hostnames can be bound, including exact match, starts-with wildcard, ends-with wildcard, and regex matching of host name.
SNI (Server Name Indication) is the ability to have more than on SSL cert configured for a single SSL binding (IP/Port) and for the server to automatically select the correct SSL cert to use based on the incoming host header of the request. CommandBox will scan the subject common name as well as any Subject Alternative Names (SANs) and automatically register which hostnames each cert applies to. Wildcard certs are also handled.
Use Legacy Tuckey rewrites. This requires short-circuiting the new ResourceHandler and sending all static files to the servlet. It also means you don't get the new error pages.