parent
7ee45e76d0
commit
e3f0f5b776
1 changed files with 33 additions and 2 deletions
|
|
@ -86,7 +86,7 @@ impl Operation {
|
||||||
.unwrap_or_default(),
|
.unwrap_or_default(),
|
||||||
) {
|
) {
|
||||||
// '.' needs to be re-added for paths with extensions.
|
// '.' needs to be re-added for paths with extensions.
|
||||||
let dot = ext.is_empty().then_some("").unwrap_or(".");
|
let dot = if ext.is_empty() { "" } else { "." };
|
||||||
let mut n = 0u32;
|
let mut n = 0u32;
|
||||||
// Loop until a valid `copy n` variant is found
|
// Loop until a valid `copy n` variant is found
|
||||||
loop {
|
loop {
|
||||||
|
|
@ -112,6 +112,11 @@ impl Operation {
|
||||||
to
|
to
|
||||||
};
|
};
|
||||||
|
|
||||||
|
(from, to)
|
||||||
|
} else if let Some(name) =
|
||||||
|
from.is_file().then(|| from.file_name()).flatten()
|
||||||
|
{
|
||||||
|
let to = to.join(name);
|
||||||
(from, to)
|
(from, to)
|
||||||
} else {
|
} else {
|
||||||
(from, to.to_owned())
|
(from, to.to_owned())
|
||||||
|
|
@ -316,7 +321,11 @@ impl Operation {
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::{fs::File, io, path::PathBuf};
|
use std::{
|
||||||
|
fs::{self, File},
|
||||||
|
io,
|
||||||
|
path::PathBuf,
|
||||||
|
};
|
||||||
|
|
||||||
use cosmic::iced::futures::channel::mpsc;
|
use cosmic::iced::futures::channel::mpsc;
|
||||||
use log::{debug, trace};
|
use log::{debug, trace};
|
||||||
|
|
@ -509,4 +518,26 @@ mod tests {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test(tokio::test)]
|
||||||
|
async fn copy_file_with_diff_name_to_diff_dir() -> io::Result<()> {
|
||||||
|
let fs = empty_fs()?;
|
||||||
|
let path = fs.path();
|
||||||
|
|
||||||
|
let dir_path = path.join("cosmic");
|
||||||
|
fs::create_dir(&dir_path)?;
|
||||||
|
let file_path = path.join("ferris");
|
||||||
|
File::create(&file_path)?;
|
||||||
|
let expected = dir_path.join("ferris");
|
||||||
|
|
||||||
|
debug!("Copying {} to {}", file_path.display(), expected.display());
|
||||||
|
operation_copy(vec![file_path.clone()], dir_path.clone())
|
||||||
|
.await
|
||||||
|
.expect("Copy operation should have succeeded");
|
||||||
|
|
||||||
|
assert!(file_path.exists(), "Original file should still exist");
|
||||||
|
assert!(expected.exists(), "File should have been copied");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue