Index: net/socket/unix_domain_socket_posix_unittest.cc |
diff --git a/net/socket/unix_domain_socket_posix_unittest.cc b/net/socket/unix_domain_socket_posix_unittest.cc |
index ed0b01891833090031f3ee7fcc827cd71df335ea..f49e6830c557cedc1e950202e601fdc32c248fac 100644 |
--- a/net/socket/unix_domain_socket_posix_unittest.cc |
+++ b/net/socket/unix_domain_socket_posix_unittest.cc |
@@ -39,6 +39,7 @@ namespace net { |
namespace { |
const char kSocketFilename[] = "unix_domain_socket_for_testing"; |
+const char kFallbackSocketName[] = "unix_domain_socket_for_testing_2"; |
const char kInvalidSocketPath[] = "/invalid/path"; |
const char kMsg[] = "hello"; |
@@ -51,10 +52,14 @@ enum EventType { |
EVENT_READ, |
}; |
-string MakeSocketPath() { |
+string MakeSocketPath(const string& socket_file_name) { |
base::FilePath temp_dir; |
file_util::GetTempDir(&temp_dir); |
- return temp_dir.Append(kSocketFilename).value(); |
+ return temp_dir.Append(socket_file_name).value(); |
+} |
+ |
+string MakeSocketPath() { |
+ return MakeSocketPath(kSocketFilename); |
} |
class EventManager : public base::RefCounted<EventManager> { |
@@ -254,8 +259,28 @@ TEST_F(UnixDomainSocketTestWithInvalidPath, CreateAndListenWithInvalidPath) { |
TEST_F(UnixDomainSocketTestWithInvalidPath, |
CreateAndListenWithAbstractNamespace) { |
socket_ = UnixDomainSocket::CreateAndListenWithAbstractNamespace( |
- file_path_.value(), socket_delegate_.get(), MakeAuthCallback()); |
+ file_path_.value(), "", socket_delegate_.get(), MakeAuthCallback()); |
+ EXPECT_FALSE(socket_.get() == NULL); |
+} |
+ |
+TEST_F(UnixDomainSocketTest, TestFallbackName) { |
+ scoped_refptr<UnixDomainSocket> existing_socket = |
+ UnixDomainSocket::CreateAndListenWithAbstractNamespace( |
+ file_path_.value(), "", socket_delegate_.get(), MakeAuthCallback()); |
+ EXPECT_FALSE(existing_socket.get() == NULL); |
+ // First, try to bind socket with the same name with no fallback name. |
+ socket_ = |
+ UnixDomainSocket::CreateAndListenWithAbstractNamespace( |
+ file_path_.value(), "", socket_delegate_.get(), MakeAuthCallback()); |
+ EXPECT_TRUE(socket_.get() == NULL); |
+ // Now with a fallback name. |
+ socket_ = UnixDomainSocket::CreateAndListenWithAbstractNamespace( |
+ file_path_.value(), |
+ MakeSocketPath(kFallbackSocketName), |
+ socket_delegate_.get(), |
+ MakeAuthCallback()); |
EXPECT_FALSE(socket_.get() == NULL); |
+ existing_socket = NULL; |
} |
#endif |