94 lines
2.4 KiB
Rust
Raw Normal View History

2025-12-22 09:40:46 -08:00
mod api;
mod context;
mod conversation;
mod crypto;
2025-12-22 09:40:46 -08:00
mod errors;
mod identity;
2025-12-22 09:40:46 -08:00
mod inbox;
mod proto;
mod types;
mod utils;
2025-12-22 09:40:46 -08:00
pub use api::*;
#[cfg(test)]
mod tests {
use super::*;
use std::str::FromStr;
2025-12-22 09:40:46 -08:00
#[test]
fn test_ffi() {}
#[test]
fn test_invite_convo() {
let mut ctx = create_context();
let mut bundle = vec![0u8; 200];
2025-12-22 09:40:46 -08:00
let bundle_len = create_intro_bundle(&mut ctx, (&mut bundle[..]).into());
2025-12-22 09:40:46 -08:00
unsafe {
bundle.set_len(bundle_len as usize);
2025-12-22 09:40:46 -08:00
}
assert!(bundle_len > 0, "bundle failed: {}", bundle_len);
let content = b"Hello";
let result = create_new_private_convo(&mut ctx, bundle[..].into(), content[..].into());
assert!(result.error_code == 0, "Error: {}", result.error_code);
destroy_context(ctx);
}
#[test]
fn test_message_roundtrip() {
let mut saro = create_context();
let mut raya = create_context();
let mut raya_bundle = vec![0u8; 200];
let bundle_len = create_intro_bundle(&mut raya, (&mut raya_bundle[..]).into());
unsafe {
raya_bundle.set_len(bundle_len as usize);
}
assert!(bundle_len > 0, "bundle failed: {}", bundle_len);
let content = String::from_str("Hello").unwrap();
let result = create_new_private_convo(
&mut saro,
raya_bundle.as_slice().into(),
content.as_bytes().into(),
);
2025-12-22 09:40:46 -08:00
assert!(result.error_code == 0, "Error: {}", result.error_code);
2025-12-22 09:40:46 -08:00
// Handle payloads on raya's side
let mut conversation_id_out = vec![0u8; 256];
let mut conversation_id_out_len: u32 = 0;
let mut content_out = vec![0u8; 256];
2025-12-22 09:40:46 -08:00
for p in result.payloads.iter() {
let bytes_written = handle_payload(
&mut raya,
p.data[..].into(),
(&mut conversation_id_out[..]).into(),
(&mut conversation_id_out_len).into(),
(&mut content_out[..]).into(),
);
unsafe {
content_out.set_len(bytes_written as usize);
}
assert!(
bytes_written >= 0,
"handle_payload failed: {}",
bytes_written
);
//TODO: Verify output match
}
destroy_context(saro);
destroy_context(raya);
2025-12-22 09:40:46 -08:00
}
}