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

2.5 KiB

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.

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.