Skip to content

Commit

Permalink
ENH Add versioning to Link
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Dec 4, 2023
1 parent 3c8edfd commit 3838387
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 16 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,21 @@ class Page extends SiteTree
'HasManyLinks' => Link::class
];

private static array $owns = [
'HasOneLink',
'HasManyLinks',
];

private static array $cascade_deletess = [
'HasOneLink'
'HasManyLinks',
];

private static array $cascade_duplicatess = [
'HasOneLink'
'HasManyLinks',
];

public function getCMSFields()
{
$fields = parent::getCMSFields();
Expand Down
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"type": "silverstripe-vendormodule",
"require": {
"php": "^8.1",
"silverstripe/cms": "^5"
"silverstripe/cms": "^5",
"silverstripe/versioned": "^2"
},
"require-dev": {
"silverstripe/recipe-testing": "^3",
Expand Down
6 changes: 5 additions & 1 deletion src/Models/Link.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use InvalidArgumentException;
use ReflectionException;
use SilverStripe\Core\ClassInfo;
use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Forms\CompositeValidator;
use SilverStripe\Forms\DropdownField;
Expand All @@ -14,6 +13,7 @@
use SilverStripe\LinkField\Type\Registry;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\FieldType\DBHTMLText;
use SilverStripe\Versioned\Versioned;

/**
* A Link Data Object. This class should be a subclass, and you should never directly interact with a plain Link
Expand All @@ -30,6 +30,10 @@ class Link extends DataObject
'Title' => 'Varchar',
'OpenInNew' => 'Boolean',
];

private static array $extensions = [
Versioned::class,
];

/**
* In-memory only property used to change link type
Expand Down
18 changes: 4 additions & 14 deletions tests/php/Models/LinkTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,6 @@ protected function setUp(): void
$image = $this->objFromFixture(Image::class, 'image-1');
$image->setFromLocalFile(dirname(dirname(dirname(__FILE__))) . '/resources/600x400.png');
$image->write();
$image->publishSingle();

/** @var SiteTree $page */
$page = $this->objFromFixture(SiteTree::class, 'page-1');
$page->publishSingle();
}

protected function tearDown(): void
Expand Down Expand Up @@ -250,14 +245,9 @@ public function linkTypeEnabledProvider(): array
*/
public function testGetUrl(string $identifier, string $class, string $expected): void
{
Versioned::withVersionedMode(function () use ($identifier, $class, $expected): void {
Versioned::set_stage(Versioned::LIVE);

/** @var Link $link */
$link = $this->objFromFixture($class, $identifier);

$this->assertSame($expected, $link->getURL(), 'We expect specific URL value');
});
/** @var Link $link */
$link = $this->objFromFixture($class, $identifier);
$this->assertSame($expected, $link->getURL(), 'We expect specific URL value');
}

public function linkUrlCasesDataProvider(): array
Expand Down Expand Up @@ -326,7 +316,7 @@ public function linkUrlCasesDataProvider(): array
'file link / with image' => [
'file-link-with-image',
FileLink::class,
'/assets/ImageTest/600x400.png',
'/assets/8cf6c65fa7/600x400.png',
],
'file link / no image' => [
'file-link-no-image',
Expand Down

0 comments on commit 3838387

Please sign in to comment.