Go to file
2022-09-29 09:13:07 +13:00
_config ENH Extracting logic for canX from Company and Employee into DataObject Extension 2022-09-13 14:20:53 +12:00
.github/workflows MNT Use update-js action 2022-07-29 13:10:34 +12:00
client BUG Fix compatibility with latest version 2017-11-06 16:56:59 +13:00
code Merge branch '0.4' into 1 2022-09-29 09:13:07 +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/Layout Fixed deprecated template usage 2013-03-19 11:36:06 +01: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 BUG Fix compatibility with latest version 2017-11-06 16:56:59 +13:00
.gitignore new gitignore 2017-11-29 11:46:19 +13:00
.upgrade.yml Namespaced model to get more 4.x test coverage 2016-07-01 14:37:50 +12:00
code-of-conduct.md Added standard code of conduct file 2016-02-16 11:37:34 +13:00
composer.json MNT Don't require silverstripe/registry (#123) 2022-09-15 17:02:03 +12:00
package.json BUG Fix compatibility with latest version 2017-11-06 16:56:59 +13:00
README.md Add counts to file task, update readme 2021-05-10 13:19:27 +12:00
webpack.config.js BUG Fix compatibility with latest version 2017-11-06 16:56:59 +13:00
yarn.lock Bump async from 2.5.0 to 2.6.4 2022-04-28 20:01:09 +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.