From 25b19f0ae4abc26813436b012057d3a083b1b5d6 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Fri, 20 Mar 2009 07:58:52 +0000 Subject: [PATCH] BUGFIX Fixed Hierarchy->Children() testing in TranslatableTest - with the new datamodel you can't call Children() in a different language regardless of Translatable::set_reading_lang(), the Children() call has to be made from a parent in the same language git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@73465 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- tests/model/TranslatableTest.php | 39 +++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/tests/model/TranslatableTest.php b/tests/model/TranslatableTest.php index 600669d17..258207258 100644 --- a/tests/model/TranslatableTest.php +++ b/tests/model/TranslatableTest.php @@ -314,7 +314,11 @@ class TranslatableTest extends FunctionalTest { $child3Page = $this->objFromFixture('Page', 'child3'); $grandchildPage = $this->objFromFixture('Page', 'grandchild'); - $child1PageTranslated = $child1Page->createTranslation('de'); + $parentPageTranslated = $parentPage->createTranslation('de'); + $child4PageTranslated = new SiteTree(); + $child4PageTranslated->Lang = 'de'; + $child4PageTranslated->ParentID = $parentPageTranslated->ID; + $child4PageTranslated->write(); Translatable::set_reading_lang('en'); $this->assertEquals( @@ -330,8 +334,8 @@ class TranslatableTest extends FunctionalTest { Translatable::set_reading_lang('de'); $parentPage->flushCache(); $this->assertEquals( - $parentPage->Children()->column('ID'), - array($child1PageTranslated->ID), + $parentPageTranslated->Children()->column('ID'), + array($child4PageTranslated->ID), "Showing Children() in translation mode doesnt show children in default languages" ); @@ -347,11 +351,21 @@ class TranslatableTest extends FunctionalTest { $child3Page = $this->objFromFixture('Page', 'child3'); $grandchildPage = $this->objFromFixture('Page', 'grandchild'); - $child1PageTranslated = $child1Page->createTranslation('de'); - $child1PageTranslated->publish('Stage', 'Live'); - $child2PageTranslated = $child2Page->createTranslation('de'); + $parentPageTranslated = $parentPage->createTranslation('de'); + + $child4PageTranslated = new SiteTree(); + $child4PageTranslated->Lang = 'de'; + $child4PageTranslated->ParentID = $parentPageTranslated->ID; + $child4PageTranslated->write(); + $child4PageTranslated->publish('Stage', 'Live'); + + $child5PageTranslated = new SiteTree(); + $child5PageTranslated->Lang = 'de'; + $child5PageTranslated->ParentID = $parentPageTranslated->ID; + $child5PageTranslated->write(); Translatable::set_reading_lang('en'); + $this->assertNotNull($parentPage->liveChildren()); $this->assertEquals( $parentPage->liveChildren()->column('ID'), array( @@ -359,6 +373,7 @@ class TranslatableTest extends FunctionalTest { ), "Showing liveChildren() in default language doesnt show children in other languages" ); + $this->assertNotNull($parentPage->stageChildren()); $this->assertEquals( $parentPage->stageChildren()->column('ID'), array( @@ -371,16 +386,18 @@ class TranslatableTest extends FunctionalTest { Translatable::set_reading_lang('de'); $parentPage->flushCache(); + $this->assertNotNull($parentPageTranslated->liveChildren()); $this->assertEquals( - $parentPage->liveChildren()->column('ID'), - array($child1PageTranslated->ID), + $parentPageTranslated->liveChildren()->column('ID'), + array($child4PageTranslated->ID), "Showing liveChildren() in translation mode doesnt show children in default languages" ); + $this->assertNotNull($parentPageTranslated->stageChildren()); $this->assertEquals( - $parentPage->stageChildren()->column('ID'), + $parentPageTranslated->stageChildren()->column('ID'), array( - $child2PageTranslated->ID, - $child1PageTranslated->ID, + $child4PageTranslated->ID, + $child5PageTranslated->ID, ), "Showing stageChildren() in translation mode doesnt show children in default languages" );