Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / remoting / protocol / authenticator_test_base.h
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 "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace net {
16 class StreamSocket;
17 }  // namespace net
18
19 namespace remoting {
20
21 class RsaKeyPair;
22
23 namespace protocol {
24
25 class Authenticator;
26 class ChannelAuthenticator;
27 class FakeStreamSocket;
28
29 class AuthenticatorTestBase : public testing::Test {
30  public:
31   AuthenticatorTestBase();
32   virtual ~AuthenticatorTestBase();
33
34  protected:
35   class MockChannelDoneCallback {
36    public:
37     MockChannelDoneCallback();
38     ~MockChannelDoneCallback();
39     MOCK_METHOD1(OnDone, void(int error));
40   };
41
42   static void ContinueAuthExchangeWith(Authenticator* sender,
43                                        Authenticator* receiver,
44                                        bool sender_started,
45                                        bool receiver_srated);
46   virtual void SetUp() OVERRIDE;
47   void RunAuthExchange();
48   void RunHostInitiatedAuthExchange();
49   void RunChannelAuth(bool expected_fail);
50
51   void OnHostConnected(int error,
52                        scoped_ptr<net::StreamSocket> socket);
53   void OnClientConnected(int error,
54                          scoped_ptr<net::StreamSocket> socket);
55
56   base::MessageLoop message_loop_;
57
58   scoped_refptr<RsaKeyPair> key_pair_;
59   std::string host_public_key_;
60   std::string host_cert_;
61   scoped_ptr<Authenticator> host_;
62   scoped_ptr<Authenticator> client_;
63   scoped_ptr<FakeStreamSocket> client_fake_socket_;
64   scoped_ptr<FakeStreamSocket> host_fake_socket_;
65   scoped_ptr<ChannelAuthenticator> client_auth_;
66   scoped_ptr<ChannelAuthenticator> host_auth_;
67   MockChannelDoneCallback client_callback_;
68   MockChannelDoneCallback host_callback_;
69   scoped_ptr<net::StreamSocket> client_socket_;
70   scoped_ptr<net::StreamSocket> host_socket_;
71
72   DISALLOW_COPY_AND_ASSIGN(AuthenticatorTestBase);
73 };
74
75 }  // namespace protocol
76 }  // namespace remoting
77
78 #endif  // REMOTING_PROTOCOL_AUTHENTICATOR_TEST_BASE_H_