Index: base/supports_user_data_unittest.cc |
diff --git a/base/supports_user_data_unittest.cc b/base/supports_user_data_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6fb1102427556da5b24b68603972c1e1d30572c2 |
--- /dev/null |
+++ b/base/supports_user_data_unittest.cc |
@@ -0,0 +1,37 @@ |
+// Copyright 2014 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/supports_user_data.h" |
+ |
+#include <vector> |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace base { |
+ |
+namespace { |
+ |
+struct TestSupportsUserData : public SupportsUserData {}; |
+ |
+struct UsesItself : public SupportsUserData::Data { |
+ UsesItself(SupportsUserData* supports_user_data, const void* key) |
+ : supports_user_data_(supports_user_data), key_(key) {} |
Peter Kasting
2014/05/28 03:44:13
Nit: One initializer per line if they don't all fi
Jeffrey Yasskin
2014/05/28 05:45:26
Done, and filed b/15292387.
|
+ virtual ~UsesItself() { |
+ EXPECT_EQ(NULL, supports_user_data_->GetUserData(key_)); |
+ } |
+ |
+ SupportsUserData* supports_user_data_; |
+ const void* key_; |
+}; |
+ |
+TEST(SupportsUserDataTest, ClearWorksRecursively) { |
+ TestSupportsUserData supports_user_data; |
+ char key = 0; |
+ supports_user_data.SetUserData(&key, |
+ new UsesItself(&supports_user_data, &key)); |
+ // Destruction of supports_user_data runs the actual test. |
+} |
+ |
+} // namespace |
+} // namespace base |
Peter Kasting
2014/05/28 03:44:13
Nit: Either add a blank line here or take it out a
Jeffrey Yasskin
2014/05/28 05:45:26
Thanks; I've taken it out above.
|