summaryrefslogtreecommitdiffstats
path: root/library/std/src/path
diff options
context:
space:
mode:
Diffstat (limited to 'library/std/src/path')
-rw-r--r--library/std/src/path/tests.rs50
1 files changed, 45 insertions, 5 deletions
diff --git a/library/std/src/path/tests.rs b/library/std/src/path/tests.rs
index dd307022c..f12ffbf2e 100644
--- a/library/std/src/path/tests.rs
+++ b/library/std/src/path/tests.rs
@@ -1183,7 +1183,7 @@ pub fn test_prefix_ext() {
#[test]
pub fn test_push() {
macro_rules! tp (
- ($path:expr, $push:expr, $expected:expr) => ( {
+ ($path:expr, $push:expr, $expected:expr) => ({
let mut actual = PathBuf::from($path);
actual.push($push);
assert!(actual.to_str() == Some($expected),
@@ -1281,7 +1281,7 @@ pub fn test_push() {
#[test]
pub fn test_pop() {
macro_rules! tp (
- ($path:expr, $expected:expr, $output:expr) => ( {
+ ($path:expr, $expected:expr, $output:expr) => ({
let mut actual = PathBuf::from($path);
let output = actual.pop();
assert!(actual.to_str() == Some($expected) && output == $output,
@@ -1335,7 +1335,7 @@ pub fn test_pop() {
#[test]
pub fn test_set_file_name() {
macro_rules! tfn (
- ($path:expr, $file:expr, $expected:expr) => ( {
+ ($path:expr, $file:expr, $expected:expr) => ({
let mut p = PathBuf::from($path);
p.set_file_name($file);
assert!(p.to_str() == Some($expected),
@@ -1369,7 +1369,7 @@ pub fn test_set_file_name() {
#[test]
pub fn test_set_extension() {
macro_rules! tfe (
- ($path:expr, $ext:expr, $expected:expr, $output:expr) => ( {
+ ($path:expr, $ext:expr, $expected:expr, $output:expr) => ({
let mut p = PathBuf::from($path);
let output = p.set_extension($ext);
assert!(p.to_str() == Some($expected) && output == $output,
@@ -1395,6 +1395,46 @@ pub fn test_set_extension() {
}
#[test]
+pub fn test_with_extension() {
+ macro_rules! twe (
+ ($input:expr, $extension:expr, $expected:expr) => ({
+ let input = Path::new($input);
+ let output = input.with_extension($extension);
+
+ assert!(
+ output.to_str() == Some($expected),
+ "calling Path::new({:?}).with_extension({:?}): Expected {:?}, got {:?}",
+ $input, $extension, $expected, output,
+ );
+ });
+ );
+
+ twe!("foo", "txt", "foo.txt");
+ twe!("foo.bar", "txt", "foo.txt");
+ twe!("foo.bar.baz", "txt", "foo.bar.txt");
+ twe!(".test", "txt", ".test.txt");
+ twe!("foo.txt", "", "foo");
+ twe!("foo", "", "foo");
+ twe!("", "foo", "");
+ twe!(".", "foo", ".");
+ twe!("foo/", "bar", "foo.bar");
+ twe!("foo/.", "bar", "foo.bar");
+ twe!("..", "foo", "..");
+ twe!("foo/..", "bar", "foo/..");
+ twe!("/", "foo", "/");
+
+ // New extension is smaller than file name
+ twe!("aaa_aaa_aaa", "bbb_bbb", "aaa_aaa_aaa.bbb_bbb");
+ // New extension is greater than file name
+ twe!("bbb_bbb", "aaa_aaa_aaa", "bbb_bbb.aaa_aaa_aaa");
+
+ // New extension is smaller than previous extension
+ twe!("ccc.aaa_aaa_aaa", "bbb_bbb", "ccc.bbb_bbb");
+ // New extension is greater than previous extension
+ twe!("ccc.bbb_bbb", "aaa_aaa_aaa", "ccc.aaa_aaa_aaa");
+}
+
+#[test]
fn test_eq_receivers() {
use crate::borrow::Cow;
@@ -1669,7 +1709,7 @@ fn into_rc() {
#[test]
fn test_ord() {
macro_rules! ord(
- ($ord:ident, $left:expr, $right:expr) => ( {
+ ($ord:ident, $left:expr, $right:expr) => ({
use core::cmp::Ordering;
let left = Path::new($left);