Skip to content

Commit

Permalink
Add tests for UsedOnTable (#957)
Browse files Browse the repository at this point in the history
* Add tests for UsedOnTable

* Do not display records with `hide_in_campaigns` config set to `true` in the `Used On` table of files

* Make tests pass
  • Loading branch information
bergice committed Aug 30, 2020
1 parent 8c5609c commit 83279de
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
58 changes: 58 additions & 0 deletions tests/php/UsedOnTableTest.php
@@ -0,0 +1,58 @@
<?php

namespace SilverStripe\Admin\Tests;

use SilverStripe\Admin\Forms\UsedOnTable;
use SilverStripe\Assets\File;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Dev\SapphireTest;

class UsedOnTableTest extends SapphireTest
{
protected static $fixture_file = 'UsedOnTableTest.yml';

public function testNotExcluded()
{
UsedOnTable::config()->set('extensions', []);

$usedOnTable = UsedOnTable::create("Used On");

$file1 = $this->objFromFixture(File::class, 'file1');
$usedOnTable->setRecord($file1);

$request = new HTTPRequest('GET', '/');
$response = $usedOnTable->usage($request);
$responseBody = json_decode($response->getBody(), true);

$expected = [
'usage' => [
[
'id' => 'SilverStripe\Assets\Shortcodes\FileLink/1',
'title' => '#1',
'type' => 'File Link',
'state' => null,
'link' => null,
]
]
];
$this->assertEquals($expected, $responseBody);
}

public function testExtensionExclusion()
{
UsedOnTable::config()->set('extensions', [
UsedOnTableTest\UsedOnTableExtension::class
]);

$usedOnTable = UsedOnTable::create("Used On");

$file1 = $this->objFromFixture(File::class, 'file1');
$usedOnTable->setRecord($file1);

$request = new HTTPRequest('GET', '/');
$response = $usedOnTable->usage($request);
$responseBody = json_decode($response->getBody(), true);

$this->assertEmpty($responseBody['usage']);
}
}
9 changes: 9 additions & 0 deletions tests/php/UsedOnTableTest.yml
@@ -0,0 +1,9 @@
SilverStripe\Assets\Shortcodes\FileLink:
linkToPage:
SilverStripe\Assets\File:
file1:
Title: File1
FileFilename: files/testfile.txt
FileHash: 6adf67caca20b8e7c45283d398321f4319d3b07e
Name: testfile.txt
BackLinks: =>SilverStripe\Assets\Shortcodes\FileLink.linkToPage
21 changes: 21 additions & 0 deletions tests/php/UsedOnTableTest/UsedOnTableExtension.php
@@ -0,0 +1,21 @@
<?php

namespace SilverStripe\Admin\Tests\UsedOnTableTest;

use SilverStripe\Assets\Shortcodes\FileLink;
use SilverStripe\Core\Extension;
use SilverStripe\Dev\TestOnly;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataObject;

class UsedOnTableExtension extends Extension implements TestOnly
{
public function updateUsage(ArrayList &$usage, DataObject &$record)
{
$usage = $usage->exclude([
'ClassName' => [
FileLink::class,
]
]);
}
}

0 comments on commit 83279de

Please sign in to comment.