public function testFieldPosition() { $compositeOuter = new CompositeField(new TextField('A'), new TextField('B'), $compositeInner = new CompositeField(new TextField('C1'), new TextField('C2')), new TextField('D')); $this->assertEquals(0, $compositeOuter->fieldPosition('A')); $this->assertEquals(1, $compositeOuter->fieldPosition('B')); $this->assertEquals(3, $compositeOuter->fieldPosition('D')); $this->assertEquals(0, $compositeInner->fieldPosition('C1')); $this->assertEquals(1, $compositeInner->fieldPosition('C2')); $compositeOuter->insertBefore('B', new TextField('AB')); $this->assertEquals(0, $compositeOuter->fieldPosition('A')); $this->assertEquals(1, $compositeOuter->fieldPosition('AB')); $this->assertEquals(2, $compositeOuter->fieldPosition('B')); }
/** * Inserts a field before a particular field in a FieldList. * * @param string $insertBefore Name of the field to insert before * @param FormField $field The form field to insert * @return FormField|null */ public function insertBefore($insertBefore, $field) { if ($field instanceof Tab || $field instanceof TabSet) { $field->setTabSet($this); } return parent::insertBefore($insertBefore, $field); }