Modern Events Calendar (Lite) #66

Merged
linos merged 6 commits from mec into main 2024-10-18 13:54:54 +02:00
Showing only changes of commit 4c2e2c70c1 - Show all commits

View file

@ -76,4 +76,110 @@ class Test_Modern_Events_Calendar_Lite extends WP_UnitTestCase {
// Check that we got the right transformer.
$this->assertInstanceOf( \ActivityPub_Event_Bridge\Activitypub\Transformer\Modern_Events_Calendar_Lite::class, $transformer );
}
/**
* Test that the transformation of minimal event.
*/
public function test_modern_events_calendar_lite_minimal_event() {
$start_timestamp = strtotime( '+10 days 15:00:00' );
$end_timestamp = strtotime( '+10 days 16:00:00' );
// Insert a new Event.
$event = array(
'title' => 'MEC Test Event',
'status' => 'publish',
'content' => 'This is the content of the MEC!',
'start_time_hour' => gmdate( 'h', $start_timestamp ),
'start_time_minutes' => gmdate( 'i', $start_timestamp ),
'start_time_ampm' => gmdate( 'A', $start_timestamp ),
'start' => gmdate( 'Y-m-d', $start_timestamp ),
'end' => gmdate( 'Y-m-d', $end_timestamp ),
'end_time_hour' => gmdate( 'h', $end_timestamp ),
'end_time_minutes' => gmdate( 'i', $end_timestamp ),
'end_time_ampm' => gmdate( 'A', $end_timestamp ),
'repeat_status' => 0,
'repeat_type' => 'daily',
'interval' => 1,
);
$post_id = $this->mec_main->save_event( $event );
$wp_object = get_post( $post_id );
// Call the transformer to make the ActivityStreams representation of the event.
$event_array = \Activitypub\Transformer\Factory::get_transformer( $wp_object )->to_object()->to_array();
$this->assertEquals( 'Event', $event_array['type'] );
$this->assertEquals( 'MEC Test Event', $event_array['name'] );
$this->assertEquals( 'This is the content of the MEC!', wp_strip_all_tags( $event_array['content'] ) );
$this->assertEquals( gmdate( 'Y-m-d', strtotime( '+10 days 15:00:00' ) ) . 'T15:00:00Z', $event_array['startTime'] );
$this->assertEquals( gmdate( 'Y-m-d', strtotime( '+10 days 16:00:00' ) ) . 'T16:00:00Z', $event_array['endTime'] );
$this->assertTrue( $event_array['commentsEnabled'] );
$this->assertEquals( 'allow_all', $event_array['repliesModerationOption'] );
$this->assertEquals( 'external', $event_array['joinMode'] );
$this->assertEquals( get_permalink( $wp_object ), $event_array['externalParticipationUrl'] );
$this->assertArrayNotHasKey( 'location', $event_array );
$this->assertEquals( 'MEETING', $event_array['category'] );
}
/**
* Test that the transformation of minimal event.
*/
public function test_modern_events_calendar_lite_event_with_location() {
$start_timestamp = strtotime( '+10 days 15:00:00' );
$end_timestamp = strtotime( '+10 days 16:00:00' );
// Add new location.
$location = array(
'name' => 'MEC Location',
'latitude' => '52.356370',
'longitude' => '4.955760',
'address' => 'Stichting NLnet, Science Park 400, 1098 XH Amsterdam',
'url' => 'https://nlnet.nl/',
);
$location_id = $this->mec_main->save_location( $location );
// Insert a new Event.
$event = array(
'title' => 'MEC Test Event',
'status' => 'publish',
'content' => 'This is the content of the MEC!',
'start_time_hour' => gmdate( 'h', $start_timestamp ),
'start_time_minutes' => gmdate( 'i', $start_timestamp ),
'start_time_ampm' => gmdate( 'A', $start_timestamp ),
'start' => gmdate( 'Y-m-d', $start_timestamp ),
'end' => gmdate( 'Y-m-d', $end_timestamp ),
'end_time_hour' => gmdate( 'h', $end_timestamp ),
'end_time_minutes' => gmdate( 'i', $end_timestamp ),
'end_time_ampm' => gmdate( 'A', $end_timestamp ),
'repeat_status' => 0,
'repeat_type' => 'daily',
'interval' => 1,
'location_id' => $location_id,
);
$post_id = $this->mec_main->save_event( $event );
$wp_object = get_post( $post_id );
// Call the transformer to make the ActivityStreams representation of the event.
$event_array = \Activitypub\Transformer\Factory::get_transformer( $wp_object )->to_object()->to_array();
$this->assertEquals( 'Event', $event_array['type'] );
$this->assertEquals( 'MEC Test Event', $event_array['name'] );
$this->assertEquals( 'This is the content of the MEC!', wp_strip_all_tags( $event_array['content'] ) );
$this->assertEquals( gmdate( 'Y-m-d', strtotime( '+10 days 15:00:00' ) ) . 'T15:00:00Z', $event_array['startTime'] );
$this->assertEquals( gmdate( 'Y-m-d', strtotime( '+10 days 16:00:00' ) ) . 'T16:00:00Z', $event_array['endTime'] );
$this->assertTrue( $event_array['commentsEnabled'] );
$this->assertEquals( 'allow_all', $event_array['repliesModerationOption'] );
$this->assertEquals( 'external', $event_array['joinMode'] );
$this->assertEquals( get_permalink( $wp_object ), $event_array['externalParticipationUrl'] );
$this->assertArrayHasKey( 'location', $event_array );
$this->assertEquals( 'MEETING', $event_array['category'] );
$this->assertEquals( $location['address'], $event_array['location']['address'] );
$this->assertEquals( $location['name'], $event_array['location']['name'] );
$this->assertEquals( $location['latitude'], $event_array['location']['latitude'] );
$this->assertEquals( $location['longitude'], $event_array['location']['longitude'] );
}
}