add validation to date metadata type
This commit is contained in:
parent
9ddf07ccd7
commit
ace115837a
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace Tainacan\Metadata_Types;
|
||||
|
||||
use Tainacan\Entities\Item_Metadata_Entity;
|
||||
|
||||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||
|
||||
use Tainacan\Helpers;
|
||||
|
@ -28,4 +30,19 @@ class Date extends Metadata_Type {
|
|||
value=\''.json_encode( $itemMetadata->get_value() ).'\'
|
||||
name="'.$itemMetadata->get_metadatum()->get_name().'"></tainacan-date>';
|
||||
}
|
||||
|
||||
|
||||
public function validate( Item_Metadata_Entity $item_metadata) {
|
||||
|
||||
$value = $item_metadata->get_value();
|
||||
|
||||
$format = 'Y-m-d';
|
||||
|
||||
$d = \DateTime::createFromFormat($format, $value);
|
||||
|
||||
return $d && $d->format($format) === $value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -56,7 +56,7 @@ class Test_Importer extends Importer {
|
|||
];
|
||||
|
||||
protected $date_values = [
|
||||
'03/04/1993', '03/12/1998', '10/09/2001', '03/01/2018', '13/11/2016', '22/04/1993'
|
||||
'1993-12-03', '1998-04-03', '2001-09-10', '2018-01-03', '2016-11-13', '1993-04-22'
|
||||
];
|
||||
|
||||
protected $numeric_values = [
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace Tainacan\Tests;
|
||||
|
||||
/**
|
||||
* Class TestCollections
|
||||
*
|
||||
* @package Test_Tainacan
|
||||
*/
|
||||
|
||||
use Tainacan\Entities;
|
||||
|
||||
/**
|
||||
* Sample test case.
|
||||
*/
|
||||
class DateMetadatumTypes extends TAINACAN_UnitTestCase {
|
||||
|
||||
|
||||
function test_date_metadata_types() {
|
||||
|
||||
$Tainacan_Metadata = \Tainacan\Repositories\Metadata::get_instance();
|
||||
$Tainacan_Item_Metadata = \Tainacan\Repositories\Item_Metadata::get_instance();
|
||||
$Tainacan_Items = \Tainacan\Repositories\Items::get_instance();
|
||||
|
||||
$collection = $this->tainacan_entity_factory->create_entity(
|
||||
'collection',
|
||||
array(
|
||||
'name' => 'test',
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
$metadatum = $this->tainacan_entity_factory->create_entity(
|
||||
'metadatum',
|
||||
array(
|
||||
'name' => 'meta',
|
||||
'description' => 'description',
|
||||
'collection' => $collection,
|
||||
'metadata_type' => 'Tainacan\Metadata_Types\Date',
|
||||
'status' => 'publish',
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
$i = $this->tainacan_entity_factory->create_entity(
|
||||
'item',
|
||||
array(
|
||||
'title' => 'item test',
|
||||
'description' => 'adasdasdsa',
|
||||
'collection' => $collection,
|
||||
'status' => 'publish',
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
$item_metadata = new \Tainacan\Entities\Item_Metadata_Entity($i, $metadatum);
|
||||
|
||||
$item_metadata->set_value('2010-01-01');
|
||||
$this->assertTrue($item_metadata->validate());
|
||||
|
||||
$item_metadata->set_value('2010-12-01');
|
||||
$this->assertTrue($item_metadata->validate());
|
||||
|
||||
$item_metadata->set_value('2010-12-31');
|
||||
$this->assertTrue($item_metadata->validate());
|
||||
|
||||
$item_metadata->set_value('2010-22-01');
|
||||
$this->assertFalse($item_metadata->validate());
|
||||
|
||||
$item_metadata->set_value('3/3/1202');
|
||||
$this->assertFalse($item_metadata->validate());
|
||||
|
||||
$item_metadata->set_value('2010-02-30');
|
||||
$this->assertFalse($item_metadata->validate());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue