mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-08 13:31:03 +03:00
fix: clipboard, preserve uncompressed special format data (#16100)
Signed-off-by: cuishuang <imcusg@gmail.com>
This commit is contained in:
@@ -698,7 +698,7 @@ mod proto {
|
||||
let content = if compress {
|
||||
compressed
|
||||
} else {
|
||||
s.bytes().collect::<Vec<u8>>()
|
||||
d
|
||||
};
|
||||
Clipboard {
|
||||
compress,
|
||||
@@ -794,6 +794,29 @@ mod proto {
|
||||
msg
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(all(test, not(target_os = "android")))]
|
||||
mod tests {
|
||||
use super::{from_clipboard, special_to_proto};
|
||||
use arboard::ClipboardData;
|
||||
|
||||
#[test]
|
||||
fn preserves_uncompressed_special_clipboard_data() {
|
||||
let data = vec![0x01, 0x02, 0x03];
|
||||
let name = "custom-format".to_owned();
|
||||
|
||||
let clipboard = special_to_proto(data.clone(), name.clone());
|
||||
|
||||
assert!(!clipboard.compress);
|
||||
assert_eq!(clipboard.content.as_ref(), data.as_slice());
|
||||
assert_eq!(clipboard.special_name, name);
|
||||
assert!(matches!(
|
||||
from_clipboard(clipboard),
|
||||
Some(ClipboardData::Special((restored_name, restored_data)))
|
||||
if restored_name == name && restored_data == data
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(all(test, not(target_os = "android")))]
|
||||
|
||||
Reference in New Issue
Block a user