Index: media/base/bind_to_loop_unittest.cc |
diff --git a/media/base/bind_to_loop_unittest.cc b/media/base/bind_to_loop_unittest.cc |
index fd9c93c201ce02e3922b3bd961167625fd2597e6..b1732ebffc12ef32af1e5a214b2b869a4ca69f69 100644 |
--- a/media/base/bind_to_loop_unittest.cc |
+++ b/media/base/bind_to_loop_unittest.cc |
@@ -18,6 +18,10 @@ void BoundBoolSetFromScopedPtr(bool* var, scoped_ptr<bool> val) { |
*var = *val; |
} |
+void BoundBoolSetFromScopedArray(bool* var, scoped_array<bool> val) { |
+ *var = val[0]; |
+} |
+ |
void BoundBoolSetFromConstRef(bool* var, const bool& val) { |
*var = val; |
} |
@@ -59,7 +63,7 @@ TEST_F(BindToLoopTest, Bool) { |
EXPECT_TRUE(bool_var); |
} |
-TEST_F(BindToLoopTest, ScopedPtrBool) { |
+TEST_F(BindToLoopTest, BoundScopedPtrBool) { |
bool bool_val = false; |
scoped_ptr<bool> scoped_ptr_bool(new bool(true)); |
base::Closure cb = BindToLoop(proxy_, base::Bind( |
@@ -70,6 +74,42 @@ TEST_F(BindToLoopTest, ScopedPtrBool) { |
EXPECT_TRUE(bool_val); |
} |
+TEST_F(BindToLoopTest, PassedScopedPtrBool) { |
+ bool bool_val = false; |
+ scoped_ptr<bool> scoped_ptr_bool(new bool(true)); |
+ base::Callback<void(scoped_ptr<bool>)> cb = BindToLoop(proxy_, base::Bind( |
+ &BoundBoolSetFromScopedPtr, &bool_val)); |
+ cb.Run(scoped_ptr_bool.Pass()); |
+ EXPECT_FALSE(bool_val); |
+ loop_.RunUntilIdle(); |
+ EXPECT_TRUE(bool_val); |
+} |
+ |
+TEST_F(BindToLoopTest, BoundScopedArrayBool) { |
+ bool bool_val = false; |
+ scoped_array<bool> scoped_array_bool(new bool[1]); |
+ scoped_array_bool[0] = true; |
+ base::Closure cb = BindToLoop(proxy_, base::Bind( |
+ &BoundBoolSetFromScopedArray, &bool_val, |
+ base::Passed(&scoped_array_bool))); |
+ cb.Run(); |
+ EXPECT_FALSE(bool_val); |
+ loop_.RunUntilIdle(); |
+ EXPECT_TRUE(bool_val); |
+} |
+ |
+TEST_F(BindToLoopTest, PassedScopedArrayBool) { |
+ bool bool_val = false; |
+ scoped_array<bool> scoped_array_bool(new bool[1]); |
+ scoped_array_bool[0] = true; |
+ base::Callback<void(scoped_array<bool>)> cb = BindToLoop(proxy_, base::Bind( |
+ &BoundBoolSetFromScopedArray, &bool_val)); |
+ cb.Run(scoped_array_bool.Pass()); |
+ EXPECT_FALSE(bool_val); |
+ loop_.RunUntilIdle(); |
+ EXPECT_TRUE(bool_val); |
+} |
+ |
TEST_F(BindToLoopTest, BoolConstRef) { |
bool bool_var = false; |
bool true_var = true; |