silverstripe-frameworktest/README.md
2021-05-10 13:19:27 +12:00

79 lines
3.1 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.
## Configuring the amount of data
Both `FTPageMagerTask` and `FTFileMakerTask` allow the amount of generated content to be configured.
To do this, pass a comma-seprarated list of integers representing the amount of records to create at each
depth.
`$ vendor/bin/sake dev/tasks/FTPageMakerTask pageCounts=10,200,5,5`
`$ vendor/bin/sake dev/tasks/FTFileMakerTask fileCounts=5,300,55,5 folderCounts=1,5,5,5`
## Guaranteed unique images
The `FTFileMakerTask` will randomly watermark each reference to your images by default. If you want to disable this,
set the `uniqueImages` config variable to `false`.
## 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