summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorjakka <jakka@jakka.su>2025-09-03 18:39:49 +0300
committerjakka <jakka@jakka.su>2025-09-03 18:39:49 +0300
commit15ce5bcc920c9d38bf11f881044f39a16c7827d7 (patch)
tree0c211638cda23c3bf81bdfe15fdf78ac9af74e4e /src/lib.rs
parent4fea2cd5da7eb7e710ad960d51b4d26d1e49f6e3 (diff)
started working on api impl
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..50e4c25
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,41 @@
+pub mod client;
+
+#[cfg(test)]
+mod tests {
+ use serde_json::json;
+
+ use crate::client::HydrusPermissions;
+
+ use super::*;
+
+ #[test]
+ fn correct_permissions_number() {
+ assert_eq!(HydrusPermissions::ImportAndEditURLs as u8, 0);
+ assert_eq!(HydrusPermissions::ImportAndEditFiles as u8, 1);
+ assert_eq!(HydrusPermissions::EditFileTags as u8, 2);
+ assert_eq!(HydrusPermissions::SearchAndFetchFiles as u8, 3);
+ assert_eq!(HydrusPermissions::ManagePages as u8, 4);
+ assert_eq!(HydrusPermissions::ManageCookiesAndHeaders as u8, 5);
+ assert_eq!(HydrusPermissions::ManageDatabase as u8, 6);
+ assert_eq!(HydrusPermissions::EditFileNotes as u8, 7);
+ assert_eq!(HydrusPermissions::EditFileRelationships as u8, 8);
+ assert_eq!(HydrusPermissions::EditFileRatings as u8, 9);
+ assert_eq!(HydrusPermissions::ManagePopups as u8, 10);
+ assert_eq!(HydrusPermissions::EditFileTimes as u8, 11);
+ assert_eq!(HydrusPermissions::CommitPending as u8, 12);
+ assert_eq!(HydrusPermissions::SeeLocalPaths as u8, 13);
+ }
+
+ #[test]
+ fn correct_url_encode() {
+ let perms: [HydrusPermissions; 3] = [
+ HydrusPermissions::ImportAndEditURLs,
+ HydrusPermissions::ImportAndEditFiles,
+ HydrusPermissions::SeeLocalPaths,
+ ];
+ let json_string = serde_json::to_string(&json!(perms)).unwrap();
+ let encoded = urlencoding::encode(&json_string);
+
+ assert_eq!(encoded, "%5B0%2C1%2C13%5D")
+ }
+}