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.
5 #ifndef REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_
6 #define REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_
8 #include "base/callback.h"
9 #include "base/memory/weak_ptr.h"
10 #include "remoting/protocol/authenticator.h"
11 #include "remoting/protocol/channel_authenticator.h"
16 class FakeChannelAuthenticator
: public ChannelAuthenticator
{
18 FakeChannelAuthenticator(bool accept
, bool async
);
19 ~FakeChannelAuthenticator() override
;
21 // ChannelAuthenticator interface.
22 void SecureAndAuthenticate(scoped_ptr
<net::StreamSocket
> socket
,
23 const DoneCallback
& done_callback
) override
;
26 void OnAuthBytesWritten(int result
);
27 void OnAuthBytesRead(int result
);
29 void CallDoneCallback();
34 scoped_ptr
<net::StreamSocket
> socket_
;
35 DoneCallback done_callback_
;
38 bool did_write_bytes_
;
40 base::WeakPtrFactory
<FakeChannelAuthenticator
> weak_factory_
;
42 DISALLOW_COPY_AND_ASSIGN(FakeChannelAuthenticator
);
45 class FakeAuthenticator
: public Authenticator
{
58 FakeAuthenticator(Type type
, int round_trips
, Action action
, bool async
);
60 ~FakeAuthenticator() override
;
62 // Set the number of messages that the authenticator needs to process before
63 // started() returns true. Default to 0.
64 void set_messages_till_started(int messages
);
66 // Authenticator interface.
67 State
state() const override
;
68 bool started() const override
;
69 RejectionReason
rejection_reason() const override
;
70 void ProcessMessage(const buzz::XmlElement
* message
,
71 const base::Closure
& resume_callback
) override
;
72 scoped_ptr
<buzz::XmlElement
> GetNextMessage() override
;
73 scoped_ptr
<ChannelAuthenticator
> CreateChannelAuthenticator() const override
;
81 // Total number of messages that have been processed.
83 // Number of messages that the authenticator needs to process before started()
84 // returns true. Default to 0.
85 int messages_till_started_
;
87 DISALLOW_COPY_AND_ASSIGN(FakeAuthenticator
);
90 class FakeHostAuthenticatorFactory
: public AuthenticatorFactory
{
92 FakeHostAuthenticatorFactory(
93 int round_trips
, int messages_till_start
,
94 FakeAuthenticator::Action action
, bool async
);
95 ~FakeHostAuthenticatorFactory() override
;
97 // AuthenticatorFactory interface.
98 scoped_ptr
<Authenticator
> CreateAuthenticator(
99 const std::string
& local_jid
,
100 const std::string
& remote_jid
,
101 const buzz::XmlElement
* first_message
) override
;
105 int messages_till_started_
;
106 FakeAuthenticator::Action action_
;
109 DISALLOW_COPY_AND_ASSIGN(FakeHostAuthenticatorFactory
);
112 } // namespace protocol
113 } // namespace remoting
115 #endif // REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_