silverstripe-frameworktest/README.md
2020-11-03 18:06:45 +13:00

64 lines
2.5 KiB
Markdown

# Framework Test Module
## Introduction
Aids core and module developers in testing their code against
a set of sample data and behaviour.
* Shows all core form fields, including their disabled and readonly state
* Shows sample GridField instance including data
* Creates sample members (to efficiently test SecurityAdmin)
* Creates a sample ModelAdmin instance (available at `admin/test`)
* (Optional) Three-step process for the [multiform](http://www.silverstripe.org/multi-form-module/) module
* (Optional) Sample page for the [tagfield](http://www.silverstripe.org/tag-field-module/) module
* (Optional) Sample page for the [recaptcha](http://www.silverstripe.org/recaptcha-module/) module
## Usage
Simply running `dev/build` will take care of most sample data setup.
In order to use any of the optional test behaviour targeted at modules,
install the module and remove the `_manifest_exclude` file from the relevant folder.
For example, to test the tagfield module, remove the `frameworktest/code/tagfield/_manifest_exclude` file.
## More sample data
The module creates some default pages for different CMS behaviours.
The CMS is intended to be perform well with a couple of thousand pages.
If you want to test the CMS behaviour for a large and nested tree,
the module includes a simple generator task: `dev/tasks/FTPageMakerTask`.
It will create 3^5 pages by default, so takes a while to run through.
## Blocks
When [dnadesign/silverstripe-elemental](https://github.com/dnadesign/silverstripe-elemental)
is installed, the `FTPageMakerTask` can also generate blocks within those pages automatically.
It has a few hardcoded sample data structures for common block types,
and randomly creates a number of blocks, as well as randomly choosing to publish them.
Relies on files and images being available to add as sample data.
Additional setup:
```
composer require dnadesign/silverstripe-elemental
composer require silverstripe/elemental-bannerblock
composer require silverstripe/elemental-fileblock
```
Usage:
```
# Generate some sample files to associate with blocks
sake dev/tasks/FTFileMakerTask
sake dev/tasks/FTPageMakerTask withBlocks=true
```
## Requirements
The module is intended to run against the latest core codebase,
but also includes branches matching earlier core releases for backwards compatibility.
## Related
* [zframeworktest_dbswitcher](https://github.com/silverstripe-labs/zframeworktest_dbswitcher) module - adds capabilities to switch the database by a query parameter for testing purposes