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

Unified Diff: remoting/test/connection_time_observer_unittest.cc

Issue 1238343002: Added ConnectionTimeObserver to calculate the times to authenticate and connect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added unittest, display connection stats ability, and error check for transition delay. Created 5 years, 5 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/test/connection_time_observer_unittest.cc
diff --git a/remoting/test/connection_time_observer_unittest.cc b/remoting/test/connection_time_observer_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3bc9fc4ea0f159b0fc32ba89028e663a490d1cb1
--- /dev/null
+++ b/remoting/test/connection_time_observer_unittest.cc
@@ -0,0 +1,129 @@
+// 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/test/connection_time_observer.h"
+
+#include <utility>
+
+#include "base/time/time.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace remoting {
+namespace test {
+
+class ConnectionTimeObserverTest : public ::testing::Test {
+ public:
+ ConnectionTimeObserverTest();
+ ~ConnectionTimeObserverTest() override;
+
+ std::map<protocol::ConnectionToHost::State, base::TimeTicks> test_map_;
+
+ protected:
+ // Test interface.
+ void SetUp() override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ConnectionTimeObserverTest);
+};
+
+ConnectionTimeObserverTest::ConnectionTimeObserverTest() {
+}
+
+ConnectionTimeObserverTest::~ConnectionTimeObserverTest() {
+}
+
+void ConnectionTimeObserverTest::SetUp() {
+ base::TimeTicks now = base::TimeTicks::Now();
+ test_map_.insert(std::make_pair(
+ protocol::ConnectionToHost::State::INITIALIZING,
+ now + base::TimeDelta::FromMilliseconds(10)));
+ test_map_.insert(std::make_pair(
+ protocol::ConnectionToHost::State::CONNECTING,
+ now + base::TimeDelta::FromMilliseconds(20)));
+ test_map_.insert(std::make_pair(
+ protocol::ConnectionToHost::State::AUTHENTICATED,
+ now + base::TimeDelta::FromMilliseconds(30)));
+ test_map_.insert(std::make_pair(
+ protocol::ConnectionToHost::State::CONNECTED,
+ now + base::TimeDelta::FromMilliseconds(40)));
+ test_map_.insert(std::make_pair(
+ protocol::ConnectionToHost::State::CLOSED,
+ now + base::TimeDelta::FromMilliseconds(50)));
+}
+
+TEST_F(ConnectionTimeObserverTest, ChromotingConnectionSuccess) {
+ ConnectionTimeObserver connection_time_observer;
+
+ connection_time_observer.SetTransitionTimesMapForTest(test_map_);
+
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::INITIALIZING,
+ protocol::ConnectionToHost::State::CONNECTING).InMilliseconds(), 10);
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::CONNECTING,
+ protocol::ConnectionToHost::State::AUTHENTICATED).InMilliseconds(), 10);
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::AUTHENTICATED,
+ protocol::ConnectionToHost::State::CONNECTED).InMilliseconds(), 10);
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::CONNECTED,
+ protocol::ConnectionToHost::State::CLOSED).InMilliseconds(), 10);
+}
+
+TEST_F(ConnectionTimeObserverTest, StartStateNotFound) {
+ ConnectionTimeObserver connection_time_observer;
+
+ connection_time_observer.SetTransitionTimesMapForTest(test_map_);
+
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::FAILED,
+ protocol::ConnectionToHost::State::CLOSED),
+ base::TimeDelta::Max());
+}
+
+TEST_F(ConnectionTimeObserverTest, EndStateNotFound) {
+ ConnectionTimeObserver connection_time_observer;
+
+ connection_time_observer.SetTransitionTimesMapForTest(test_map_);
+
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::INITIALIZING,
+ protocol::ConnectionToHost::State::FAILED),
+ base::TimeDelta::Max());
+}
+
+TEST_F(ConnectionTimeObserverTest, NegativeTranitionDelay) {
joedow 2015/07/24 13:38:29 s/Tranition/Transition
tonychun 2015/07/27 16:03:38 Done.
+ ConnectionTimeObserver connection_time_observer;
+
+ connection_time_observer.SetTransitionTimesMapForTest(test_map_);
+
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::CLOSED,
+ protocol::ConnectionToHost::State::INITIALIZING),
+ base::TimeDelta::Max());
+}
+
+TEST_F(ConnectionTimeObserverTest, TestOnConnectionStateChanged) {
+ ConnectionTimeObserver connection_time_observer;
+
+ connection_time_observer.SetTransitionTimesMapForTest(test_map_);
+
+ // Should fail to find FAILED.
+ EXPECT_EQ(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::INITIALIZING,
+ protocol::ConnectionToHost::State::FAILED),
+ base::TimeDelta::Max());
+
+ // Registers the time at which FAILED state occurred into the map.
+ connection_time_observer.ConnectionStateChanged(
+ protocol::ConnectionToHost::State::FAILED,
+ protocol::ErrorCode::PEER_IS_OFFLINE);
+
+ EXPECT_GT(connection_time_observer.GetStateTransitionDelay(
+ protocol::ConnectionToHost::State::INITIALIZING,
+ protocol::ConnectionToHost::State::FAILED).InMilliseconds(), 0);
joedow 2015/07/24 13:38:29 You probably want to use the is_zero() method on t
tonychun 2015/07/27 16:03:38 Done.
+}
joedow 2015/07/24 13:38:29 You should add a test that sets two states via Con
tonychun 2015/07/27 16:03:38 Done.
+
+} // namespace test
+} // namespace remoting
« remoting/test/connection_time_observer.cc ('K') | « remoting/test/connection_time_observer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698