/** * @see self::testVersionedSiteTreeDeleteWithDeletableVersionedHasOneRelation() */ public function testVersionedSiteTreeDeleteWithDeletableVersionedHasOneRelationFromNewClassInstance() { // Make sure that has_many <= has_one relations are cleaned // for related DataObject classes even if the class type // being deleted does not have the relations. DataObjectOnDeleteDecorator::set_clean_versions_table(true); $masterPage = DataObject::get_one('DataObjectOnDeleteDecoratorTest_MasterPage', "\"Title\" = 'MasterPage'"); $this->assertInstanceOf('DataObjectOnDeleteDecoratorTest_MasterPage', $masterPage); $masterPageID = $masterPage->ID; $subPage = DataObject::get_one('DataObjectOnDeleteDecoratorTest_SubPage', "\"Title\" = 'SubPage'"); $this->assertInstanceOf('DataObjectOnDeleteDecoratorTest_SubPage', $subPage); $subPageID = $subPage->ID; $this->assertEquals($masterPage->ID, $subPage->MasterPageID, "Something is wrong with the fixture"); $subPage->doPublish(); $masterPage = $masterPage->newClassInstance('VirtualPage'); $masterPage->write(); $masterPage->delete(); $this->assertVersionedTables('SiteTree', $masterPageID, false); $this->assertVersionedTables('DataObjectOnDeleteDecoratorTest_SubPage', $subPageID, false); DataObjectOnDeleteDecorator::set_clean_versions_table(false); }