pathname2 1.6.5-universal-mingw32 → 1.7.1-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/CHANGES +10 -0
- data/MANIFEST +28 -1
- data/README +5 -6
- data/Rakefile +179 -3
- data/lib/pathname2.rb +128 -134
- data/pathname2.gemspec +7 -10
- data/test/test_pathname.rb +15 -18
- data/test/test_version.rb +13 -0
- data/test/windows/test_append.rb +59 -0
- data/test/windows/test_aref.rb +37 -0
- data/test/windows/test_ascend.rb +51 -0
- data/test/windows/test_children.rb +42 -0
- data/test/windows/test_clean.rb +50 -0
- data/test/windows/test_clean_bang.rb +50 -0
- data/test/windows/test_constructor.rb +48 -0
- data/test/windows/test_descend.rb +51 -0
- data/test/windows/test_drive_number.rb +58 -0
- data/test/windows/test_each.rb +28 -0
- data/test/windows/test_facade.rb +64 -0
- data/test/windows/test_is_absolute.rb +47 -0
- data/test/windows/test_is_relative.rb +46 -0
- data/test/windows/test_is_root.rb +44 -0
- data/test/windows/test_is_unc.rb +51 -0
- data/test/windows/test_long_path.rb +41 -0
- data/test/windows/test_misc.rb +33 -0
- data/test/windows/test_parent.rb +37 -0
- data/test/windows/test_pstrip.rb +42 -0
- data/test/windows/test_pstrip_bang.rb +46 -0
- data/test/windows/test_realpath.rb +39 -0
- data/test/windows/test_relative_path_from.rb +60 -0
- data/test/windows/test_root.rb +59 -0
- data/test/windows/test_short_path.rb +41 -0
- data/test/windows/test_to_a.rb +46 -0
- data/test/windows/test_undecorate.rb +47 -0
- data/test/windows/test_undecorate_bang.rb +53 -0
- metadata +137 -82
- data/test/test_pathname_windows.rb +0 -678
@@ -0,0 +1,37 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_parent.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#parent method.
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Parent < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@path = Pathname.new("C:\\foo\\bar\\baz")
|
12
|
+
end
|
13
|
+
|
14
|
+
test "parent basic functionality" do
|
15
|
+
assert_respond_to(@path, :parent)
|
16
|
+
assert_nothing_raised{ @path.parent }
|
17
|
+
assert_kind_of(Pathname, @path.parent)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "parent returns expected results for an absolute path" do
|
21
|
+
assert_equal("C:\\foo\\bar", Pathname.new("C:\\foo\\bar\\baz").parent)
|
22
|
+
assert_equal("C:\\", Pathname.new("C:\\foo").parent)
|
23
|
+
end
|
24
|
+
|
25
|
+
test "parent returns expected results for a relative path" do
|
26
|
+
assert_equal("foo", Pathname.new("foo\\bar").parent)
|
27
|
+
end
|
28
|
+
|
29
|
+
test "parent method returns root if already a root path" do
|
30
|
+
assert_equal("C:\\", Pathname.new("C:\\").parent)
|
31
|
+
assert_equal("\\\\foo\\bar", Pathname.new("//foo/bar").parent)
|
32
|
+
end
|
33
|
+
|
34
|
+
def teardown
|
35
|
+
@path = nil
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_pstrip.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#pstrip method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Pstrip < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@path = Pathname.new("C:/Program Files////")
|
12
|
+
end
|
13
|
+
|
14
|
+
test "pstrip basic functionality" do
|
15
|
+
assert_respond_to(@path, :pstrip)
|
16
|
+
assert_nothing_raised{ @path.pstrip }
|
17
|
+
assert_kind_of(Pathname, @path.pstrip)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "pstrip returns expected result for path with trailing slashes" do
|
21
|
+
assert_equal("C:\\Program Files", @path.pstrip)
|
22
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files\\\\").pstrip)
|
23
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files//\\").pstrip)
|
24
|
+
end
|
25
|
+
|
26
|
+
test "pstrip returns the path as is if it does not contain a trailing slash" do
|
27
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files").pstrip)
|
28
|
+
assert_equal("", Pathname.new("").pstrip)
|
29
|
+
end
|
30
|
+
|
31
|
+
test "pstrip method is not destructive" do
|
32
|
+
str = 'C:/Program Files////'
|
33
|
+
assert_nothing_raised{ Pathname.new(str).pstrip }
|
34
|
+
assert_equal('C:/Program Files////', str)
|
35
|
+
end
|
36
|
+
|
37
|
+
def teardown
|
38
|
+
@abs_path = nil
|
39
|
+
@unc_path = nil
|
40
|
+
@rel_path = nil
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_pstrip_bang.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#pstrip! method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_PstripBang < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@path = Pathname.new("C:/Program Files////")
|
12
|
+
end
|
13
|
+
|
14
|
+
test "pstrip! basic functionality" do
|
15
|
+
assert_respond_to(@path, :pstrip!)
|
16
|
+
assert_nothing_raised{ @path.pstrip! }
|
17
|
+
assert_kind_of(Pathname, @path.pstrip!)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "pstrip! returns expected result for path with trailing slashes" do
|
21
|
+
assert_equal("C:\\Program Files", @path.pstrip!)
|
22
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files\\\\").pstrip!)
|
23
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files//\\").pstrip!)
|
24
|
+
end
|
25
|
+
|
26
|
+
test "pstrip! returns the path as is if it does not contain a trailing slash" do
|
27
|
+
assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files").pstrip!)
|
28
|
+
assert_equal("", Pathname.new("").pstrip!)
|
29
|
+
end
|
30
|
+
|
31
|
+
test "pstrip! alters pathname object" do
|
32
|
+
path = Pathname.new('C:/Program Files////')
|
33
|
+
assert_nothing_raised{ path.pstrip! }
|
34
|
+
assert_equal('C:\Program Files', path.to_s)
|
35
|
+
end
|
36
|
+
|
37
|
+
test "pstrip! method does not modify original constructor argument" do
|
38
|
+
str = 'C:/Program Files////'
|
39
|
+
assert_nothing_raised{ Pathname.new(str).pstrip! }
|
40
|
+
assert_equal('C:/Program Files////', str)
|
41
|
+
end
|
42
|
+
|
43
|
+
def teardown
|
44
|
+
@path = nil
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_realpath.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#realpath method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Realpath < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@cwd = Dir.pwd.tr('/', "\\")
|
12
|
+
@path = Pathname.new(Dir.pwd)
|
13
|
+
end
|
14
|
+
|
15
|
+
test "realpath basic functionality" do
|
16
|
+
assert_respond_to(@path, :realpath)
|
17
|
+
assert_nothing_raised{ @path.realpath }
|
18
|
+
assert_kind_of(String, @path.realpath)
|
19
|
+
end
|
20
|
+
|
21
|
+
test "realpath returns the expected result" do
|
22
|
+
assert_equal(@cwd, @path.realpath)
|
23
|
+
end
|
24
|
+
|
25
|
+
test "realpath fails if the path does not exist" do
|
26
|
+
assert_raise(Errno::ENOENT){ Pathname.new("C:/Bogus/AlsoBogus").realpath }
|
27
|
+
end
|
28
|
+
|
29
|
+
test "realpath method is not destructive" do
|
30
|
+
str = 'C:/Program Files'
|
31
|
+
assert_nothing_raised{ Pathname.new(str).realpath }
|
32
|
+
assert_equal('C:/Program Files', str)
|
33
|
+
end
|
34
|
+
|
35
|
+
def teardown
|
36
|
+
@cwd = nil
|
37
|
+
@path = nil
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_relative_path_from.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#relative_path_from method.
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_RelativePathFrom < Test::Unit::TestCase
|
10
|
+
def assert_relpath(result, dest, base)
|
11
|
+
assert_equal(result, Pathname.new(dest).relative_path_from(base))
|
12
|
+
end
|
13
|
+
|
14
|
+
def assert_relative_path_error(to, from)
|
15
|
+
assert_raise(ArgumentError){ Pathname.new(to).relative_path_from(from) }
|
16
|
+
end
|
17
|
+
|
18
|
+
test "relative_path_from works as expected between two relative paths" do
|
19
|
+
assert_relpath("..\\a", 'a', 'b')
|
20
|
+
assert_relpath("..\\a", 'a', 'b/')
|
21
|
+
assert_relpath("..\\a", 'a/', 'b')
|
22
|
+
assert_relpath("..\\a", 'a/', 'b/')
|
23
|
+
assert_relpath("..\\b", "a\\b", "a\\c")
|
24
|
+
assert_relpath("..\\a", "..\\a", "..\\b")
|
25
|
+
assert_relpath("..\\b\\c", "a\\b\\c", "a\\d")
|
26
|
+
assert_relpath("..", "a\\..", "a")
|
27
|
+
assert_relpath(".", "a\\..\\b", "b")
|
28
|
+
assert_relpath("a", "a", "b\\..")
|
29
|
+
assert_relpath("b\\c", "b\\c", "b\\..")
|
30
|
+
end
|
31
|
+
|
32
|
+
test "relative_path_from works as expected between two absolute paths" do
|
33
|
+
assert_relpath("..\\a", "c:\\a", "c:\\b")
|
34
|
+
assert_relpath("..\\a", "c:\\a", "c:\\b\\")
|
35
|
+
assert_relpath("..\\a", "c:\\a\\", "c:\\b")
|
36
|
+
assert_relpath("..\\a", "c:\\a\\", "c:\\b\\")
|
37
|
+
assert_relpath("c\\d", "c:\\a\\b\\c\\d", "c:\\a\\b")
|
38
|
+
assert_relpath("..\\..", "c:\\a\\b", "c:\\a\\b\\c\\d")
|
39
|
+
assert_relpath("..\\..\\..\\..\\e", "c:\\e", "c:\\a\\b\\c\\d")
|
40
|
+
assert_relpath("..\\a", "c:\\..\\a", "c:\\b")
|
41
|
+
assert_relpath(".", "c:\\a\\..\\..\\b", "c:\\b")
|
42
|
+
end
|
43
|
+
|
44
|
+
test "relative_path_from works as expected between for . and .." do
|
45
|
+
assert_relpath("a", "a", ".")
|
46
|
+
assert_relpath("..", ".", "a")
|
47
|
+
assert_relpath(".", ".", ".")
|
48
|
+
assert_relpath(".", "..", "..")
|
49
|
+
assert_relpath("..", "..", ".")
|
50
|
+
end
|
51
|
+
|
52
|
+
test "relative_path_from is not allowed between relative and absolute paths" do
|
53
|
+
assert_relative_path_error("c:\\", ".")
|
54
|
+
assert_relative_path_error(".", "c:\\")
|
55
|
+
assert_relative_path_error("a", "..")
|
56
|
+
assert_relative_path_error(".", "..")
|
57
|
+
assert_relative_path_error("C:\\Temp", "D:\\Temp")
|
58
|
+
assert_relative_path_error("\\\\Server\\Temp", "D:\\Temp")
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_root.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#root method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Root < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@abs_path = Pathname.new("C:\\Program Files")
|
12
|
+
@unc_path = Pathname.new("\\\\foo\\bar\\baz")
|
13
|
+
@rel_path = Pathname.new("foo\\bar\\baz")
|
14
|
+
end
|
15
|
+
|
16
|
+
test "root method returns expected results for absolute paths" do
|
17
|
+
assert_equal("C:\\", @abs_path.root)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "root method returns expected results for paths with forward slashes" do
|
21
|
+
assert_equal("C:\\", Pathname.new("C:/Program Files").root)
|
22
|
+
end
|
23
|
+
|
24
|
+
test "root method returns expected results for unc paths" do
|
25
|
+
assert_equal("\\\\foo\\bar", @unc_path.root)
|
26
|
+
assert_equal("\\\\foo", Pathname.new("\\\\foo").root)
|
27
|
+
assert_equal("\\\\", Pathname.new("\\\\").root)
|
28
|
+
end
|
29
|
+
|
30
|
+
test "root method returns dot for relative paths" do
|
31
|
+
assert_equal('.', @rel_path.root)
|
32
|
+
end
|
33
|
+
|
34
|
+
test "root method returns expected result for root path" do
|
35
|
+
assert_equal("Z:\\", Pathname.new("Z:\\").root)
|
36
|
+
assert_equal("\\\\foo\\bar", Pathname.new("\\\\foo\\bar").root)
|
37
|
+
end
|
38
|
+
|
39
|
+
test "root method returns expected result for empty string" do
|
40
|
+
assert_equal(".", Pathname.new("").root)
|
41
|
+
end
|
42
|
+
|
43
|
+
test "root method returns expected result for dot and dotdot" do
|
44
|
+
assert_equal(".", Pathname.new("..").root)
|
45
|
+
assert_equal(".", Pathname.new(".").root)
|
46
|
+
end
|
47
|
+
|
48
|
+
test "root method is not destructive" do
|
49
|
+
str = 'C:/Program Files'
|
50
|
+
assert_nothing_raised{ Pathname.new(str).root }
|
51
|
+
assert_equal('C:/Program Files', str)
|
52
|
+
end
|
53
|
+
|
54
|
+
def teardown
|
55
|
+
@abs_path = nil
|
56
|
+
@unc_path = nil
|
57
|
+
@rel_path = nil
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_short_path.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#short_path method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_ShortPath < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@abs_path = Pathname.new("C:\\Program Files")
|
12
|
+
end
|
13
|
+
|
14
|
+
test "short_path basic functionality" do
|
15
|
+
assert_respond_to(@abs_path, :short_path)
|
16
|
+
assert_nothing_raised{ @abs_path.short_path }
|
17
|
+
assert_kind_of(String, @abs_path.short_path)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "short_path returns the expected result" do
|
21
|
+
assert_equal("C:\\PROGRA~1", @abs_path.short_path)
|
22
|
+
end
|
23
|
+
|
24
|
+
test "short_path returns the same string if it's already short" do
|
25
|
+
assert_equal("C:\\", Pathname.new("C:/").short_path)
|
26
|
+
end
|
27
|
+
|
28
|
+
test "short_path fails if the path does not exist" do
|
29
|
+
assert_raise(Errno::ESRCH){ Pathname.new("C:/Bogus/AlsoBogus").short_path }
|
30
|
+
end
|
31
|
+
|
32
|
+
test "short_path method is not destructive" do
|
33
|
+
str = 'C:/Program Files'
|
34
|
+
assert_nothing_raised{ Pathname.new(str).short_path }
|
35
|
+
assert_equal('C:/Program Files', str)
|
36
|
+
end
|
37
|
+
|
38
|
+
def teardown
|
39
|
+
@abs_path = nil
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_to_a.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#to_a method.
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_ToA < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@path = Pathname.new('C:/Program Files/foo')
|
12
|
+
end
|
13
|
+
|
14
|
+
test "to_a basic functionality" do
|
15
|
+
assert_respond_to(@path, :to_a)
|
16
|
+
assert_nothing_raised{ @path.to_a }
|
17
|
+
assert_kind_of(Array, @path.to_a)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "to_a returns the expected results for standard paths" do
|
21
|
+
assert_equal(['C:'], Pathname.new('C:/').to_a)
|
22
|
+
assert_equal(['C:', 'Program Files'], Pathname.new('C:/Program Files').to_a)
|
23
|
+
assert_equal(['C:', 'Program Files', 'Stuff'], Pathname.new('C:/Program Files/Stuff').to_a)
|
24
|
+
assert_equal(['C:', 'Users'], Pathname.new("C:\\Users").to_a)
|
25
|
+
end
|
26
|
+
|
27
|
+
test "to_a returns the expected results for unc paths" do
|
28
|
+
assert_equal(['foo', 'bar', 'baz'], Pathname.new('//foo/bar/baz').to_a)
|
29
|
+
assert_equal(['foo', 'bar'], Pathname.new('//foo/bar').to_a)
|
30
|
+
assert_equal(['foo'], Pathname.new('//foo').to_a)
|
31
|
+
end
|
32
|
+
|
33
|
+
test "to_a returns the expected results for empty strings and empty unc paths" do
|
34
|
+
assert_equal([], Pathname.new('').to_a)
|
35
|
+
assert_equal([], Pathname.new('//').to_a)
|
36
|
+
end
|
37
|
+
|
38
|
+
test "to_a does not modify receiver" do
|
39
|
+
@path.to_a
|
40
|
+
assert_equal('C:\Program Files\foo', @path)
|
41
|
+
end
|
42
|
+
|
43
|
+
def teardown
|
44
|
+
@path = nil
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_undecorate.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#undecorate method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Undecorate < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@std = Pathname.new('C:/Path/File.txt')
|
12
|
+
end
|
13
|
+
|
14
|
+
test "undecorate basic functionality" do
|
15
|
+
assert_respond_to(@std, :undecorate)
|
16
|
+
assert_nothing_raised{ @std.undecorate }
|
17
|
+
end
|
18
|
+
|
19
|
+
test "undecorate returns a Pathname object" do
|
20
|
+
assert_kind_of(Pathname, @std.undecorate)
|
21
|
+
end
|
22
|
+
|
23
|
+
test "undecorate method returns an already undecorated path unchanged" do
|
24
|
+
assert_equal('C:\Path\File.txt', Pathname.new('C:\Path\File.txt').undecorate)
|
25
|
+
assert_equal('\\foo\bar', Pathname.new('\\foo\bar').undecorate)
|
26
|
+
end
|
27
|
+
|
28
|
+
test "undecorate returns expected result for standard path" do
|
29
|
+
assert_equal('C:\Path\File', Pathname.new('C:\Path\File[12]').undecorate)
|
30
|
+
assert_equal('C:\Path\[3].txt', Pathname.new('C:\Path\[3].txt').undecorate)
|
31
|
+
end
|
32
|
+
|
33
|
+
test "undecorate returns expected result for UNC path" do
|
34
|
+
assert_equal('\\foo\bar.txt',Pathname.new('\\foo\bar[5].txt').undecorate)
|
35
|
+
assert_equal('\\foo\bar', Pathname.new('\\foo\bar[5]').undecorate)
|
36
|
+
end
|
37
|
+
|
38
|
+
test "undecorate does not modify the original string" do
|
39
|
+
str = 'C:/Path/File.txt'
|
40
|
+
assert_nothing_raised{ Pathname.new(str).undecorate }
|
41
|
+
assert_equal('C:/Path/File.txt', str)
|
42
|
+
end
|
43
|
+
|
44
|
+
def teardown
|
45
|
+
@std = nil
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_undecorate_bang.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#undecorate! method
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_UndecorateBang < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@std = Pathname.new('C:/Path/File.txt')
|
12
|
+
end
|
13
|
+
|
14
|
+
test "undecorate! basic functionality" do
|
15
|
+
assert_respond_to(@std, :undecorate!)
|
16
|
+
assert_nothing_raised{ @std.undecorate! }
|
17
|
+
end
|
18
|
+
|
19
|
+
test "undecorate! returns a Pathname object" do
|
20
|
+
assert_kind_of(Pathname, @std.undecorate!)
|
21
|
+
end
|
22
|
+
|
23
|
+
test "undecorate! method returns an already undecorated path unchanged" do
|
24
|
+
assert_equal('C:\Path\File.txt', Pathname.new('C:\Path\File.txt').undecorate!)
|
25
|
+
assert_equal('\\foo\bar', Pathname.new('\\foo\bar').undecorate!)
|
26
|
+
end
|
27
|
+
|
28
|
+
test "undecorate! returns expected result for standard path" do
|
29
|
+
assert_equal('C:\Path\File', Pathname.new('C:\Path\File[12]').undecorate!)
|
30
|
+
assert_equal('C:\Path\[3].txt', Pathname.new('C:\Path\[3].txt').undecorate!)
|
31
|
+
end
|
32
|
+
|
33
|
+
test "undecorate! returns expected result for UNC path" do
|
34
|
+
assert_equal('\\foo\bar.txt',Pathname.new('\\foo\bar[5].txt').undecorate!)
|
35
|
+
assert_equal('\\foo\bar', Pathname.new('\\foo\bar[5]').undecorate!)
|
36
|
+
end
|
37
|
+
|
38
|
+
test "undecorate! does not modify the original string" do
|
39
|
+
str = 'C:/Path/File.txt'
|
40
|
+
assert_nothing_raised{ Pathname.new(str).undecorate }
|
41
|
+
assert_equal('C:/Path/File.txt', str)
|
42
|
+
end
|
43
|
+
|
44
|
+
test "undecorate does modify the object itself" do
|
45
|
+
path = Pathname.new('C:\Path\File[12]')
|
46
|
+
assert_nothing_raised{ path.undecorate! }
|
47
|
+
assert_equal('C:\Path\File', path)
|
48
|
+
end
|
49
|
+
|
50
|
+
def teardown
|
51
|
+
@std = nil
|
52
|
+
end
|
53
|
+
end
|