| Index: remoting/host/client_session_unittest.cc
|
| diff --git a/remoting/host/client_session_unittest.cc b/remoting/host/client_session_unittest.cc
|
| index 7cd21ee831213a6bc42dee1a2c25c9d2d1ff8801..450bb94659cf0a84188eec02815d55249d357f79 100644
|
| --- a/remoting/host/client_session_unittest.cc
|
| +++ b/remoting/host/client_session_unittest.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/test/test_simple_task_runner.h"
|
| #include "remoting/base/auto_thread_task_runner.h"
|
| #include "remoting/base/constants.h"
|
| #include "remoting/host/audio_capturer.h"
|
| @@ -11,6 +12,7 @@
|
| #include "remoting/host/host_mock_objects.h"
|
| #include "remoting/host/screen_capturer_fake.h"
|
| #include "remoting/protocol/protocol_mock_objects.h"
|
| +#include "testing/gmock/include/gmock/gmock-matchers.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
|
| @@ -35,6 +37,8 @@ using testing::Expectation;
|
| using testing::Return;
|
| using testing::ReturnRef;
|
| using testing::Sequence;
|
| +using testing::StrEq;
|
| +using testing::StrictMock;
|
|
|
| namespace {
|
|
|
| @@ -55,7 +59,15 @@ ACTION_P2(LocalMouseMoved, client_session, event) {
|
| webrtc::DesktopVector(event.x(), event.y()));
|
| }
|
|
|
| -} // namespace
|
| +ACTION_P2(SetGnubbyAuthHandlerForTesting, client_session, gnubby_auth_handler) {
|
| + client_session->SetGnubbyAuthHandlerForTesting(gnubby_auth_handler);
|
| +}
|
| +
|
| +ACTION_P2(DeliverClientMessage, client_session, message) {
|
| + client_session->DeliverClientMessage(message);
|
| +}
|
| +
|
| +}
|
|
|
| class ClientSessionTest : public testing::Test {
|
| public:
|
| @@ -167,7 +179,8 @@ void ClientSessionTest::SetUp() {
|
| connection.PassAs<protocol::ConnectionToClient>(),
|
| desktop_environment_factory_.get(),
|
| base::TimeDelta(),
|
| - NULL));
|
| + NULL,
|
| + false));
|
| }
|
|
|
| void ClientSessionTest::TearDown() {
|
| @@ -294,7 +307,7 @@ MATCHER_P2(EqualsMouseButtonEvent, button, down, "") {
|
| return arg.button() == button && arg.button_down() == down;
|
| }
|
|
|
| -}
|
| +} // namespace
|
|
|
| TEST_F(ClientSessionTest, InputStubFilter) {
|
| protocol::KeyEvent key_event1;
|
| @@ -539,4 +552,59 @@ TEST_F(ClientSessionTest, ClampMouseEvents) {
|
| message_loop_.Run();
|
| }
|
|
|
| +TEST_F(ClientSessionTest, NoGnubbyAuth) {
|
| + protocol::ExtensionMessage message;
|
| + message.set_type("gnubby-auth");
|
| + message.set_data("test");
|
| +
|
| + Expectation authenticated =
|
| + EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_))
|
| + .WillOnce(Return(true));
|
| + EXPECT_CALL(*input_injector_, StartPtr(_)).After(authenticated);
|
| + EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_))
|
| + .After(authenticated)
|
| + .WillOnce(DoAll(
|
| + DeliverClientMessage(client_session_.get(), message),
|
| + InvokeWithoutArgs(this, &ClientSessionTest::DisconnectClientSession),
|
| + InvokeWithoutArgs(this, &ClientSessionTest::StopClientSession)));
|
| + EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
| +
|
| + ConnectClientSession();
|
| + message_loop_.Run();
|
| +}
|
| +
|
| +TEST_F(ClientSessionTest, EnableGnubbyAuth) {
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner =
|
| + new base::TestSimpleTaskRunner();
|
| +
|
| + scoped_ptr<MockGnubbyConnectionFactory> connection_factory;
|
| + connection_factory.reset(new MockGnubbyConnectionFactory());
|
| +
|
| + // Lifetime controlled by object under test.
|
| + MockGnubbyAuthHandler* gnubby_auth_handler = new MockGnubbyAuthHandler(
|
| + task_runner, connection_factory.get(), &client_stub_);
|
| +
|
| + protocol::ExtensionMessage message;
|
| + message.set_type("gnubby-auth");
|
| + message.set_data("test");
|
| +
|
| + Expectation authenticated =
|
| + EXPECT_CALL(session_event_handler_, OnSessionAuthenticated(_))
|
| + .WillOnce(Return(true));
|
| + EXPECT_CALL(*input_injector_, StartPtr(_)).After(authenticated);
|
| + EXPECT_CALL(session_event_handler_, OnSessionChannelsConnected(_))
|
| + .After(authenticated)
|
| + .WillOnce(DoAll(
|
| + SetGnubbyAuthHandlerForTesting(client_session_.get(),
|
| + gnubby_auth_handler),
|
| + DeliverClientMessage(client_session_.get(), message),
|
| + InvokeWithoutArgs(this, &ClientSessionTest::DisconnectClientSession),
|
| + InvokeWithoutArgs(this, &ClientSessionTest::StopClientSession)));
|
| + EXPECT_CALL(*gnubby_auth_handler, DeliverClientMessage(_));
|
| + EXPECT_CALL(session_event_handler_, OnSessionClosed(_));
|
| +
|
| + ConnectClientSession();
|
| + message_loop_.Run();
|
| +}
|
| +
|
| } // namespace remoting
|
|
|