diff options
Diffstat (limited to 'tests/unit/net/filemanager_thread.rs')
-rw-r--r-- | tests/unit/net/filemanager_thread.rs | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/tests/unit/net/filemanager_thread.rs b/tests/unit/net/filemanager_thread.rs index fe03bdc401e..43cda6b8244 100644 --- a/tests/unit/net/filemanager_thread.rs +++ b/tests/unit/net/filemanager_thread.rs @@ -3,15 +3,29 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use ipc_channel::ipc::{self, IpcSender}; -use net::filemanager_thread::FileManagerThreadFactory; -use net_traits::filemanager_thread::{FileManagerThreadMsg, FileManagerThreadError}; +use net::filemanager_thread::{FileManagerThreadFactory, UIProvider}; +use net_traits::filemanager_thread::{FilterPattern, FileManagerThreadMsg, FileManagerThreadError}; use std::fs::File; use std::io::Read; use std::path::PathBuf; +const TEST_PROVIDER: &'static TestProvider = &TestProvider; + +struct TestProvider; + +impl UIProvider for TestProvider { + fn open_file_dialog(&self, _: &str, _: Option<(&[&str], &str)>) -> Option<String> { + Some("test.txt".to_string()) + } + + fn open_file_dialog_multi(&self, _: &str, _: Option<(&[&str], &str)>) -> Option<Vec<String>> { + Some(vec!["test.txt".to_string()]) + } +} + #[test] fn test_filemanager() { - let chan: IpcSender<FileManagerThreadMsg> = FileManagerThreadFactory::new(); + let chan: IpcSender<FileManagerThreadMsg> = FileManagerThreadFactory::new(TEST_PROVIDER); // Try to open a dummy file "tests/unit/net/test.txt" in tree let mut handler = File::open("test.txt").expect("test.txt is stolen"); @@ -20,11 +34,13 @@ fn test_filemanager() { handler.read_to_end(&mut test_file_content) .expect("Read tests/unit/net/test.txt error"); + let patterns = vec![FilterPattern(".txt".to_string())]; + { // Try to select a dummy file "tests/unit/net/test.txt" let (tx, rx) = ipc::channel().unwrap(); - chan.send(FileManagerThreadMsg::SelectFile(tx)).unwrap(); + chan.send(FileManagerThreadMsg::SelectFile(patterns.clone(), tx)).unwrap(); let selected = rx.recv().expect("File manager channel is broken") .expect("The file manager failed to find test.txt"); @@ -66,7 +82,7 @@ fn test_filemanager() { { let (tx, rx) = ipc::channel().unwrap(); - let _ = chan.send(FileManagerThreadMsg::SelectFile(tx)); + let _ = chan.send(FileManagerThreadMsg::SelectFile(patterns.clone(), tx)); assert!(rx.try_recv().is_err(), "The thread should not respond normally after exited"); } |