• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef REMOTING_PROTOCOL_AUTHENTICATOR_TEST_BASE_H_
6 #define REMOTING_PROTOCOL_AUTHENTICATOR_TEST_BASE_H_
7 
8 #include <string>
9 
10 #include "base/memory/ref_counted.h"
11 #include "base/message_loop/message_loop.h"
12 #include "net/base/net_errors.h"
13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 
16 namespace net {
17 class StreamSocket;
18 }  // namespace net
19 
20 namespace remoting {
21 
22 class RsaKeyPair;
23 
24 namespace protocol {
25 
26 class Authenticator;
27 class ChannelAuthenticator;
28 class FakeSocket;
29 
30 class AuthenticatorTestBase : public testing::Test {
31  public:
32   AuthenticatorTestBase();
33   virtual ~AuthenticatorTestBase();
34 
35  protected:
36   class MockChannelDoneCallback {
37    public:
38     MockChannelDoneCallback();
39     ~MockChannelDoneCallback();
40     MOCK_METHOD1(OnDone, void(net::Error error));
41   };
42 
43   static void ContinueAuthExchangeWith(Authenticator* sender,
44                                        Authenticator* receiver,
45                                        bool sender_started,
46                                        bool receiver_srated);
47   virtual void SetUp() OVERRIDE;
48   void RunAuthExchange();
49   void RunHostInitiatedAuthExchange();
50   void RunChannelAuth(bool expected_fail);
51 
52   void OnHostConnected(net::Error error,
53                        scoped_ptr<net::StreamSocket> socket);
54   void OnClientConnected(net::Error error,
55                          scoped_ptr<net::StreamSocket> socket);
56 
57   base::MessageLoop message_loop_;
58 
59   scoped_refptr<RsaKeyPair> key_pair_;
60   std::string host_public_key_;
61   std::string host_cert_;
62   scoped_ptr<Authenticator> host_;
63   scoped_ptr<Authenticator> client_;
64   scoped_ptr<FakeSocket> client_fake_socket_;
65   scoped_ptr<FakeSocket> host_fake_socket_;
66   scoped_ptr<ChannelAuthenticator> client_auth_;
67   scoped_ptr<ChannelAuthenticator> host_auth_;
68   MockChannelDoneCallback client_callback_;
69   MockChannelDoneCallback host_callback_;
70   scoped_ptr<net::StreamSocket> client_socket_;
71   scoped_ptr<net::StreamSocket> host_socket_;
72 
73   DISALLOW_COPY_AND_ASSIGN(AuthenticatorTestBase);
74 };
75 
76 }  // namespace protocol
77 }  // namespace remoting
78 
79 #endif  // REMOTING_PROTOCOL_AUTHENTICATOR_TEST_BASE_H_
80