]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/protocol/activities/mod.rs
Cache & Optimize Woodpecker CI (#3450)
[lemmy.git] / crates / apub / src / protocol / activities / mod.rs
index 47b01b241d99611d713e5118c276c207b8f2d4d8..24095faba7148f0049d0d568526b63704235dd1c 100644 (file)
@@ -6,11 +6,81 @@ pub mod community;
 pub mod create_or_update;
 pub mod deletion;
 pub mod following;
-pub mod private_message;
 pub mod voting;
 
-#[derive(Clone, Debug, Display, Deserialize, Serialize, PartialEq)]
+#[derive(Clone, Debug, Display, Deserialize, Serialize, PartialEq, Eq)]
 pub enum CreateOrUpdateType {
   Create,
   Update,
 }
+
+#[cfg(test)]
+mod tests {
+  #![allow(clippy::unwrap_used)]
+  #![allow(clippy::indexing_slicing)]
+
+  use crate::protocol::{
+    activities::{
+      community::announce::AnnounceActivity,
+      create_or_update::{note::CreateOrUpdateNote, page::CreateOrUpdatePage},
+      deletion::delete::Delete,
+      following::{follow::Follow, undo_follow::UndoFollow},
+      voting::{undo_vote::UndoVote, vote::Vote},
+    },
+    tests::test_json,
+  };
+
+  #[test]
+  fn test_parse_smithereen_activities() {
+    test_json::<CreateOrUpdateNote>("assets/smithereen/activities/create_note.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_pleroma_activities() {
+    test_json::<CreateOrUpdateNote>("assets/pleroma/activities/create_note.json").unwrap();
+    test_json::<Delete>("assets/pleroma/activities/delete.json").unwrap();
+    test_json::<Follow>("assets/pleroma/activities/follow.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_mastodon_activities() {
+    test_json::<CreateOrUpdateNote>("assets/mastodon/activities/create_note.json").unwrap();
+    test_json::<Delete>("assets/mastodon/activities/delete.json").unwrap();
+    test_json::<Follow>("assets/mastodon/activities/follow.json").unwrap();
+    test_json::<UndoFollow>("assets/mastodon/activities/undo_follow.json").unwrap();
+    test_json::<Vote>("assets/mastodon/activities/like_page.json").unwrap();
+    test_json::<UndoVote>("assets/mastodon/activities/undo_like_page.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_lotide_activities() {
+    test_json::<Follow>("assets/lotide/activities/follow.json").unwrap();
+    test_json::<CreateOrUpdatePage>("assets/lotide/activities/create_page.json").unwrap();
+    test_json::<CreateOrUpdatePage>("assets/lotide/activities/create_page_image.json").unwrap();
+    test_json::<CreateOrUpdateNote>("assets/lotide/activities/create_note_reply.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_friendica_activities() {
+    test_json::<CreateOrUpdatePage>("assets/friendica/activities/create_page_1.json").unwrap();
+    test_json::<CreateOrUpdatePage>("assets/friendica/activities/create_page_2.json").unwrap();
+    test_json::<CreateOrUpdateNote>("assets/friendica/activities/create_note.json").unwrap();
+    test_json::<CreateOrUpdateNote>("assets/friendica/activities/update_note.json").unwrap();
+    test_json::<Delete>("assets/friendica/activities/delete.json").unwrap();
+    test_json::<Vote>("assets/friendica/activities/like_page.json").unwrap();
+    test_json::<Vote>("assets/friendica/activities/dislike_page.json").unwrap();
+    test_json::<UndoVote>("assets/friendica/activities/undo_dislike_page.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_gnusocial_activities() {
+    test_json::<CreateOrUpdatePage>("assets/gnusocial/activities/create_page.json").unwrap();
+    test_json::<CreateOrUpdateNote>("assets/gnusocial/activities/create_note.json").unwrap();
+    test_json::<Vote>("assets/gnusocial/activities/like_note.json").unwrap();
+  }
+
+  #[test]
+  fn test_parse_peertube_activities() {
+    test_json::<AnnounceActivity>("assets/peertube/activities/announce_video.json").unwrap();
+  }
+}