base: Move some test that use the async client out of the base.
parent
8a4cca3a85
commit
a4f5a93880
|
@ -1164,8 +1164,9 @@ mod test {
|
|||
ban_user, create_receipt, create_typing_event, forget_room, invite_user, kick_user,
|
||||
leave_room,
|
||||
};
|
||||
use super::{AsyncClient, Session, Url};
|
||||
use super::{AsyncClient, Session, SyncSettings, Url};
|
||||
use crate::events::collections::all::RoomEvent;
|
||||
use crate::events::room::member::MembershipState;
|
||||
use crate::identifiers::{EventId, RoomId, UserId};
|
||||
|
||||
use crate::test_builder::EventBuilder;
|
||||
|
@ -1173,6 +1174,36 @@ mod test {
|
|||
use mockito::{mock, Matcher};
|
||||
use std::convert::TryFrom;
|
||||
use std::str::FromStr;
|
||||
use std::time::Duration;
|
||||
|
||||
#[tokio::test]
|
||||
async fn account_data() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:example.com").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
|
||||
let _m = mock(
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
)
|
||||
.with_status(200)
|
||||
.with_body_from_file("../test_data/sync.json")
|
||||
.create();
|
||||
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
|
||||
let bc = &client.base_client;
|
||||
let ignored_users = bc.ignored_users.read().await;
|
||||
assert_eq!(1, ignored_users.len())
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn client_runner() {
|
||||
|
@ -1540,4 +1571,69 @@ mod test {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn user_presence() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:localhost").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
|
||||
let _m = mock(
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
)
|
||||
.with_status(200)
|
||||
.with_body_from_file("../test_data/sync.json")
|
||||
.create();
|
||||
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
|
||||
let rooms_lock = &client.base_client.joined_rooms();
|
||||
let rooms = rooms_lock.read().await;
|
||||
let room = &rooms
|
||||
.get(&RoomId::try_from("!SVkFJHzfwvuaIEawgC:localhost").unwrap())
|
||||
.unwrap()
|
||||
.read()
|
||||
.await;
|
||||
|
||||
assert_eq!(2, room.members.len());
|
||||
for member in room.members.values() {
|
||||
assert_eq!(MembershipState::Join, member.membership);
|
||||
}
|
||||
|
||||
assert!(room.power_levels.is_some())
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn calculate_room_names_from_summary() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let mut bld = EventBuilder::default().build_with_response(
|
||||
// this sync has no room.name or room.alias events so only relies on summary
|
||||
"../test_data/sync_with_summary.json",
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
);
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:localhost").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
let client = bld.set_client(client).to_client().await.unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
|
||||
assert_eq!(vec!["example, example2"], client.get_room_names().await);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -918,46 +918,3 @@ impl Client {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
|
||||
use crate::identifiers::UserId;
|
||||
use crate::{AsyncClient, Session, SyncSettings};
|
||||
|
||||
use mockito::{mock, Matcher};
|
||||
use url::Url;
|
||||
|
||||
use std::convert::TryFrom;
|
||||
use std::str::FromStr;
|
||||
use std::time::Duration;
|
||||
|
||||
#[tokio::test]
|
||||
async fn account_data() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:example.com").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
|
||||
let _m = mock(
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
)
|
||||
.with_status(200)
|
||||
.with_body_from_file("../test_data/sync.json")
|
||||
.create();
|
||||
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
|
||||
let bc = &client.base_client;
|
||||
let ignored_users = bc.ignored_users.read().await;
|
||||
assert_eq!(1, ignored_users.len())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,3 @@ mod room_member;
|
|||
|
||||
pub use room::{Room, RoomName};
|
||||
pub use room_member::RoomMember;
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub type Token = String;
|
||||
|
|
|
@ -237,7 +237,7 @@ impl Room {
|
|||
}
|
||||
|
||||
/// Return the display name of the room.
|
||||
pub fn calculate_name(&self) -> String {
|
||||
pub fn display_name(&self) -> String {
|
||||
self.room_name.calculate_name(&self.members)
|
||||
}
|
||||
|
||||
|
@ -490,44 +490,42 @@ impl Room {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::api::r0::sync::sync_events::Response as SyncResponse;
|
||||
use crate::events::room::member::MembershipState;
|
||||
use crate::identifiers::UserId;
|
||||
use crate::test_builder::EventBuilder;
|
||||
use crate::{AsyncClient, Session, SyncSettings};
|
||||
use crate::{Client, Session};
|
||||
|
||||
use mockito::{mock, Matcher};
|
||||
use url::Url;
|
||||
use http::Response;
|
||||
|
||||
use std::convert::TryFrom;
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
use std::ops::Deref;
|
||||
use std::str::FromStr;
|
||||
use std::time::Duration;
|
||||
|
||||
fn sync_response(file: &str) -> SyncResponse {
|
||||
let mut file = File::open(file).unwrap();
|
||||
let mut data = vec![];
|
||||
file.read_to_end(&mut data).unwrap();
|
||||
let response = Response::builder().body(data).unwrap();
|
||||
SyncResponse::try_from(response).unwrap()
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn user_presence() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:localhost").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
|
||||
let _m = mock(
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
)
|
||||
.with_status(200)
|
||||
.with_body_from_file("../test_data/sync.json")
|
||||
.create();
|
||||
let mut response = sync_response("../test_data/sync.json");
|
||||
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
let client = Client::new(Some(session)).unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
client.receive_sync_response(&mut response).await.unwrap();
|
||||
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
|
||||
let rooms_lock = &client.base_client.joined_rooms();
|
||||
let rooms_lock = &client.joined_rooms();
|
||||
let rooms = rooms_lock.read().await;
|
||||
let room = &rooms
|
||||
.get(&RoomId::try_from("!SVkFJHzfwvuaIEawgC:localhost").unwrap())
|
||||
|
@ -585,7 +583,7 @@ mod test {
|
|||
|
||||
let room = bld.to_room();
|
||||
|
||||
assert_eq!("tutorial", room.calculate_name());
|
||||
assert_eq!("tutorial", room.display_name());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -602,7 +600,7 @@ mod test {
|
|||
|
||||
let room = bld.to_room();
|
||||
|
||||
assert_eq!("tutorial", room.calculate_name());
|
||||
assert_eq!("tutorial", room.display_name());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -616,31 +614,27 @@ mod test {
|
|||
|
||||
let room = bld.to_room();
|
||||
|
||||
assert_eq!("room name", room.calculate_name());
|
||||
assert_eq!("room name", room.display_name());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn calculate_room_names_from_summary() {
|
||||
let homeserver = Url::from_str(&mockito::server_url()).unwrap();
|
||||
|
||||
let mut bld = EventBuilder::default().build_with_response(
|
||||
// this sync has no room.name or room.alias events so only relies on summary
|
||||
"../test_data/sync_with_summary.json",
|
||||
"GET",
|
||||
Matcher::Regex(r"^/_matrix/client/r0/sync\?.*$".to_string()),
|
||||
);
|
||||
let mut response = sync_response("../test_data/sync_with_summary.json");
|
||||
|
||||
let session = Session {
|
||||
access_token: "1234".to_owned(),
|
||||
user_id: UserId::try_from("@example:localhost").unwrap(),
|
||||
device_id: "DEVICEID".to_owned(),
|
||||
};
|
||||
let client = AsyncClient::new(homeserver, Some(session)).unwrap();
|
||||
let client = bld.set_client(client).to_client().await.unwrap();
|
||||
let client = Client::new(Some(session)).unwrap();
|
||||
client.receive_sync_response(&mut response).await.unwrap();
|
||||
|
||||
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
|
||||
let _response = client.sync(sync_settings).await.unwrap();
|
||||
let mut room_names = vec![];
|
||||
|
||||
assert_eq!(vec!["example, example2"], client.get_room_names().await);
|
||||
for room in client.joined_rooms().read().await.values() {
|
||||
room_names.push(room.read().await.display_name())
|
||||
}
|
||||
|
||||
assert_eq!(vec!["example, example2"], room_names);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue