objFromFixture(StubHierarchy::class, 'item1'); $list = new ArrayList([$parent]); $config = new GridFieldConfig_RecordEditor(); $config->addComponent($nestedForm = new GridFieldNestedForm()); $controller = new TestController('Test'); $form = new Form($controller, 'TestForm', new FieldList( $gridField = new GridField(__FUNCTION__, 'test', $list, $config) ), new FieldList()); $request = new HTTPRequest('GET', '/'); $itemEditForm = $nestedForm->handleNestedItem($gridField, $request, $parent); $this->assertNotNull($itemEditForm); $nestedGridField = $itemEditForm->Fields()->first(); $this->assertNotNull($nestedGridField); $list = $nestedGridField->getList(); $this->assertEquals(1, $list->count()); $child1 = $this->objFromFixture(StubHierarchy::class, 'item1_1'); $this->assertEquals($child1->ID, $list->first()->ID); $nestedForm = $nestedGridField->getConfig()->getComponentByType(GridFieldNestedForm::class); $itemEditForm = $nestedForm->handleNestedItem($gridField, $request, $child1); $this->assertNotNull($itemEditForm); $nestedGridField = $itemEditForm->Fields()->first(); $this->assertNotNull($nestedGridField); $list = $nestedGridField->getList(); $this->assertEquals(1, $list->count()); $child2 = $this->objFromFixture(StubHierarchy::class, 'item1_1_1'); $this->assertEquals($child2->ID, $list->first()->ID); } }