Skip to content

Commit

Permalink
Merge pull request #85 from creative-commoners/pulls/4/behat-fixtures
Browse files Browse the repository at this point in the history
NEW Add MultiTabPage behat fixture
  • Loading branch information
Garion Herman authored Feb 10, 2021
2 parents 38eb9e5 + 297997d commit 0119d59
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
63 changes: 63 additions & 0 deletions code/multitab-validation/MultiTabPage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

namespace SilverStripe\FrameworkTest\Model;

use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\RequiredFields;
use SilverStripe\Forms\TextField;

/**
* This class is specifically for the silverstripe/admin behat test multitab-validation.feature
*/
class MultiTabPage extends SiteTree
{
private static $db = [
'SecondTabFirstField' => 'Varchar(50)',
'ThirdTabFirstField' => 'Varchar(50)',
'ThirdTabSecondField' => 'Varchar(50)',
'FourthTabFirstField' => 'Varchar(50)',
'SettingsTabFirstField' => 'Varchar(50)',
];

public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab("Root.Second", TextField::create("SecondTabFirstField"));
$fields->addFieldToTab("Root.Third", TextField::create("ThirdTabFirstField"));
$fields->addFieldToTab("Root.Third", TextField::create("ThirdTabSecondField"));
$fields->addFieldToTab("Root.Fourth", TextField::create("FourthTabFirstField"));
return $fields;
}

public function getSettingsFields()
{
$fields = parent::getSettingsFields();
$fields->addFieldToTab("Root.Settings", TextField::create('SettingsTabFirstField'));
return $fields;
}

public function getCMSValidator()
{
return new RequiredFields([
'ThirdTabFirstField',
'FourthTabFirstField',
// This is only validated if you are actually on the settings tab when clicking save
'SettingsTabFirstField'
]);
}

public function validate()
{
$result = parent::validate();

// Validation error on specific form field that is not in RequiredFields
if ($this->SecondTabFirstField && $this->SecondTabFirstField !== '222') {
$result->addFieldError('SecondTabFirstField', 'Value of field must be 222');
}

// Manual testing only, uncomment this line to test
// $result->addError('This page cannot exist.');

return $result;
}
}
19 changes: 19 additions & 0 deletions code/multitab-validation/SingleTabPage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace SilverStripe\FrameworkTest\Model;

use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\RequiredFields;

/**
* This class is specifically for the silverstripe/admin behat test multitab-validation.feature
*/
class SingleTabPage extends SiteTree
{
public function getCMSValidator()
{
return new RequiredFields([
'Content'
]);
}
}

0 comments on commit 0119d59

Please sign in to comment.