silverstripe-gridfield-betterbuttons icon indicating copy to clipboard operation
silverstripe-gridfield-betterbuttons copied to clipboard

Fatal error on the GridFieldDetailFormTest

Open jeitzen opened this issue 10 years ago • 1 comments
trafficstars

After installing the betterbuttons module the framework test "GridFieldDetailFormTest" will produce an fatal error.

Fatal error: Call to a member function push() on null in /var/www/www.myproject.com/htdocs/framework/forms/gridfield/GridFieldDetailForm.php on line 653

Using a clean 3.1.8 installation of silverstripe.

jeitzen avatar Jan 11 '15 16:01 jeitzen

A temporary workaround is to exclude some code in GridFieldBetterButtonsItemRequest::updateItemEditForm() from being tested.

public function updateItemEditForm($form) {
        if ($this->owner->record->stat('better_buttons_enabled') !== true) {
            return false;
        }
        Requirements::css(BETTER_BUTTONS_DIR.'/css/gridfield_betterbuttons.css');
        Requirements::javascript(BETTER_BUTTONS_DIR.'/javascript/gridfield_betterbuttons.js');

        if(!SapphireTest::is_running_test()){
            $actions = $this->owner->record->getBetterButtonsActions();
            $form->setActions($this->filterFieldList($form, $actions));

            if($form->Fields()->hasTabset()) {
                $form->Fields()->findOrMakeTab('Root')->setTemplate('TabSet');
                $form->addExtraClass('cms-tabset');
            }

            $utils = $this->owner->record->getBetterButtonsUtils();
            $form->Utils = $this->filterFieldList($form, $utils);
            $form->setTemplate('BetterButtons_EditForm');
        }
    }

jeitzen avatar Apr 29 '15 13:04 jeitzen