From 9c5303285ad3844569537d16ca548809e9c53aa6 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 14 Apr 2010 03:54:36 +0000 Subject: [PATCH] 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 --- core/model/VirtualPage.php | 3 ++- tests/model/VirtualPageTest.php | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/core/model/VirtualPage.php b/core/model/VirtualPage.php index 3cbb4f5f9..0dec2711d 100755 --- a/core/model/VirtualPage.php +++ b/core/model/VirtualPage.php @@ -30,8 +30,9 @@ class VirtualPage extends Page { "Sort", "Status", 'ShowInMenus', - 'ShowInSearch', // 'Locale' + 'ShowInSearch', + 'Version', ); $allFields = $this->db(); diff --git a/tests/model/VirtualPageTest.php b/tests/model/VirtualPageTest.php index da33cb0fc..02d73adb1 100644 --- a/tests/model/VirtualPageTest.php +++ b/tests/model/VirtualPageTest.php @@ -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) {