silverstripe / frameworktest
Aids core and module developers in testing their code against a set of sample data and behaviour.
Installs: 192 157
Dependents: 15
Suggesters: 0
Security: 0
Stars: 18
Watchers: 15
Forks: 13
Open Issues: 14
Type:silverstripe-vendormodule
Requires
- php: ^7.3 || ^8.0
- fzaninotto/faker: ^1.7
- guzzlehttp/guzzle: ^6.3 || ^7.3
- silverstripe/cms: ^4
- silverstripe/framework: ^4
- silverstripe/registry: ^2
- silverstripe/vendor-plugin: ^1
README
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 module
- (Optional) Sample page for the tagfield module
- (Optional) Sample page for the recaptcha 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
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 module - adds capabilities to switch the database by a query parameter for testing purposes