Index: chrome/test/chromedriver/net/timeout_unittest.cc |
diff --git a/chrome/test/chromedriver/net/timeout_unittest.cc b/chrome/test/chromedriver/net/timeout_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eb3663152817018e5e0816598753b770e0704fa3 |
--- /dev/null |
+++ b/chrome/test/chromedriver/net/timeout_unittest.cc |
@@ -0,0 +1,63 @@ |
+// Copyright (c) 2016 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 "base/logging.h" |
+#include "chrome/test/chromedriver/net/timeout.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+using base::TimeDelta; |
+ |
+TEST(TimeoutTest, Basics) { |
+ Timeout timeout; |
+ EXPECT_FALSE(timeout.is_set()); |
+ EXPECT_FALSE(timeout.IsExpired()); |
+ EXPECT_EQ(TimeDelta::Max(), timeout.GetDuration()); |
+ EXPECT_EQ(TimeDelta::Max(), timeout.GetRemainingTime()); |
+ |
+ timeout.SetDuration(TimeDelta()); |
+ EXPECT_TRUE(timeout.is_set()); |
+ EXPECT_TRUE(timeout.IsExpired()); |
+ EXPECT_EQ(TimeDelta(), timeout.GetDuration()); |
+ EXPECT_GE(TimeDelta(), timeout.GetRemainingTime()); |
+} |
+ |
+TEST(TimeoutTest, SetDuration) { |
+ Timeout timeout(TimeDelta::FromSeconds(1)); |
+ |
+ // It's ok to set the same duration again, since nothing changes. |
+ timeout.SetDuration(TimeDelta::FromSeconds(1)); |
+ |
+#if DCHECK_IS_ON() && GTEST_HAS_DEATH_TEST && !defined(OS_ANDROID) |
+ EXPECT_DEATH(timeout.SetDuration(TimeDelta::FromMinutes(30)), ""); |
+#endif // DCHECK_IS_ON() && GTEST_HAS_DEATH_TEST && !defined(OS_ANDROID) |
+} |
+ |
+TEST(TimeoutTest, Derive) { |
+ Timeout timeout(TimeDelta::FromMinutes(5)); |
+ EXPECT_TRUE(timeout.is_set()); |
+ EXPECT_FALSE(timeout.IsExpired()); |
+ EXPECT_EQ(TimeDelta::FromMinutes(5), timeout.GetDuration()); |
+ EXPECT_GE(TimeDelta::FromMinutes(5), timeout.GetRemainingTime()); |
+ |
+ Timeout small = Timeout(TimeDelta::FromSeconds(10), &timeout); |
+ EXPECT_TRUE(small.is_set()); |
+ EXPECT_FALSE(small.IsExpired()); |
+ EXPECT_EQ(TimeDelta::FromSeconds(10), small.GetDuration()); |
+ |
+ Timeout large = Timeout(TimeDelta::FromMinutes(30), &timeout); |
+ EXPECT_TRUE(large.is_set()); |
+ EXPECT_FALSE(large.IsExpired()); |
+ EXPECT_GE(timeout.GetDuration(), large.GetDuration()); |
+} |
+ |
+TEST(TimeoutTest, DeriveExpired) { |
+ Timeout timeout((TimeDelta())); |
+ EXPECT_TRUE(timeout.is_set()); |
+ EXPECT_TRUE(timeout.IsExpired()); |
+ |
+ Timeout derived = Timeout(TimeDelta::FromSeconds(10), &timeout); |
+ EXPECT_TRUE(derived.is_set()); |
+ EXPECT_TRUE(derived.IsExpired()); |
+ EXPECT_GE(TimeDelta(), derived.GetDuration()); |
+} |