- add sources.
[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 "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   virtual void SetUp() OVERRIDE;
46   void RunAuthExchange();
47   void RunHostInitiatedAuthExchange();
48   void RunChannelAuth(bool expected_fail);
49
50   void OnHostConnected(net::Error error,
51                        scoped_ptr<net::StreamSocket> socket);
52   void OnClientConnected(net::Error error,
53                          scoped_ptr<net::StreamSocket> socket);
54
55   base::MessageLoop message_loop_;
56
57   scoped_refptr<RsaKeyPair> key_pair_;
58   std::string host_public_key_;
59   std::string host_cert_;
60   scoped_ptr<Authenticator> host_;
61   scoped_ptr<Authenticator> client_;
62   scoped_ptr<FakeSocket> client_fake_socket_;
63   scoped_ptr<FakeSocket> host_fake_socket_;
64   scoped_ptr<ChannelAuthenticator> client_auth_;
65   scoped_ptr<ChannelAuthenticator> host_auth_;
66   MockChannelDoneCallback client_callback_;
67   MockChannelDoneCallback host_callback_;
68   scoped_ptr<net::StreamSocket> client_socket_;
69   scoped_ptr<net::StreamSocket> host_socket_;
70
71   DISALLOW_COPY_AND_ASSIGN(AuthenticatorTestBase);
72 };
73
74 }  // namespace protocol
75 }  // namespace remoting
76
77 #endif  // REMOTING_PROTOCOL_AUTHENTICATOR_TEST_BASE_H_