Index: mojo/shell/incoming_connection_listener_unittest.cc |
diff --git a/mojo/shell/incoming_connection_listener_unittest.cc b/mojo/shell/incoming_connection_listener_unittest.cc |
deleted file mode 100644 |
index 3208fdd6dba26473f13eef7db5de920657187964..0000000000000000000000000000000000000000 |
--- a/mojo/shell/incoming_connection_listener_unittest.cc |
+++ /dev/null |
@@ -1,151 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/files/file_path.h" |
-#include "base/files/file_util.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/message_loop/message_loop.h" |
-#include "base/run_loop.h" |
-#include "mojo/edk/embedder/channel_init.h" |
-#include "mojo/edk/embedder/platform_channel_pair.h" |
-#include "mojo/shell/domain_socket/net_errors.h" |
-#include "mojo/shell/domain_socket/socket_descriptor.h" |
-#include "mojo/shell/domain_socket/test_completion_callback.h" |
-#include "mojo/shell/domain_socket/unix_domain_client_socket_posix.h" |
-#include "mojo/shell/external_application_registrar_connection.h" |
-#include "mojo/shell/incoming_connection_listener_posix.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace mojo { |
-namespace shell { |
-namespace { |
- |
-// Delegate implementation that expects success. |
-class TestDelegate : public IncomingConnectionListenerPosix::Delegate { |
- public: |
- TestDelegate() {} |
- ~TestDelegate() override {} |
- |
- void OnListening(int rv) override { EXPECT_EQ(net::OK, rv); } |
- void OnConnection(SocketDescriptor incoming) override { |
- EXPECT_NE(kInvalidSocket, incoming); |
- } |
-}; |
- |
-// Delegate implementation that expects a (configurable) failure to listen. |
-class ListeningFailsDelegate |
- : public IncomingConnectionListenerPosix::Delegate { |
- public: |
- explicit ListeningFailsDelegate(int expected) : expected_error_(expected) {} |
- ~ListeningFailsDelegate() override {} |
- |
- void OnListening(int rv) override { EXPECT_EQ(expected_error_, rv); } |
- void OnConnection(SocketDescriptor incoming) override { |
- FAIL() << "No connection should be attempted."; |
- } |
- |
- private: |
- const int expected_error_; |
-}; |
- |
-// For ExternalApplicationRegistrarConnection::Connect() callbacks. |
-void OnConnect(base::Closure quit_callback, int rv) { |
- EXPECT_EQ(net::OK, rv); |
- base::MessageLoop::current()->PostTask(FROM_HERE, quit_callback); |
-} |
- |
-} // namespace |
- |
-class IncomingConnectionListenerTest : public testing::Test { |
- public: |
- IncomingConnectionListenerTest() {} |
- ~IncomingConnectionListenerTest() override {} |
- |
- void SetUp() override { |
- ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
- socket_path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("socket")); |
- } |
- |
- protected: |
- base::MessageLoopForIO loop_; |
- base::RunLoop run_loop_; |
- |
- base::ScopedTempDir temp_dir_; |
- base::FilePath socket_path_; |
-}; |
- |
-TEST_F(IncomingConnectionListenerTest, CleanupCheck) { |
- TestDelegate delegate; |
- { |
- IncomingConnectionListenerPosix cleanup_check(socket_path_, &delegate); |
- cleanup_check.StartListening(); |
- ASSERT_TRUE(base::PathExists(socket_path_)); |
- } |
- ASSERT_FALSE(base::PathExists(socket_path_)); |
-} |
- |
-TEST_F(IncomingConnectionListenerTest, ConnectSuccess) { |
- TestDelegate delegate; |
- IncomingConnectionListenerPosix listener(socket_path_, &delegate); |
- |
- ASSERT_FALSE(base::PathExists(socket_path_)); |
- listener.StartListening(); |
- ASSERT_TRUE(base::PathExists(socket_path_)); |
- |
- ExternalApplicationRegistrarConnection connection(socket_path_); |
- connection.Connect(base::Bind(&OnConnect, run_loop_.QuitClosure())); |
- |
- run_loop_.Run(); |
-} |
- |
-TEST_F(IncomingConnectionListenerTest, ConnectSuccess_SocketFileExists) { |
- TestDelegate delegate; |
- IncomingConnectionListenerPosix listener(socket_path_, &delegate); |
- |
- ASSERT_EQ(1, base::WriteFile(socket_path_, "1", 1)); |
- ASSERT_TRUE(base::PathExists(socket_path_)); |
- listener.StartListening(); |
- |
- ExternalApplicationRegistrarConnection connection(socket_path_); |
- connection.Connect(base::Bind(&OnConnect, run_loop_.QuitClosure())); |
- |
- run_loop_.Run(); |
-} |
- |
-TEST_F(IncomingConnectionListenerTest, ConnectFails_SocketFileUndeletable) { |
- ListeningFailsDelegate fail_delegate(net::ERR_FILE_EXISTS); |
- IncomingConnectionListenerPosix listener(socket_path_, &fail_delegate); |
- |
- // Create the socket file. |
- ASSERT_EQ(1, base::WriteFile(socket_path_, "1", 1)); |
- ASSERT_TRUE(base::PathExists(socket_path_)); |
- |
- // Render it undeletable, but in a way that the test harness can recover |
- // later. |
- int temp_dir_perms = 0; |
- ASSERT_TRUE(base::GetPosixFilePermissions(temp_dir_.path(), &temp_dir_perms)); |
- ASSERT_TRUE( |
- base::SetPosixFilePermissions(temp_dir_.path(), |
- base::FILE_PERMISSION_READ_BY_USER | |
- base::FILE_PERMISSION_WRITE_BY_USER)); |
- // The listener should fail to start up. |
- listener.StartListening(); |
- |
- ASSERT_TRUE(base::SetPosixFilePermissions(temp_dir_.path(), temp_dir_perms)); |
-} |
- |
-TEST_F(IncomingConnectionListenerTest, ConnectFails_SocketDirNonexistent) { |
- base::FilePath nonexistent_dir(temp_dir_.path() |
- .Append(FILE_PATH_LITERAL("dir")) |
- .Append(FILE_PATH_LITERAL("file"))); |
- |
- ListeningFailsDelegate fail_delegate(net::ERR_FILE_NOT_FOUND); |
- IncomingConnectionListenerPosix listener(nonexistent_dir, &fail_delegate); |
- |
- // The listener should fail to start up. |
- listener.StartListening(); |
-} |
- |
-} // namespace shell |
-} // namespace mojo |