Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(592)

Unified Diff: remoting/protocol/fake_connection_to_host.cc

Issue 976233003: Adding the base ChromotingInstance implementation and unittests. This class will be used by the ap… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing a unit test name Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/protocol/fake_connection_to_host.cc
diff --git a/remoting/protocol/fake_connection_to_host.cc b/remoting/protocol/fake_connection_to_host.cc
new file mode 100644
index 0000000000000000000000000000000000000000..dc3ae7d8d2e80469df7cd830e15904a269be92b2
--- /dev/null
+++ b/remoting/protocol/fake_connection_to_host.cc
@@ -0,0 +1,79 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/protocol/fake_connection_to_host.h"
+
+#include "remoting/protocol/authenticator.h"
+
+namespace remoting {
+namespace test {
+
+FakeConnectionToHost::FakeConnectionToHost() :
+ session_state_change_error_code_(protocol::ErrorCode::OK) {}
+
+FakeConnectionToHost::~FakeConnectionToHost() {}
+
+void FakeConnectionToHost::ConnectPtr(
+ SignalStrategy* signal_strategy,
+ protocol::TransportFactory* transport_factory,
+ protocol::Authenticator* authenticator,
+ const std::string& host_jid,
+ HostEventCallback* event_callback) {
+ DCHECK(CalledOnValidThread());
+
+ // WARNING: Do not store |transport_factory| or |authenticator|.
+ // This function is given raw pointers for these params instead of a
+ // scoped_ptr so the method can be called using GMock macros. Since we cannot
+ // take ownership of the pointer, it isn't safe to assign them here for later
+ // use.
+ // |event_callback| and |signal_strategy| are OK to use as they are both raw
+ // ptrs in the original method signature.
+ event_callback_ = event_callback;
+
+ SetState(CONNECTING, protocol::OK);
+}
+
+void FakeConnectionToHost::OnSessionStateChange(
+ protocol::Session::State state) {
+ DCHECK(CalledOnValidThread());
+ DCHECK(event_callback_);
+
+ switch (state) {
+ case protocol::Session::INITIALIZING:
+ case protocol::Session::CONNECTING:
+ case protocol::Session::ACCEPTING:
+ case protocol::Session::AUTHENTICATING:
+ // No updates for these events.
+ break;
+
+ case protocol::Session::CONNECTED:
+ SetState(CONNECTED, protocol::ErrorCode::OK);
+ break;
+
+ case protocol::Session::AUTHENTICATED:
+ SetState(AUTHENTICATED, protocol::ErrorCode::OK);
+ break;
+
+ case protocol::Session::CLOSED:
+ SetState(CLOSED, protocol::ErrorCode::OK);
+ break;
+
+ case protocol::Session::FAILED:
+ // session_state_change_error_code_ must be set before sending a FAILED
+ // session state.
+ DCHECK(session_state_change_error_code_ != protocol::ErrorCode::OK);
+ SetState(FAILED, session_state_change_error_code_);
+ break;
+ }
+}
+
+void FakeConnectionToHost::OnVideoChannelStatus(bool active) {
+ DCHECK(CalledOnValidThread());
+ DCHECK(event_callback_);
+
+ event_callback_->OnConnectionReady(active);
+}
+
+} // namespace test
+} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698