2007-08-15 08:38:41 +02:00
|
|
|
<?php
|
2008-02-25 03:10:37 +01:00
|
|
|
/**
|
2008-06-15 15:33:53 +02:00
|
|
|
* @package sapphire
|
|
|
|
* @subpackage tests
|
2008-02-25 03:10:37 +01:00
|
|
|
*/
|
2007-08-15 08:38:41 +02:00
|
|
|
class SiteTreeTest extends SapphireTest {
|
|
|
|
static $fixture_file = 'sapphire/tests/SiteTreeTest.yml';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Test generation of the URLSegment values.
|
|
|
|
* - Turns things into lowercase-hyphen-format
|
|
|
|
* - Generates from Title by default, unless URLSegment is explicitly set
|
|
|
|
* - Resolves duplicates by appending a number
|
|
|
|
*/
|
|
|
|
function testURLGeneration() {
|
|
|
|
$expectedURLs = array(
|
|
|
|
'home' => 'home',
|
|
|
|
'staff' => 'my-staff',
|
|
|
|
'about' => 'about-us',
|
|
|
|
'staffduplicate' => 'my-staff-2',
|
|
|
|
'product1' => '1-1-test-product',
|
|
|
|
'product2' => 'another-product',
|
|
|
|
'product3' => 'another-product-2',
|
|
|
|
'product4' => 'another-product-3',
|
|
|
|
);
|
|
|
|
|
|
|
|
foreach($expectedURLs as $fixture => $urlSegment) {
|
2008-08-11 01:17:51 +02:00
|
|
|
$obj = $this->fixture->objFromFixture('Page', $fixture);
|
2007-08-15 08:38:41 +02:00
|
|
|
$this->assertEquals($urlSegment, $obj->URLSegment);
|
|
|
|
}
|
|
|
|
}
|
2007-08-16 08:36:39 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Test that publication copies data to SiteTree_Live
|
|
|
|
*/
|
|
|
|
function testPublishCopiesToLiveTable() {
|
2008-08-11 01:17:51 +02:00
|
|
|
$obj = $this->fixture->objFromFixture('Page','about');
|
2007-08-16 08:36:39 +02:00
|
|
|
$obj->publish('Stage', 'Live');
|
|
|
|
|
|
|
|
$createdID = DB::query("SELECT ID FROM SiteTree_Live WHERE URLSegment = '$obj->URLSegment'")->value();
|
|
|
|
$this->assertEquals($obj->ID, $createdID);
|
|
|
|
}
|
|
|
|
|
2008-07-14 13:09:44 +02:00
|
|
|
function testParentNodeCachedInMemory() {
|
|
|
|
$parent = new SiteTree();
|
|
|
|
$parent->Title = 'Section Title';
|
|
|
|
$child = new SiteTree();
|
|
|
|
$child->Title = 'Page Title';
|
|
|
|
$child->setParent($parent);
|
|
|
|
|
|
|
|
$this->assertType("SiteTree", $child->Parent);
|
|
|
|
$this->assertEquals("Section Title", $child->Parent->Title);
|
|
|
|
}
|
2007-08-16 08:36:39 +02:00
|
|
|
|
2008-07-14 13:09:44 +02:00
|
|
|
function testParentModelReturnType() {
|
2008-07-16 05:30:29 +02:00
|
|
|
$parent = new SiteTreeTest_PageNode();
|
|
|
|
$child = new SiteTreeTest_PageNode();
|
2008-07-14 13:09:44 +02:00
|
|
|
|
|
|
|
$child->setParent($parent);
|
2008-07-16 05:30:29 +02:00
|
|
|
$this->assertType('SiteTreeTest_PageNode', $child->Parent);
|
2008-07-14 13:09:44 +02:00
|
|
|
}
|
2007-08-16 08:36:39 +02:00
|
|
|
|
2008-07-14 13:09:44 +02:00
|
|
|
}
|
|
|
|
|
2008-07-16 05:30:29 +02:00
|
|
|
class SiteTreeTest_PageNode extends SiteTree implements TestOnly { }
|
2008-07-14 13:09:44 +02:00
|
|
|
|
|
|
|
?>
|