Go to file
2024-03-06 16:15:41 +13:00
_config FIX Ensure both linkfield and elemental exist before applying extension 2024-03-04 10:44:44 +13:00
.github/workflows MNT Add merge-up and keepalive workflows 2023-08-22 14:31:20 +12:00
client MNT Update dev JS 2023-04-03 14:34:04 +12:00
code NEW Extensions for elemental 2024-03-06 16:15:41 +13:00
css ENHANCEMENT Migrated Stig's GridfieldTest module into here 2012-02-29 15:10:34 +01:00
images NEW: More complete block content, unique images with watermarks 2021-05-03 13:36:06 +12:00
templates MNT Cuccumber Studio test suite (#167) 2024-02-29 14:33:36 +13:00
_config.php Update deprecated API 2017-01-11 10:47:17 +13:00
.editorconfig Rebased with webpack 2016-09-29 13:39:07 +13:00
.eslintignore Added TestReactFormBuilder admin section, this utilises BasicFieldsTestPage fields currently. 2016-09-28 11:42:20 +13:00
.eslintrc.js MNT Add yarn lint back in 2023-01-13 15:23:09 +13:00
.gitignore new gitignore 2017-11-29 11:46:19 +13:00
.nvmrc DEP Upgrade build stack (#133) 2022-12-19 10:20:07 +13:00
code-of-conduct.md Added standard code of conduct file 2016-02-16 11:37:34 +13:00
composer.json DEP Upgrade installer dependencies CMS5 2022-10-26 13:03:05 +13:00
LICENSE MNT Update LICENSE (#142) 2023-06-26 15:02:59 +12:00
package.json Bump webpack from 5.75.0 to 5.76.0 2023-08-31 00:20:54 +00:00
README.md Add counts to file task, update readme 2021-05-10 13:19:27 +12:00
webpack.config.js DEP Upgrade build stack (#133) 2022-12-19 10:20:07 +13:00
yarn.lock Bump @babel/traverse from 7.20.5 to 7.23.7 2024-01-08 01:50:50 +00:00

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 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.