@@ -152,12 +152,12 @@ TEST(@"-[user]", [u1.user isEqual: @"us:er"] && u4.user == nil) TEST(@"-[password]", [u1.password isEqual: @"p@w"] && u4.password == nil) TEST(@"-[host]", [u1.host isEqual: @"ho:st"] && - [u6.host isEqual: @"[12:34::56:abcd]"] && - [u7.host isEqual: @"[12:34::56:abcd]"]) + [u6.host isEqual: @"12:34::56:abcd"] && + [u7.host isEqual: @"12:34::56:abcd"]) TEST(@"-[port]", [u1.port isEqual: [OFNumber numberWithUInt16: 1234]] && [u4 port] == nil && [u7.port isEqual: [OFNumber numberWithUInt16: 234]]) TEST(@"-[path]", [u1.path isEqual: @"/pa?th"] && [u4.path isEqual: @"/etc/passwd"]) @@ -204,17 +204,31 @@ EXPECT_EXCEPTION( @"-[setURLEncodedScheme:] with invalid characters fails", OFInvalidFormatException, mu.URLEncodedScheme = @"~") TEST(@"-[setHost:]", - (mu.host = @"ho:st") && [mu.URLEncodedHost isEqual: @"ho%3Ast"]) + (mu.host = @"ho:st") && [mu.URLEncodedHost isEqual: @"ho%3Ast"] && + (mu.host = @"12:34:ab") && + [mu.URLEncodedHost isEqual: @"[12:34:ab]"] && + (mu.host = @"12:34:aB") && + [mu.URLEncodedHost isEqual: @"[12:34:aB]"] && + (mu.host = @"12:34:g") && + [mu.URLEncodedHost isEqual: @"12%3A34%3Ag"]) TEST(@"-[setURLEncodedHost:]", - (mu.URLEncodedHost = @"ho%3Ast") && [mu.host isEqual: @"ho:st"]) + (mu.URLEncodedHost = @"ho%3Ast") && [mu.host isEqual: @"ho:st"] && + (mu.URLEncodedHost = @"[12:34]") && [mu.host isEqual: @"12:34"] && + (mu.URLEncodedHost = @"[12::ab]") && [mu.host isEqual: @"12::ab"]) + + EXPECT_EXCEPTION(@"-[setURLEncodedHost:] with invalid characters fails" + " #1", OFInvalidFormatException, mu.URLEncodedHost = @"/") + + EXPECT_EXCEPTION(@"-[setURLEncodedHost:] with invalid characters fails" + " #2", OFInvalidFormatException, mu.URLEncodedHost = @"[12:34") - EXPECT_EXCEPTION(@"-[setURLEncodedHost:] with invalid characters fails", - OFInvalidFormatException, mu.URLEncodedHost = @"/") + EXPECT_EXCEPTION(@"-[setURLEncodedHost:] with invalid characters fails" + " #3", OFInvalidFormatException, mu.URLEncodedHost = @"[a::g]") TEST(@"-[setUser:]", (mu.user = @"us:er") && [mu.URLEncodedUser isEqual: @"us%3Aer"]) TEST(@"-[setURLEncodedUser:]",