mirror of
https://github.com/silverstripe/silverstripe-dms
synced 2024-10-22 14:05:56 +02:00
API-CHANGE: working embargo API (with lots and lots of unit tests)
This commit is contained in:
parent
043eb540c1
commit
ca18b3fac0
@ -5,7 +5,12 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
"Folder" => "Varchar(255)", // eg. 0
|
"Folder" => "Varchar(255)", // eg. 0
|
||||||
"Title" => 'Varchar(1024)', // eg. "Energy Saving Report for Year 2011, New Zealand LandCorp"
|
"Title" => 'Varchar(1024)', // eg. "Energy Saving Report for Year 2011, New Zealand LandCorp"
|
||||||
"Description" => 'Text',
|
"Description" => 'Text',
|
||||||
"LastChanged" => 'SS_DateTime' //when this document's file was created or last replaced (small changes like updating title don't count)
|
"LastChanged" => 'SS_DateTime', //when this document's file was created or last replaced (small changes like updating title don't count)
|
||||||
|
|
||||||
|
"EmbargoedForever" => 'Boolean(false)',
|
||||||
|
"EmbargoedUntilPublished" => 'Boolean(false)',
|
||||||
|
"EmbargoedUntilDate" => 'SS_DateTime',
|
||||||
|
"ExpireAtDate" => 'SS_DateTime'
|
||||||
);
|
);
|
||||||
|
|
||||||
static $many_many = array(
|
static $many_many = array(
|
||||||
@ -235,8 +240,26 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* should be used to hide documents that have not yet gone live.
|
* should be used to hide documents that have not yet gone live.
|
||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function embargo() {
|
function embargoForever() {
|
||||||
// TODO: Implement embargo() method.
|
$this->EmbargoedForever = true;
|
||||||
|
$this->write();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hides the document until any page it is linked to is published
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
function embargoUntilPublished() {
|
||||||
|
$this->EmbargoedUntilPublished = true;
|
||||||
|
$this->write();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if this is Document is embargoed or expired.
|
||||||
|
* @return bool True or False depending on whether this document is embargoed
|
||||||
|
*/
|
||||||
|
function isHidden() {
|
||||||
|
return $this->isEmbargoed() || $this->isExpired();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -244,7 +267,12 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return bool True or False depending on whether this document is embargoed
|
* @return bool True or False depending on whether this document is embargoed
|
||||||
*/
|
*/
|
||||||
function isEmbargoed() {
|
function isEmbargoed() {
|
||||||
// TODO: Implement isEmbargoed() method.
|
$embargoed = false;
|
||||||
|
if ($this->EmbargoedForever) $embargoed = true;
|
||||||
|
elseif ($this->EmbargoedUntilPublished) $embargoed = true;
|
||||||
|
elseif (!empty($this->EmbargoedUntilDate) && SS_Datetime::now()->Value < $this->EmbargoedUntilDate->Value) $embargoed = true;
|
||||||
|
|
||||||
|
return $embargoed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -254,7 +282,8 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function embargoUntilDate($datetime) {
|
function embargoUntilDate($datetime) {
|
||||||
// TODO: Implement embargoUntilDate() method.
|
$this->EmbargoedUntilDate = DBField::create_field('SS_Datetime', $datetime);;
|
||||||
|
$this->write();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -262,17 +291,10 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function clearEmbargo() {
|
function clearEmbargo() {
|
||||||
// TODO: Implement clearEmbargo() method.
|
$this->EmbargoedForever = false;
|
||||||
}
|
$this->EmbargoedUntilPublished = false;
|
||||||
|
$this->EmbargoedUntilDate = null;
|
||||||
/**
|
$this->write();
|
||||||
* Hides the document, so it does not show up when getByPage($myPage) is called.
|
|
||||||
* (without specifying the $showEmbargoed = true parameter). This is similar to embargo, except that it should be
|
|
||||||
* used to hide documents that are no longer useful.
|
|
||||||
* @return null
|
|
||||||
*/
|
|
||||||
function expire() {
|
|
||||||
// TODO: Implement expire() method.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -280,7 +302,10 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return bool True or False depending on whether this document is expired
|
* @return bool True or False depending on whether this document is expired
|
||||||
*/
|
*/
|
||||||
function isExpired() {
|
function isExpired() {
|
||||||
// TODO: Implement isExpired() method.
|
$expired = false;
|
||||||
|
if (!empty($this->ExpireAtDate) && SS_Datetime::now()->Value >= $this->ExpireAtDate->Value) $expired = true;
|
||||||
|
|
||||||
|
return $expired;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -289,7 +314,8 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function expireAtDate($datetime) {
|
function expireAtDate($datetime) {
|
||||||
// TODO: Implement expireAtDate() method.
|
$this->ExpireAtDate = DBField::create_field('SS_Datetime', $datetime);
|
||||||
|
$this->write();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -297,7 +323,8 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function clearExpiry() {
|
function clearExpiry() {
|
||||||
// TODO: Implement clearExpiry() method.
|
$this->ExpireAtDate = null;
|
||||||
|
$this->write();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -328,6 +355,7 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
//delete the file (and previous versions of files)
|
//delete the file (and previous versions of files)
|
||||||
$filesToDelete = array();
|
$filesToDelete = array();
|
||||||
$storageFolder = DMS::get_dms_path() . DIRECTORY_SEPARATOR . DMS::get_storage_folder($this->ID);
|
$storageFolder = DMS::get_dms_path() . DIRECTORY_SEPARATOR . DMS::get_storage_folder($this->ID);
|
||||||
|
if (file_exists($storageFolder)) {
|
||||||
if ($handle = opendir($storageFolder)) { //Open directory
|
if ($handle = opendir($storageFolder)) { //Open directory
|
||||||
//List files in the directory
|
//List files in the directory
|
||||||
while (false !== ($entry = readdir($handle))) {
|
while (false !== ($entry = readdir($handle))) {
|
||||||
@ -341,6 +369,7 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
if (is_file($filePath)) unlink($filePath);
|
if (is_file($filePath)) unlink($filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->removeAllPages();
|
$this->removeAllPages();
|
||||||
|
|
||||||
@ -594,6 +623,8 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
|
|||||||
|
|
||||||
class DMSDocument_Controller extends Controller {
|
class DMSDocument_Controller extends Controller {
|
||||||
|
|
||||||
|
static $testMode = false; //mode to switch for testing. Does not return document download, just document URL
|
||||||
|
|
||||||
static $allowed_actions = array(
|
static $allowed_actions = array(
|
||||||
'index'
|
'index'
|
||||||
);
|
);
|
||||||
@ -603,8 +634,10 @@ class DMSDocument_Controller extends Controller {
|
|||||||
* Returns null, if no document found
|
* Returns null, if no document found
|
||||||
*/
|
*/
|
||||||
protected function getDocumentFromID($request) {
|
protected function getDocumentFromID($request) {
|
||||||
$id = Convert::raw2sql($request->param('ID'));
|
$doc = null;
|
||||||
return DataObject::get_by_id('DMSDocument', $id);
|
$id = Convert::raw2sql(intval($request->param('ID')));
|
||||||
|
$doc = DataObject::get_by_id('DMSDocument', $id);
|
||||||
|
return $doc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -630,7 +663,8 @@ class DMSDocument_Controller extends Controller {
|
|||||||
$canView = true;
|
$canView = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: add a check for embargo
|
// check for embargo or expiry
|
||||||
|
if ($doc->isHidden()) $canView = false;
|
||||||
|
|
||||||
if ($canView) {
|
if ($canView) {
|
||||||
$path = $doc->getFullPath();
|
$path = $doc->getFullPath();
|
||||||
@ -658,6 +692,9 @@ class DMSDocument_Controller extends Controller {
|
|||||||
$mime = 'application/octet-stream';
|
$mime = 'application/octet-stream';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self::$testMode) return $path;
|
||||||
|
|
||||||
header('Content-Type: ' . $mime);
|
header('Content-Type: ' . $mime);
|
||||||
header('Content-Length: ' . filesize($path), null);
|
header('Content-Length: ' . filesize($path), null);
|
||||||
if (!empty($mime) && $mime != "text/html") header('Content-Disposition: attachment; filename="'.$doc->getFilenameWithoutID().'"');
|
if (!empty($mime) && $mime != "text/html") header('Content-Disposition: attachment; filename="'.$doc->getFilenameWithoutID().'"');
|
||||||
@ -672,6 +709,7 @@ class DMSDocument_Controller extends Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self::$testMode) return 'This asset does not exist.';
|
||||||
$this->httpError(404, 'This asset does not exist.');
|
$this->httpError(404, 'This asset does not exist.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,4 +65,15 @@ class DMSSiteTreeExtension extends DataExtension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onBeforePublish() {
|
||||||
|
$embargoedDocuments = $this->owner->Documents()->filter('EmbargoedUntilPublished',true);
|
||||||
|
if ($embargoedDocuments->Count() > 0) {
|
||||||
|
foreach($embargoedDocuments as $doc) {
|
||||||
|
$doc->EmbargoedUntilPublished = false;
|
||||||
|
$doc->write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
@ -158,7 +158,15 @@ interface DMSDocumentInterface {
|
|||||||
* @abstract
|
* @abstract
|
||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
function embargo();
|
function embargoForever();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if this is DMSDocument is embargoed or expired.
|
||||||
|
* @abstract
|
||||||
|
* @return bool True or False depending on whether this DMSDocument is embargoed or expired
|
||||||
|
*/
|
||||||
|
function isHidden();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if this is DMSDocument is embargoed.
|
* Returns if this is DMSDocument is embargoed.
|
||||||
@ -176,6 +184,12 @@ interface DMSDocumentInterface {
|
|||||||
*/
|
*/
|
||||||
function embargoUntilDate($datetime);
|
function embargoUntilDate($datetime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hides the document until any page it is linked to is published
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
function embargoUntilPublished();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears any previously set embargos, so the DMSDocument always shows up in all queries.
|
* Clears any previously set embargos, so the DMSDocument always shows up in all queries.
|
||||||
* @abstract
|
* @abstract
|
||||||
@ -183,15 +197,6 @@ interface DMSDocumentInterface {
|
|||||||
*/
|
*/
|
||||||
function clearEmbargo();
|
function clearEmbargo();
|
||||||
|
|
||||||
/**
|
|
||||||
* Hides the DMSDocument, so it does not show up when getByPage($myPage) is called.
|
|
||||||
* (without specifying the $showEmbargoed = true parameter). This is similar to embargo, except that it should be
|
|
||||||
* used to hide DMSDocuments that are no longer useful.
|
|
||||||
* @abstract
|
|
||||||
* @return null
|
|
||||||
*/
|
|
||||||
function expire();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if this is DMSDocument is expired.
|
* Returns if this is DMSDocument is expired.
|
||||||
* @abstract
|
* @abstract
|
||||||
|
187
tests/DMSEmbargoTest.php
Normal file
187
tests/DMSEmbargoTest.php
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
<?php
|
||||||
|
class DMSEmbargoTest extends SapphireTest {
|
||||||
|
|
||||||
|
static $fixture_file = "dms/tests/dmsembargotest.yml";
|
||||||
|
|
||||||
|
function tearDownOnce() {
|
||||||
|
$d = DataObject::get("DMSDocument");
|
||||||
|
foreach($d as $d1) {
|
||||||
|
$d1->delete();
|
||||||
|
}
|
||||||
|
$t = DataObject::get("DMSTag");
|
||||||
|
foreach($t as $t1) {
|
||||||
|
$t1->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createFakeHTTPRequest($id) {
|
||||||
|
$r = new SS_HTTPRequest('GET','index/'.$id);
|
||||||
|
$r->match('index/$ID');
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
function testBasicEmbargo() {
|
||||||
|
$oldDMSFolder = DMS::$dmsFolder;
|
||||||
|
DMS::$dmsFolder = 'dms'; //sneakily setting the DMS folder to the folder where the test file lives
|
||||||
|
|
||||||
|
$doc = new DMSDocument();
|
||||||
|
$doc->Filename = "DMS-test-lorum-file.pdf";
|
||||||
|
$doc->Folder = "tests";
|
||||||
|
$docID = $doc->write();
|
||||||
|
|
||||||
|
//fake a request for a document
|
||||||
|
$controller = new DMSDocument_Controller();
|
||||||
|
DMSDocument_Controller::$testMode = true;
|
||||||
|
$result = $controller->index($this->createFakeHTTPRequest($docID));
|
||||||
|
$this->assertEquals($doc->getFullPath(),$result,"Correct underlying file returned (in test mode)");
|
||||||
|
|
||||||
|
$doc->embargoForever();
|
||||||
|
|
||||||
|
$result = $controller->index($this->createFakeHTTPRequest($docID));
|
||||||
|
$this->assertNotEquals($doc->getFullPath(),$result,"File no longer returned (in test mode)");
|
||||||
|
|
||||||
|
DMS::$dmsFolder = $oldDMSFolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEmbargoForever() {
|
||||||
|
$doc = new DMSDocument();
|
||||||
|
$doc->Filename = "DMS-test-lorum-file.pdf";
|
||||||
|
$doc->Folder = "tests";
|
||||||
|
$doc->write();
|
||||||
|
|
||||||
|
$doc->embargoForever();
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->clearEmbargo();
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function testExpireAtDate() {
|
||||||
|
$doc = new DMSDocument();
|
||||||
|
$doc->Filename = "DMS-test-lorum-file.pdf";
|
||||||
|
$doc->Folder = "tests";
|
||||||
|
$doc->write();
|
||||||
|
|
||||||
|
$doc->expireAtDate(strtotime('-1 second'));
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertTrue($doc->isExpired(),"Document is expired");
|
||||||
|
|
||||||
|
$expireTime = "2019-04-05 11:43:13";
|
||||||
|
$doc->expireAtDate($expireTime);
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
SS_Datetime::set_mock_now($expireTime);
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertTrue($doc->isExpired(),"Document is expired");
|
||||||
|
SS_Datetime::clear_mock_now();
|
||||||
|
|
||||||
|
$doc->expireAtDate(strtotime('-1 second'));
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertTrue($doc->isExpired(),"Document is expired");
|
||||||
|
|
||||||
|
$doc->clearExpiry();
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEmbargoUntilDate() {
|
||||||
|
$doc = new DMSDocument();
|
||||||
|
$doc->Filename = "DMS-test-lorum-file.pdf";
|
||||||
|
$doc->Folder = "tests";
|
||||||
|
$doc->write();
|
||||||
|
|
||||||
|
$doc->embargoUntilDate(strtotime('+1 minute'));
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->embargoUntilDate(strtotime('-1 second'));
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$embargoTime = "2019-04-05 11:43:13";
|
||||||
|
$doc->embargoUntilDate($embargoTime);
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
SS_Datetime::set_mock_now($embargoTime);
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
SS_Datetime::clear_mock_now();
|
||||||
|
|
||||||
|
$doc->clearEmbargo();
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEmbargoUntilPublished() {
|
||||||
|
$s1 = $this->objFromFixture('SiteTree','s1');
|
||||||
|
|
||||||
|
$doc = new DMSDocument();
|
||||||
|
$doc->Filename = "test file";
|
||||||
|
$doc->Folder = "0";
|
||||||
|
$dID = $doc->write();
|
||||||
|
|
||||||
|
$doc->addPage($s1);
|
||||||
|
|
||||||
|
$s1->publish('Stage','Live');
|
||||||
|
$s1->doPublish();
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->embargoUntilPublished();
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$s1->publish('Stage','Live');
|
||||||
|
$s1->doPublish();
|
||||||
|
$doc = DataObject::get_by_id("DMSDocument",$dID);
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->embargoUntilPublished();
|
||||||
|
$doc = DataObject::get_by_id("DMSDocument",$dID);
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->embargoForever();
|
||||||
|
$doc = DataObject::get_by_id("DMSDocument",$dID);
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is hidden");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$s1->publish('Stage','Live');
|
||||||
|
$s1->doPublish();
|
||||||
|
$doc = DataObject::get_by_id("DMSDocument",$dID);
|
||||||
|
$this->assertTrue($doc->isHidden(),"Document is still hidden because although the untilPublish flag is cleared, the forever flag is still there");
|
||||||
|
$this->assertTrue($doc->isEmbargoed(),"Document is embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
|
||||||
|
$doc->clearEmbargo();
|
||||||
|
$doc = DataObject::get_by_id("DMSDocument",$dID);
|
||||||
|
$this->assertFalse($doc->isHidden(),"Document is not hidden");
|
||||||
|
$this->assertFalse($doc->isEmbargoed(),"Document is not embargoed");
|
||||||
|
$this->assertFalse($doc->isExpired(),"Document is not expired");
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
class DMSTagTest extends SapphireTest {
|
class DMSTagTest extends SapphireTest {
|
||||||
|
|
||||||
//static $fixture_file = "dms/tests/dmstest.yml";
|
|
||||||
|
|
||||||
function tearDownOnce() {
|
function tearDownOnce() {
|
||||||
$d = DataObject::get("DMSDocument");
|
$d = DataObject::get("DMSDocument");
|
||||||
foreach($d as $d1) {
|
foreach($d as $d1) {
|
||||||
|
10
tests/dmsembargotest.yml
Normal file
10
tests/dmsembargotest.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
SiteTree:
|
||||||
|
s1:
|
||||||
|
Title: testPage1
|
||||||
|
URLSegment: s1
|
||||||
|
s2:
|
||||||
|
Title: testPage2
|
||||||
|
URLSegment: s2
|
||||||
|
s3:
|
||||||
|
Title: testPage3
|
||||||
|
URLSegment: s3
|
Loading…
Reference in New Issue
Block a user