Add tests for crate exports ; add structure to imports/exports

This commit is contained in:
xmppftw xmppftw 2024-12-18 17:59:06 +01:00 committed by Link Mauve
commit 7991cef904
7 changed files with 77 additions and 32 deletions

View file

@ -65,9 +65,9 @@ use quote::{quote, ToTokens};
use minidom::{IntoAttributeValue, Node};
mod error;
pub use crate::error::Error;
mod parts;
pub use crate::error::Error;
pub use parts::{DomainPart, DomainRef, NodePart, NodeRef, ResourcePart, ResourceRef};
fn length_check(len: usize, error_empty: Error, error_too_long: Error) -> Result<(), Error> {

View file

@ -293,3 +293,22 @@ pub mod fast;
/// XEP-0490: Message Displayed Synchronization
pub mod message_displayed;
#[cfg(test)]
mod tests {
#[test]
fn reexports() {
#[allow(unused_imports)]
use crate::blake2;
#[allow(unused_imports)]
use crate::jid;
#[allow(unused_imports)]
use crate::minidom;
#[allow(unused_imports)]
use crate::sha1;
#[allow(unused_imports)]
use crate::sha2;
#[allow(unused_imports)]
use crate::sha3;
}
}

View file

@ -26,7 +26,6 @@ pin-project-lite = { version = "0.2" }
# same repository dependencies
sasl = { version = "0.5", path = "../sasl" }
xmpp-parsers = { version = "0.21", path = "../parsers" }
minidom = { version = "0.16", path = "../minidom" }
xso = { version = "0.1", path = "../xso" }
# these are only needed for starttls ServerConnector support

View file

@ -1,8 +1,11 @@
use futures::{SinkExt, StreamExt};
use tokio::{self, io, net::TcpSocket};
use tokio_xmpp::parsers::stream_features::StreamFeatures;
use tokio_xmpp::xmlstream::{accept_stream, StreamHeader, Timeouts};
use tokio_xmpp::{
minidom::Element,
parsers::stream_features::StreamFeatures,
xmlstream::{accept_stream, StreamHeader, Timeouts},
};
#[tokio::main]
async fn main() -> Result<(), io::Error> {
@ -24,7 +27,7 @@ async fn main() -> Result<(), io::Error> {
.await?;
let stream = stream.send_header(StreamHeader::default()).await?;
let mut stream = stream
.send_features::<minidom::Element>(&StreamFeatures::default())
.send_features::<Element>(&StreamFeatures::default())
.await?;
tokio::spawn(async move {

View file

@ -9,10 +9,10 @@ use std::io::Error as IoError;
use std::net::AddrParseError;
use std::str::Utf8Error;
use xmpp_parsers::sasl::DefinedCondition as SaslDefinedCondition;
use xmpp_parsers::{jid::Error as JidParseError, Error as ParsersError};
use crate::connect::ServerConnectorError;
use crate::{
connect::ServerConnectorError, jid, minidom,
parsers::sasl::DefinedCondition as SaslDefinedCondition,
};
/// Top-level error type
#[derive(Debug)]
@ -20,7 +20,7 @@ pub enum Error {
/// I/O error
Io(IoError),
/// Error parsing Jabber-Id
JidParse(JidParseError),
JidParse(jid::Error),
/// Protocol-level error
Protocol(ProtocolError),
/// Authentication error
@ -86,8 +86,8 @@ impl<T: ServerConnectorError + 'static> From<T> for Error {
}
}
impl From<JidParseError> for Error {
fn from(e: JidParseError) -> Self {
impl From<jid::Error> for Error {
fn from(e: jid::Error) -> Self {
Error::JidParse(e)
}
}
@ -149,7 +149,7 @@ pub enum ProtocolError {
/// XML parser error
Parser(minidom::Error),
/// Error with expected stanza schema
Parsers(ParsersError),
Parsers(xso::error::Error),
/// No TLS available
NoTls,
/// Invalid response to resource binding
@ -197,8 +197,8 @@ impl From<minidom::Error> for Error {
}
}
impl From<ParsersError> for ProtocolError {
fn from(e: ParsersError) -> Self {
impl From<xso::error::Error> for ProtocolError {
fn from(e: xso::error::Error) -> Self {
ProtocolError::Parsers(e)
}
}

View file

@ -46,28 +46,36 @@ compile_error!(
"when starttls feature enabled one of tls-native and tls-rust features must be enabled."
);
mod event;
pub use event::{Event, Stanza};
pub mod connect;
pub mod stanzastream;
pub mod xmlstream;
pub use parsers::{jid, minidom};
pub use xmpp_parsers as parsers;
mod client;
pub use client::Client;
#[cfg(feature = "insecure-tcp")]
mod component;
#[cfg(feature = "insecure-tcp")]
pub use crate::component::Component;
pub mod connect;
/// Detailed error types
pub mod error;
mod event;
pub mod stanzastream;
pub mod xmlstream;
#[doc(inline)]
/// Generic tokio_xmpp Error
pub use crate::error::Error;
pub use client::Client;
#[cfg(feature = "insecure-tcp")]
pub use component::Component;
pub use event::{Event, Stanza};
// Re-exports
pub use minidom;
pub use xmpp_parsers as parsers;
pub use xmpp_parsers::jid;
#[cfg(test)]
mod tests {
#[test]
fn reexports() {
#[allow(unused_imports)]
use crate::jid;
#[allow(unused_imports)]
use crate::minidom;
#[allow(unused_imports)]
use crate::parsers;
}
}

View file

@ -8,13 +8,15 @@
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
pub use tokio_xmpp;
pub use tokio_xmpp::jid::{ResourcePart, ResourceRef};
pub use tokio_xmpp::jid;
pub use tokio_xmpp::minidom;
pub use tokio_xmpp::parsers;
#[macro_use]
extern crate log;
use core::fmt;
use jid::{ResourcePart, ResourceRef};
pub mod agent;
pub mod builder;
@ -30,7 +32,6 @@ pub mod presence;
pub mod pubsub;
pub mod upload;
// Module re-exports
pub use agent::Agent;
pub use builder::{ClientBuilder, ClientType};
pub use event::Event;
@ -76,6 +77,21 @@ impl fmt::Display for RoomNick {
}
}
#[cfg(test)]
mod tests {
#[test]
fn reexports() {
#[allow(unused_imports)]
use crate::jid;
#[allow(unused_imports)]
use crate::minidom;
#[allow(unused_imports)]
use crate::parsers;
#[allow(unused_imports)]
use crate::tokio_xmpp;
}
}
// The test below is dysfunctional since we have moved to StanzaStream. The
// StanzaStream will attempt to connect to foo@bar indefinitely.
// Keeping it here as inspiration for future integration tests.