1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-11-23 01:51:11 +00:00

tests for PathBuf::from_param

This commit is contained in:
Nikolay Kim 2017-12-02 10:43:14 -08:00
parent d8f27e95a6
commit ebfd3ac275

View file

@ -129,8 +129,8 @@ impl FromParam for PathBuf {
return Err(UriSegmentError::BadEnd('>')) return Err(UriSegmentError::BadEnd('>'))
} else if segment.ends_with('<') { } else if segment.ends_with('<') {
return Err(UriSegmentError::BadEnd('<')) return Err(UriSegmentError::BadEnd('<'))
} else if segment.contains('/') { } else if segment.is_empty() {
return Err(UriSegmentError::BadChar('/')) continue
} else if cfg!(windows) && segment.contains('\\') { } else if cfg!(windows) && segment.contains('\\') {
return Err(UriSegmentError::BadChar('\\')) return Err(UriSegmentError::BadChar('\\'))
} else { } else {
@ -347,6 +347,20 @@ fn parse(pattern: &str) -> String {
mod tests { mod tests {
use regex::Regex; use regex::Regex;
use super::*; use super::*;
use std::iter::FromIterator;
#[test]
fn test_path_buf() {
assert_eq!(PathBuf::from_param("/test/.tt"), Err(UriSegmentError::BadStart('.')));
assert_eq!(PathBuf::from_param("/test/*tt"), Err(UriSegmentError::BadStart('*')));
assert_eq!(PathBuf::from_param("/test/tt:"), Err(UriSegmentError::BadEnd(':')));
assert_eq!(PathBuf::from_param("/test/tt<"), Err(UriSegmentError::BadEnd('<')));
assert_eq!(PathBuf::from_param("/test/tt>"), Err(UriSegmentError::BadEnd('>')));
assert_eq!(PathBuf::from_param("/seg1/seg2/"),
Ok(PathBuf::from_iter(vec!["seg1", "seg2"])));
assert_eq!(PathBuf::from_param("/seg1/../seg2/"),
Ok(PathBuf::from_iter(vec!["seg2"])));
}
#[test] #[test]
fn test_recognizer() { fn test_recognizer() {