Finished with tests for server bound login packets

This commit is contained in:
vagola 2019-12-30 21:54:48 +03:00
parent f1a817d447
commit 1fca9c3666
3 changed files with 35 additions and 3 deletions

View File

@ -186,7 +186,7 @@ impl<R: Read> PacketRead for R {
}
fn read_byte_array(&mut self) -> Result<Vec<u8>, DecodeError> {
let length = self.read_var_u32()?;
let length = self.read_var_i32()?;
let mut buf = vec![0; length as usize];
self.read_exact(&mut buf)?;
@ -238,7 +238,7 @@ impl<W: Write> PacketWrite for W {
}
fn write_byte_array(&mut self, value: &[u8]) -> Result<(), EncodeError> {
self.write_var_u32(value.len() as u32)?;
self.write_var_i32(value.len() as i32)?;
self.write_all(value)?;
Ok(())

View File

@ -395,8 +395,8 @@ impl PacketParser for LoginPluginRequest {
#[cfg(test)]
mod tests {
use crate::login::LoginPluginResponse;
use crate::login::LoginStart;
use crate::login::{EncryptionResponse, LoginPluginResponse};
use crate::PacketParser;
use std::io::Cursor;
@ -424,6 +424,35 @@ mod tests {
assert_eq!(login_start.name, String::from("Username"));
}
#[test]
fn test_encryption_response_encode() {
let encryption_response = EncryptionResponse {
shared_secret: vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
verify_token: vec![1, 2, 3, 4],
};
let mut vec = Vec::new();
encryption_response.encode(&mut vec).unwrap();
assert_eq!(
vec,
include_bytes!("../test/packet/login/encryption_response.dat").to_vec()
);
}
#[test]
fn test_encryption_response_decode() {
let mut cursor =
Cursor::new(include_bytes!("../test/packet/login/encryption_response.dat").to_vec());
let encryption_response = EncryptionResponse::decode(&mut cursor).unwrap();
assert_eq!(
encryption_response.shared_secret,
vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
);
assert_eq!(encryption_response.verify_token, vec![1, 2, 3, 4]);
}
#[test]
fn test_login_plugin_response_encode() {
let login_plugin_response = LoginPluginResponse {

View File

@ -0,0 +1,3 @@