From 5dc058a787b3e83282b6110e5aa0370d9d257489 Mon Sep 17 00:00:00 2001 From: Leo Germani Date: Fri, 13 Sep 2019 19:25:42 -0300 Subject: [PATCH] Clear tests #261 --- .../text/class-tainacan-text.php | 2 +- .../repositories/class-tainacan-logs.php | 37 +--- tests/_test-api-item-metadata.php | 59 ++++++ tests/_test-logs.php | 21 ++ tests/test-api-item-metadata.php | 188 ------------------ tests/test-api-items.php | 9 +- tests/test-collections.php | 28 --- tests/test-logs.php | 72 ------- 8 files changed, 96 insertions(+), 320 deletions(-) create mode 100644 tests/_test-api-item-metadata.php create mode 100644 tests/_test-logs.php delete mode 100644 tests/test-api-item-metadata.php delete mode 100644 tests/test-logs.php diff --git a/src/classes/metadata-types/text/class-tainacan-text.php b/src/classes/metadata-types/text/class-tainacan-text.php index 31e3d2390..552da64a7 100644 --- a/src/classes/metadata-types/text/class-tainacan-text.php +++ b/src/classes/metadata-types/text/class-tainacan-text.php @@ -45,7 +45,7 @@ class Text extends Metadata_Type { public function get_value_as_html(\Tainacan\Entities\Item_Metadata_Entity $item_metadata) { $value = $item_metadata->get_value(); $return = ''; - if ( $item_metadata->is_multiple() ) { + if ( is_array($value) && $item_metadata->is_multiple() ) { $total = sizeof($value); $count = 0; $prefix = $item_metadata->get_multivalue_prefix(); diff --git a/src/classes/repositories/class-tainacan-logs.php b/src/classes/repositories/class-tainacan-logs.php index 2729a0057..08dd193af 100644 --- a/src/classes/repositories/class-tainacan-logs.php +++ b/src/classes/repositories/class-tainacan-logs.php @@ -386,12 +386,17 @@ class Logs extends Repository { $creating = true; - if ( $unsaved instanceof Entities\Term ) { - $old = $unsaved->get_repository()->fetch( $unsaved->get_id(), $unsaved->get_taxonomy() ); - } else { - $old = $unsaved->get_repository()->fetch( $unsaved->get_id() ); + $old = null; + + if ( is_numeric( $unsaved->get_id() ) ) { + if ( $unsaved instanceof Entities\Term ) { + $old = $unsaved->get_repository()->fetch( $unsaved->get_id(), $unsaved->get_taxonomy() ); + } else { + $old = $unsaved->get_repository()->fetch( $unsaved->get_id() ); + } } + if ( $old instanceof Entities\Entity ) { if ( $old->get_status() !== 'auto-draft' ) { @@ -732,28 +737,4 @@ class Logs extends Repository { } - /** - * - * @param Entities\Log $log - * - * @return Entities\Entity|boolean return insert/update valeu or false - * @throws \Exception - */ - public function approve( $log ) { - $log = self::get_entity_by_post( $log ); - if ( $log->get_status() == 'pending' ) { - /** @var Entity $value * */ - $value = $log->get_value(); - - $value->set_status( 'publish' ); // TODO check if publish the entity on approve - - $repository = self::get_repository( $value ); - - if ( $value->validate() ) { - return $repository->insert( $value ); - } - } - - return false; - } } \ No newline at end of file diff --git a/tests/_test-api-item-metadata.php b/tests/_test-api-item-metadata.php new file mode 100644 index 000000000..0cf82f4ff --- /dev/null +++ b/tests/_test-api-item-metadata.php @@ -0,0 +1,59 @@ +tainacan_entity_factory->create_entity( + 'collection', + array( + 'name' => 'testeItemMetadata', + 'description' => 'No description', + ), + true, + true + ); + + $type = $this->tainacan_metadatum_factory->create_metadatum('text'); + + $metadatum = $this->tainacan_entity_factory->create_entity( + 'metadatum', + array( + 'name' => 'teste_metadado', + 'description' => 'descricao', + 'collection' => $collection, + 'metadata_type' => $type, + 'accept_suggestion' => true + ), + true, + true + ); + + $item = $this->tainacan_entity_factory->create_entity( + 'item', + array( + 'title' => 'item_teste_metadado', + 'description' => 'adasdasdsa', + 'collection' => $collection + ), + true, + true + ); + $this->collection = $collection; + $this->item = $item; + $this->metadatum = $metadatum; + return ['collection' => $collection, 'item' => $item, 'metadatum' => $metadatum]; + } + + + +} + +?> \ No newline at end of file diff --git a/tests/_test-logs.php b/tests/_test-logs.php new file mode 100644 index 000000000..aab578492 --- /dev/null +++ b/tests/_test-logs.php @@ -0,0 +1,21 @@ +tainacan_entity_factory->create_entity( - 'collection', - array( - 'name' => 'testeItemMetadata', - 'description' => 'No description', - ), - true, - true - ); - - $type = $this->tainacan_metadatum_factory->create_metadatum('text'); - - $metadatum = $this->tainacan_entity_factory->create_entity( - 'metadatum', - array( - 'name' => 'teste_metadado', - 'description' => 'descricao', - 'collection' => $collection, - 'metadata_type' => $type, - 'accept_suggestion' => true - ), - true, - true - ); - - $item = $this->tainacan_entity_factory->create_entity( - 'item', - array( - 'title' => 'item_teste_metadado', - 'description' => 'adasdasdsa', - 'collection' => $collection - ), - true, - true - ); - $this->collection = $collection; - $this->item = $item; - $this->metadatum = $metadatum; - return ['collection' => $collection, 'item' => $item, 'metadatum' => $metadatum]; - } - - public function test_create_suggestion_item_metadata_in_a_collection(){ - - extract($this->create_meta_requirements()); - - $item__metadata_json = json_encode([ - 'values' => 'TestValues_metadado', - ]); - - $request = new \WP_REST_Request('POST', $this->namespace . '/item/' . $item->get_id() . '/metadata/' . $metadatum->get_id() ); - $request->set_body($item__metadata_json); - - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - - $data = $response->get_data(); - - $this->assertEquals($item->get_id() , $data['item']['id']); - $this->assertEquals('TestValues_metadado', $data['value']); - - $request = new \WP_REST_Request('GET', $this->namespace . '/item/' . $item->get_id() . '/metadata/'. $metadatum->get_id() ); - $response = $this->server->dispatch($request); - $this->assertEquals(200, $response->get_status()); - $data = $response->get_data(); - $this->assertEquals( 'TestValues_metadado', $data['value'] ); - - // Test Suggestion - $new_user = $this->factory()->user->create(array( 'role' => 'subscriber' )); - wp_set_current_user($new_user); - - $item__metadata_json = json_encode([ - 'values' => 'TestValuesSuggestion_metadado', - ]); - - $request = new \WP_REST_Request('POST', $this->namespace . '/item/' . $item->get_id() . '/metadata/' . $metadatum->get_id() ); - $request->set_body($item__metadata_json); - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - $data = $response->get_data(); - $this->assertEquals( 'pending', $data['status'] ); - $Tainacan_Logs = \Tainacan\Repositories\Logs::get_instance(); - $query = $Tainacan_Logs->fetch(['post_status' => 'pending']); - - $log = false; - while ($query->have_posts()) { - $query->the_post(); - $post = get_post(); - $log = $Tainacan_Logs->get_entity_by_post($post); - } - - $pending = $log->get_value(); - - $this->assertEquals('TestValuesSuggestion_metadado', $pending->get_value()); - - wp_set_current_user($this->user_id); - - $request = new \WP_REST_Request('POST', $this->namespace . '/logs/' . $log->get_id() . '/approve' ); - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - - $request = new \WP_REST_Request('GET', $this->namespace . '/item/' . $item->get_id() . '/metadata/'. $metadatum->get_id() ); - $response = $this->server->dispatch($request); - $this->assertEquals(200, $response->get_status()); - $data = $response->get_data(); - $this->assertEquals( 'TestValuesSuggestion_metadado', $data['value'] ); - - } - - function test_create_anonymous_suggestion_item_metadata_in_a_collection() { - extract($this->create_meta_requirements()); - - $item__metadata_json = json_encode([ - 'values' => 'TestValues_metadado', - ]); - - $request = new \WP_REST_Request('POST', $this->namespace . '/item/' . $item->get_id() . '/metadata/' . $metadatum->get_id() ); - $request->set_body($item__metadata_json); - - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - - // Test Anonymous Suggestion - wp_logout(); - wp_set_current_user(0); - - $this->assertEquals(0, get_current_user_id()); - - $item__metadata_json = json_encode([ - 'values' => 'TestValuesAnonymousSuggestion_metadado', - ]); - - $request = new \WP_REST_Request('POST', $this->namespace . '/item/' . $item->get_id() . '/metadata/' . $metadatum->get_id() ); - $request->set_body($item__metadata_json); - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - $data = $response->get_data(); - $this->assertEquals( 'pending', $data['status'] ); - $Tainacan_Logs = \Tainacan\Repositories\Logs::get_instance(); - $query = $Tainacan_Logs->fetch(['post_status' => 'pending']); - - $log = false; - while ($query->have_posts()) { - $query->the_post(); - $post = get_post(); - $log = $Tainacan_Logs->get_entity_by_post($post); - } - - $pending = $log->get_value(); - - $this->assertEquals('TestValuesAnonymousSuggestion_metadado', $pending->get_value()); - - wp_set_current_user($this->user_id); - - $request = new \WP_REST_Request('POST', $this->namespace . '/logs/' . $log->get_id() . '/approve' ); - $response = $this->server->dispatch($request); - - $this->assertEquals(200, $response->get_status()); - - $request = new \WP_REST_Request('GET', $this->namespace . '/item/' . $item->get_id() . '/metadata/'. $metadatum->get_id() ); - $response = $this->server->dispatch($request); - $this->assertEquals(200, $response->get_status()); - $data = $response->get_data(); - $this->assertEquals( 'TestValuesAnonymousSuggestion_metadado', $data['value'] ); - - } - - -} - -?> \ No newline at end of file diff --git a/tests/test-api-items.php b/tests/test-api-items.php index f9a1f93c2..a4ec553ea 100644 --- a/tests/test-api-items.php +++ b/tests/test-api-items.php @@ -72,7 +72,6 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase { $this->assertEquals(200, $response->get_status()); $data = $response->get_data()['items']; - $items_titles = [$data[0]['title'], $data[1]['title']]; $this->assertContains($item1->get_title(), $items_titles); @@ -155,7 +154,11 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase { } public function test_update_item(){ - $collection = $this->tainacan_entity_factory->create_entity('collection', '', true); + $collection = $this->tainacan_entity_factory->create_entity('collection', array( + 'name' => 'Agile', + 'description' => 'Agile methods', + 'status' => 'publish' + ), true); $item = $this->tainacan_entity_factory->create_entity( 'item', @@ -163,6 +166,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase { 'title' => 'SCRUM e PMBOK', 'description' => 'Unidos no Gerenciamento de Projetos', 'collection' => $collection, + 'status' => 'publish' ), true ); @@ -181,7 +185,6 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase { $response = $this->server->dispatch($request); $data = $response->get_data(); - $this->assertNotEquals($item->get_title(), $data['title']); $this->assertEquals('SCRUM e XP', $data['title']); } diff --git a/tests/test-collections.php b/tests/test-collections.php index 1cc82dc6b..7e4b3e99f 100644 --- a/tests/test-collections.php +++ b/tests/test-collections.php @@ -318,34 +318,6 @@ class Collections extends TAINACAN_UnitTestCase { $this->assertTrue(has_action('init', array($Tainacan_Collections, 'register_post_type')) !== false, 'Collections Init is not registred!'); } - /** - * @group diff - */ - function test_diff() { - $x = $this->tainacan_entity_factory->create_entity( - 'collection', - array( - 'name' => 'testeDiff', - 'description' => 'adasdasdsa', - 'default_order' => 'DESC', - 'moderators_ids' => [1,2,3] - ), - true - ); - - $x->set_name('OtherValue'); - $x->set_description('testeDiff2'); - $x->set_moderators_ids([3,4,5]); - - $diff = $x->diff(); - $this->assertEquals(3, count($diff)); - $this->assertEquals($diff['name']['new'][0], 'OtherValue'); - $this->assertEquals($diff['name']['old'], 'testeDiff'); - $this->assertEquals($diff['description']['new'][0], 'testeDiff2'); - $this->assertEquals($diff['description']['old'], 'adasdasdsa'); - $this->assertEquals([1 => 4, 2 => 5, 0 => 3], $diff['moderators_ids']['diff_with_index']); - - } function test_create_child_collection() { diff --git a/tests/test-logs.php b/tests/test-logs.php deleted file mode 100644 index 695a3143e..000000000 --- a/tests/test-logs.php +++ /dev/null @@ -1,72 +0,0 @@ -tainacan_entity_factory->create_entity( - 'log', - array( - 'title' => 'blame someone', - 'description' => 'someone did that' - ), - true - ); - - $user_id = get_current_user_id(); - $blog_id = get_current_blog_id(); - - //retorna a taxonomia - $test = $Tainacan_Logs->fetch( $log->get_id() ); - - $this->assertEquals( 'blame someone', $test->get_title() ); - $this->assertEquals( 'someone did that', $test->get_description() ); - $this->assertEquals( $user_id, $test->get_user_id() ); - $this->assertEquals( $blog_id, $test->get_blog_id() ); - } - - public function test_log_diff() { - $Tainacan_Logs = \Tainacan\Repositories\Logs::get_instance(); - $Tainacan_Filters = \Tainacan\Repositories\Filters::get_instance(); - - $filter = $this->tainacan_entity_factory->create_entity( - 'filter', - array( - 'name' => 'No name', - ), - true - ); - - // Modify filter name - $filter->set_name( 'With name' ); - - $Tainacan_Filters->update( $filter ); - - $log = $Tainacan_Logs->fetch_last(); - - $diff = $log->get_log_diffs(); - - $this->assertEquals( 'With name', "{$diff['name']['new'][0]} {$diff['name']['new'][1]}" ); - $this->assertEquals( 'No name', $diff['name']['old'] ); - $this->assertEquals( 'With', $diff['name']['diff_with_index'][0] ); - } -} \ No newline at end of file