Source of file SettingsFieldTest.php
Size: 2,568 Bytes - Last Modified: 2021-12-23T10:29:48+00:00
/var/www/docs.ssmods.com/process/src/tests/SettingsFieldTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php namespace SilverStripe\DocumentConverter\Tests; use SilverStripe\Dev\SapphireTest; use SilverStripe\DocumentConverter\SettingsField; use SilverStripe\DocumentConverter\ImportField; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\HeaderField; use SilverStripe\Forms\LiteralField; use SilverStripe\Forms\TreeDropdownField; use SilverStripe\View\Requirements; class SettingsFieldTest extends SapphireTest { public function testConstructorThrowsExceptionWhenGivenString() { $this->expectException(\InvalidArgumentException::class); new SettingsField('exception time!'); } public function testConstructorThrowsExceptionWhenGivenChildren() { $this->expectException(\InvalidArgumentException::class); new SettingsField(['i', 'don\'t', 'like', 'kids']); } public function testFieldAddsJavascriptRequirements() { // Start with a clean slate (no global state interference) Requirements::backend()->clear(); new SettingsField(); $javascript = Requirements::backend()->getJavascript(); $this->assertNotEmpty($javascript); } public function testFieldListGeneration() { $importField = new SettingsField(); $fields = $importField->getChildren(); $this->assertInstanceOf(FieldList::class, $fields); // We don't need to check that all of the fields are there, but just check a couple $this->assertInstanceOf(LiteralField::class, $fields->fieldByName('FileWarningHeader')); $innerField = $fields->fieldByName('ImportedFromFile'); $this->assertInstanceOf(ImportField::class, $innerField); // Check the getter works $this->assertSame($innerField, $importField->getInnerField()); // Check the fields have been given has the change tracker disabled $settingsFields = [ 'SplitHeader' => DropdownField::class, 'KeepSource' => CheckboxField::class, 'ChosenFolderID' => TreeDropdownField::class, 'IncludeTOC' => CheckboxField::class, 'PublishPages' => CheckboxField::class ]; foreach ($settingsFields as $fieldName => $className) { $field = $fields->fieldByName( 'DocumentConversionSettings-' . $fieldName ); $this->assertInstanceOf($className, $field); $this->assertStringContainsString('no-change-track', $field->extraClass()); } } } |