OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ | 5 #ifndef REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ |
6 #define REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ | 6 #define REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
49 HOST, | 49 HOST, |
50 CLIENT, | 50 CLIENT, |
51 }; | 51 }; |
52 | 52 |
53 enum Action { | 53 enum Action { |
54 ACCEPT, | 54 ACCEPT, |
55 REJECT, | 55 REJECT, |
56 REJECT_CHANNEL | 56 REJECT_CHANNEL |
57 }; | 57 }; |
58 | 58 |
59 FakeAuthenticator(Type type, int round_trips, Action action, bool async); | 59 struct Config { |
60 Config(); | |
61 Config(Action action); | |
62 Config(int round_trips, Action action, bool async); | |
63 | |
64 int round_trips = 1; | |
65 Action action = Action::ACCEPT; | |
66 bool async = false; | |
67 }; | |
68 | |
69 FakeAuthenticator(Type type, | |
70 Config config, | |
71 const std::string& local_id, | |
72 const std::string& remote_id); | |
73 | |
74 // Special constructor for authenticators in ACCEPTED or REJECTED state that | |
75 // don't exchange any messages. | |
76 FakeAuthenticator(Action action); | |
60 | 77 |
61 ~FakeAuthenticator() override; | 78 ~FakeAuthenticator() override; |
62 | 79 |
63 // Set the number of messages that the authenticator needs to process before | 80 // Set the number of messages that the authenticator needs to process before |
64 // started() returns true. Default to 0. | 81 // started() returns true. Default to 0. |
65 void set_messages_till_started(int messages); | 82 void set_messages_till_started(int messages); |
66 | 83 |
67 // Sets auth key to be returned by GetAuthKey(). Must be called when | 84 // Sets auth key to be returned by GetAuthKey(). Must be called when |
68 // |round_trips| is set to 0. | 85 // |round_trips| is set to 0. |
69 void set_auth_key(const std::string& auth_key) { auth_key_ = auth_key; } | 86 void set_auth_key(const std::string& auth_key) { auth_key_ = auth_key; } |
(...skipping 12 matching lines...) Expand all Loading... | |
82 RejectionReason rejection_reason() const override; | 99 RejectionReason rejection_reason() const override; |
83 void ProcessMessage(const buzz::XmlElement* message, | 100 void ProcessMessage(const buzz::XmlElement* message, |
84 const base::Closure& resume_callback) override; | 101 const base::Closure& resume_callback) override; |
85 std::unique_ptr<buzz::XmlElement> GetNextMessage() override; | 102 std::unique_ptr<buzz::XmlElement> GetNextMessage() override; |
86 const std::string& GetAuthKey() const override; | 103 const std::string& GetAuthKey() const override; |
87 std::unique_ptr<ChannelAuthenticator> CreateChannelAuthenticator() | 104 std::unique_ptr<ChannelAuthenticator> CreateChannelAuthenticator() |
88 const override; | 105 const override; |
89 | 106 |
90 protected: | 107 protected: |
91 const Type type_; | 108 const Type type_; |
92 const int round_trips_; | 109 const Config config_; |
93 const Action action_; | 110 const std::string local_id_; |
94 const bool async_; | 111 const std::string remote_id_; |
95 | 112 |
96 // Total number of messages that have been processed. | 113 // Total number of messages that have been processed. |
97 int messages_ = 0; | 114 int messages_ = 0; |
98 // Number of messages that the authenticator needs to process before started() | 115 // Number of messages that the authenticator needs to process before started() |
99 // returns true. Default to 0. | 116 // returns true. Default to 0. |
100 int messages_till_started_ = 0; | 117 int messages_till_started_ = 0; |
101 | 118 |
102 int pause_message_index_ = -1; | 119 int pause_message_index_ = -1; |
103 base::Closure resume_closure_; | 120 base::Closure resume_closure_; |
104 | 121 |
105 std::string auth_key_; | 122 std::string auth_key_; |
106 | 123 |
107 DISALLOW_COPY_AND_ASSIGN(FakeAuthenticator); | 124 DISALLOW_COPY_AND_ASSIGN(FakeAuthenticator); |
108 }; | 125 }; |
109 | 126 |
110 class FakeHostAuthenticatorFactory : public AuthenticatorFactory { | 127 class FakeHostAuthenticatorFactory : public AuthenticatorFactory { |
111 public: | 128 public: |
112 FakeHostAuthenticatorFactory( | 129 FakeHostAuthenticatorFactory(int messages_till_start, |
113 int round_trips, int messages_till_start, | 130 FakeAuthenticator::Config config); |
joedow
2017/04/11 16:20:34
nit: Config struct passed by const ref?
Sergey Ulanov
2017/04/11 21:14:20
That struct is only 12 bytes, not much bigger than
| |
114 FakeAuthenticator::Action action, bool async); | |
115 ~FakeHostAuthenticatorFactory() override; | 131 ~FakeHostAuthenticatorFactory() override; |
116 | 132 |
117 // AuthenticatorFactory interface. | 133 // AuthenticatorFactory interface. |
118 std::unique_ptr<Authenticator> CreateAuthenticator( | 134 std::unique_ptr<Authenticator> CreateAuthenticator( |
119 const std::string& local_jid, | 135 const std::string& local_jid, |
120 const std::string& remote_jid) override; | 136 const std::string& remote_jid) override; |
121 | 137 |
122 private: | 138 private: |
123 const int round_trips_; | |
124 const int messages_till_started_; | 139 const int messages_till_started_; |
125 const FakeAuthenticator::Action action_; | 140 const FakeAuthenticator::Config config_; |
126 const bool async_; | |
127 | 141 |
128 DISALLOW_COPY_AND_ASSIGN(FakeHostAuthenticatorFactory); | 142 DISALLOW_COPY_AND_ASSIGN(FakeHostAuthenticatorFactory); |
129 }; | 143 }; |
130 | 144 |
131 } // namespace protocol | 145 } // namespace protocol |
132 } // namespace remoting | 146 } // namespace remoting |
133 | 147 |
134 #endif // REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ | 148 #endif // REMOTING_PROTOCOL_FAKE_AUTHENTICATOR_H_ |
OLD | NEW |