From 62abad4839540213082e05bc616b3f7af90083b3 Mon Sep 17 00:00:00 2001 From: Rodrigo de Oliveira Date: Mon, 5 Apr 2021 13:37:15 -0300 Subject: [PATCH] adds html tests for date meta --- .../class-tainacan-item-metadata-entity.php | 6 +- .../date/class-tainacan-date.php | 2 +- tests/test-bgprocess.php | 6 -- tests/test-category-metadatum-types.php | 3 - tests/test-item-metadata.php | 66 ++++++++++++++++++- 5 files changed, 67 insertions(+), 16 deletions(-) diff --git a/src/classes/entities/class-tainacan-item-metadata-entity.php b/src/classes/entities/class-tainacan-item-metadata-entity.php index 8b215f01d..264eb3cf0 100644 --- a/src/classes/entities/class-tainacan-item-metadata-entity.php +++ b/src/classes/entities/class-tainacan-item-metadata-entity.php @@ -136,7 +136,7 @@ class Item_Metadata_Entity extends Entity { * Get the value as a HTML string, with markup and links * @return string */ - public function get_value_as_html(){ + public function get_value_as_html() { $metadatum = $this->get_metadatum(); if (is_object($metadatum)) { @@ -153,7 +153,6 @@ class Item_Metadata_Entity extends Entity { $return = ''; if ( $this->is_multiple() ) { - $total = sizeof($value); $count = 0; $prefix = $this->get_multivalue_prefix(); @@ -162,11 +161,8 @@ class Item_Metadata_Entity extends Entity { foreach ($value as $v) { $return .= $prefix; - $return .= (string) $v; - $return .= $suffix; - $count ++; if ($count < $total) $return .= $separator; diff --git a/src/views/admin/components/metadata-types/date/class-tainacan-date.php b/src/views/admin/components/metadata-types/date/class-tainacan-date.php index a842c27f8..6e0247fb5 100644 --- a/src/views/admin/components/metadata-types/date/class-tainacan-date.php +++ b/src/views/admin/components/metadata-types/date/class-tainacan-date.php @@ -11,7 +11,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Date extends Metadata_Type { - function __construct(){ + function __construct() { // call metadatum type constructor parent::__construct(); $this->set_primitive_type('date'); diff --git a/tests/test-bgprocess.php b/tests/test-bgprocess.php index 91f8ac3d7..a70298a99 100644 --- a/tests/test-bgprocess.php +++ b/tests/test-bgprocess.php @@ -16,12 +16,10 @@ use Tainacan\Entities; class BGProcess extends TAINACAN_UnitApiTestCase { function test_table() { - global $wpdb; $table_name = $wpdb->prefix . 'tnc_bg_process'; - $table_exists = $wpdb->get_var( "SHOW TABLES LIKE '".$table_name."'" ); $this->assertNotEquals(null, $table_exists); @@ -29,10 +27,6 @@ class BGProcess extends TAINACAN_UnitApiTestCase { $column_exists = $wpdb->get_var( "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{$wpdb->prefix}tnc_bg_process' AND column_name = 'output'" ); $this->assertEquals('output', $column_exists, 'BG processes table misconfigured'); - } - - - } \ No newline at end of file diff --git a/tests/test-category-metadatum-types.php b/tests/test-category-metadatum-types.php index 8ace43b58..b0de80955 100644 --- a/tests/test-category-metadatum-types.php +++ b/tests/test-category-metadatum-types.php @@ -794,9 +794,6 @@ class TaxonomyMetadatumTypes extends TAINACAN_UnitTestCase { $checkMeta = $Tainacan_Metadata->fetch( $metadatum->get_id() ); $this->assertEquals('no', $checkMeta->get_metadata_type_options()['allow_new_terms']); - - - } } diff --git a/tests/test-item-metadata.php b/tests/test-item-metadata.php index fa5c98e3f..7c50ff4e2 100644 --- a/tests/test-item-metadata.php +++ b/tests/test-item-metadata.php @@ -3,7 +3,7 @@ namespace Tainacan\Tests; /** - * Class TestCollections + * Class Item_Metadata * * @package Test_Tainacan */ @@ -406,6 +406,8 @@ class Item_Metadata extends TAINACAN_UnitTestCase { ), true ); + + // Simple numeric metadata $metadatum_numeric = $this->tainacan_entity_factory->create_entity( 'metadatum', array( @@ -418,6 +420,7 @@ class Item_Metadata extends TAINACAN_UnitTestCase { true ); + // Multiple numeric metadata $metadatum_numeric_multiple = $this->tainacan_entity_factory->create_entity( 'metadatum', array( @@ -441,4 +444,65 @@ class Item_Metadata extends TAINACAN_UnitTestCase { $item_metadata_numeric_mult->validate(); $this->assertEquals($item_metadata_numeric_mult->get_value_as_html(), '10 | 22 | 4'); } + + function test_metadata_date_html() { + $collection = $this->tainacan_entity_factory->create_entity('collection', ['name' => 'My Collection'], true); + $item = $this->tainacan_entity_factory->create_entity( + 'item', + array( + 'title' => 'My test item', + 'description' => 'item description', + 'collection' => $collection, + 'status' => 'publish' + ), + true + ); + + // Simple date metadata + $metadatum_date = $this->tainacan_entity_factory->create_entity( + 'metadatum', + array( + 'name' => 'Date important meta', + 'description' => 'and its description', + 'collection_id' => $collection->get_id(), + 'metadata_type' => 'Tainacan\Metadata_Types\Date', + 'status' => 'publish' + ), + true + ); + + // Multiple date metadata + $metadatum_date_multiple = $this->tainacan_entity_factory->create_entity( + 'metadatum', + array( + 'name' => 'Date meta', + 'description' => 'and its description', + 'collection_id' => $collection->get_id(), + 'metadata_type' => 'Tainacan\Metadata_Types\Date', + 'status' => 'publish', + 'multiple' => 'yes' + ), + true + ); + + $item_metadata_date = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadatum_date); + // Invalid date value + $item_metadata_date->set_value(10); + $item_metadata_date->validate(); + $this->assertFalse($item_metadata_date->get_value_as_html()); + + $item_metadata_date->set_value("2021-04-05"); + $item_metadata_date->validate(); + $this->assertEquals($item_metadata_date->get_value_as_html(), "April 5, 2021"); + + $item_metadata_date_mult = new \Tainacan\Entities\Item_Metadata_Entity($item, $metadatum_date_multiple); + // Invalid date values + $item_metadata_date_mult->set_value([10,22,4]); + $item_metadata_date_mult->validate(); + $this->assertEquals($item_metadata_date_mult->get_value_as_html(), ' | | '); + + $item_metadata_date_mult->set_value(["2021-04-05", "2021-12-30"]); + $item_metadata_date_mult->validate(); + $this->assertEquals($item_metadata_date_mult->get_value_as_html(), 'April 5, 2021 | December 30, 2021'); + } } \ No newline at end of file