BUGFIX: Generate SiteTree_version records for VirtualPages more reliably. (from r98309) (from r99052)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@102828 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2010-04-14 03:54:36 +00:00
parent 7452c4c584
commit 9c5303285a
2 changed files with 25 additions and 1 deletions

View File

@ -30,8 +30,9 @@ class VirtualPage extends Page {
"Sort",
"Status",
'ShowInMenus',
'ShowInSearch',
// 'Locale'
'ShowInSearch',
'Version',
);
$allFields = $this->db();

View File

@ -210,6 +210,29 @@ class VirtualPageTest extends SapphireTest {
$this->assertFalse($vp->IsModifiedOnStage);
}
function testVirtualPagesCreateVersionRecords() {
$source = $this->objFromFixture('Page', 'master');
$source->Title = "T0";
$source->write();
// Creating a new VP to ensure that Version #s are out of alignment
$vp = new VirtualPage();
$vp->CopyContentFromID = $source->ID;
$vp->write();
$source->Title = "T1";
$source->write();
$source->Title = "T2";
$source->write();
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
WHERE \"RecordID\" = $vp->ID AND \"Title\" = 'T1'")->value());
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
WHERE \"RecordID\" = $vp->ID AND \"Title\" = 'T2'")->value());
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
WHERE \"RecordID\" = $vp->ID AND \"Version\" = $vp->Version")->value());
}
function fixVersionNumberCache($page) {
$pages = func_get_args();
foreach($pages as $p) {