public function testShortcodeOperation()
 {
     $file = 'dms/tests/DMS-test-lorum-file.pdf';
     $document = DMS::inst()->storeDocument($file);
     $result = ShortcodeParser::get('default')->parse(sprintf('<p><a href="[dms_document_link id=\'%d\']">Document</a></p>', $document->ID));
     $value = Injector::inst()->create('HTMLValue', $result);
     $link = $value->query('//a')->item(0);
     $this->assertStringEndsWith("/dmsdocument/{$document->ID}", $link->getAttribute('href'));
     $this->assertEquals($document->getExtension(), $link->getAttribute('data-ext'));
     $this->assertEquals($document->getFileSizeFormatted(), $link->getAttribute('data-size'));
 }
 function testDMSVersionStorage()
 {
     $dms = DMS::inst();
     $document = $dms->storeDocument(self::$testFile);
     $this->assertNotNull($document, "Document object created");
     $this->assertTrue(file_exists(DMS::get_dms_path() . DIRECTORY_SEPARATOR . $document->Folder . DIRECTORY_SEPARATOR . $document->Filename), "Document file copied into DMS folder");
     $document->replaceDocument(self::$testFile2);
     $document->replaceDocument(self::$testFile);
     $document->replaceDocument(self::$testFile2);
     $document->replaceDocument(self::$testFile);
     $versionsList = $document->getVersions();
     $this->assertEquals(4, $versionsList->Count(), "4 Versions created");
     $versionsArray = $versionsList->toArray();
     $this->assertEquals($versionsArray[0]->VersionCounter, 1, "Correct version count");
     $this->assertEquals($versionsArray[1]->VersionCounter, 2, "Correct version count");
     $this->assertEquals($versionsArray[2]->VersionCounter, 3, "Correct version count");
     $this->assertEquals($versionsArray[3]->VersionCounter, 4, "Correct version count");
 }
Пример #3
0
 /**
  * Override the default behaviour of the UploadField and take the uploaded file (uploaded to assets) and
  * add it into the DMS storage, deleting the old/uploaded file.
  * @param File
  */
 protected function attachFile($file)
 {
     $dms = DMS::inst();
     $record = $this->getRecord();
     if ($record instanceof DMSDocument) {
         // If the edited record is a document,
         // assume we're replacing an existing file
         $doc = $record;
         $doc->ingestFile($file);
     } else {
         // Otherwise create it
         $doc = $dms->storeDocument($file);
         $file->delete();
         // Relate to the underlying page being edited.
         // Not applicable when editing the document itself and replacing it.
         $doc->addPage($record);
     }
     return $doc;
 }
Пример #4
0
 function testReplaceDocument()
 {
     $dms = DMS::inst();
     //store the first document
     $document = $dms->storeDocument(self::$testFile);
     $document->Title = "My custom title";
     $document->Description = "My custom description";
     $document->write();
     //then overwrite with a second document
     $document = $document->replaceDocument(self::$testFile2);
     $this->assertNotNull($document, "Document object created");
     $this->assertTrue(file_exists(DMS::get_dms_path() . DIRECTORY_SEPARATOR . $document->Folder . DIRECTORY_SEPARATOR . $document->Filename), "Document file copied into DMS folder");
     $this->assertContains("DMS-test-document-2", $document->Filename, "Original document filename is contain in the new filename");
     $this->assertEquals("My custom title", $document->Title, "Custom title not modified");
     $this->assertEquals("My custom description", $document->Description, "Custom description not modified");
 }