Merge pull request #1294 from ogres/nsstring-appendingpathcomponent
diff --git a/Foundation/NSPathUtilities.swift b/Foundation/NSPathUtilities.swift
old mode 100644
new mode 100755
index f0b65b4..276ca47
--- a/Foundation/NSPathUtilities.swift
+++ b/Foundation/NSPathUtilities.swift
@@ -82,13 +82,13 @@
}
internal func _stringByAppendingPathComponent(_ str: String, doneAppending : Bool = true) -> String {
- if str.length == 0 {
+ if str.isEmpty {
return self
}
- if self == "" {
- return "/" + str
+ if isEmpty {
+ return str
}
- if self == "/" {
+ if hasSuffix("/") {
return self + str
}
return self + "/" + str
@@ -237,16 +237,7 @@
}
internal func _stringByAppendingPathComponent(_ str: String, doneAppending : Bool = true) -> String {
- if str.length == 0 {
- return _swiftObject
- }
- if self == "" {
- return "/" + str
- }
- if self == "/" {
- return _swiftObject + str
- }
- return _swiftObject + "/" + str
+ return _swiftObject._stringByAppendingPathComponent(str, doneAppending: doneAppending)
}
public func appendingPathComponent(_ str: String) -> String {
diff --git a/TestFoundation/TestNSString.swift b/TestFoundation/TestNSString.swift
old mode 100644
new mode 100755
index 45edeb6..ccf273d
--- a/TestFoundation/TestNSString.swift
+++ b/TestFoundation/TestNSString.swift
@@ -77,6 +77,7 @@
("test_initializeWithFormat", test_initializeWithFormat),
("test_initializeWithFormat2", test_initializeWithFormat2),
("test_initializeWithFormat3", test_initializeWithFormat3),
+ ("test_appendingPathComponent", test_appendingPathComponent),
("test_deletingLastPathComponent", test_deletingLastPathComponent),
("test_getCString_simple", test_getCString_simple),
("test_getCString_nonASCII_withASCIIAccessor", test_getCString_nonASCII_withASCIIAccessor),
@@ -752,6 +753,32 @@
XCTAssertEqual(string, "NSDictionary value is 1000 (42&0)")
}
}
+
+ func test_appendingPathComponent() {
+ do {
+ let path: NSString = "/tmp"
+ let result = path.appendingPathComponent("scratch.tiff")
+ XCTAssertEqual(result, "/tmp/scratch.tiff")
+ }
+
+ do {
+ let path: NSString = "/tmp/"
+ let result = path.appendingPathComponent("scratch.tiff")
+ XCTAssertEqual(result, "/tmp/scratch.tiff")
+ }
+
+ do {
+ let path: NSString = "/"
+ let result = path.appendingPathComponent("scratch.tiff")
+ XCTAssertEqual(result, "/scratch.tiff")
+ }
+
+ do {
+ let path: NSString = ""
+ let result = path.appendingPathComponent("scratch.tiff")
+ XCTAssertEqual(result, "scratch.tiff")
+ }
+ }
func test_deletingLastPathComponent() {
do {