Skip to content

Latest commit

 

History

History
114 lines (62 loc) · 4.72 KB

README.md

File metadata and controls

114 lines (62 loc) · 4.72 KB

Commandbox Tests

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.

Single Site

Test Files

This basic tests, hits all the core features of CommandBox servers across Lucee, Adobe, and production vs development profiles.

Custom SSL Cert

Test Files

This tests the basic legacy behavior of starting a single site server with a custom SSL cert configured

Basic Auth

Test Files

Test the basic legacy behavior of starting a single site server with basic auth and an auth predicate configured.

Client Cert Auth

Test Files

Test the basic legacy behavior of starting a single site server with client cert auth and an auth predicate configured.

Case Sensitivity

Test Files

Test the forced case sensitivity or forced case INsensitivity of the web server.

ModCFML

Test Files

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.

Multi Site Basic

Test Files

This test hits all the basic multi-site features of CommandBox by configuring multuple websites, each with different bindings and settings.

Multi Site with .site.json files found by web root convention

Test Files

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.

Multi Site with explicit siteConfigFile

Test Files

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.

Multi Site with siteConfigFiles file glob pattern

Test Files

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.

Multi Site with default site

Test Files

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.

Multi Site with bindings

Test Files

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.

Multi Site with Wildcard bindings

Test Files

Test all the possible ways hostnames can be bound, including exact match, starts-with wildcard, ends-with wildcard, and regex matching of host name.

SSL SNI

Test Files

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.

Tuckey Legacy

Test Files

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.