callback_helper_unittest.cc revision 0529e5d033099cbfc42635f6f6183833b09dff6e
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" 6 7#include "base/message_loop/message_loop.h" 8#include "base/run_loop.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11namespace sync_file_system { 12namespace drive_backend { 13 14namespace { 15 16void SimpleCallback(bool* called, int) { 17 ASSERT_TRUE(called); 18 EXPECT_FALSE(*called); 19 *called = true; 20} 21 22void CallbackWithPassed(bool* called, scoped_ptr<int>) { 23 ASSERT_TRUE(called); 24 EXPECT_FALSE(*called); 25 *called = true; 26} 27 28} // namespace 29 30TEST(DriveBackendCallbackHelperTest, CreateRelayedCallbackTest) { 31 base::MessageLoop message_loop; 32 33 bool called = false; 34 CreateRelayedCallback(base::Bind(&SimpleCallback, &called)).Run(0); 35 EXPECT_FALSE(called); 36 base::RunLoop().RunUntilIdle(); 37 EXPECT_TRUE(called); 38 39 called = false; 40 CreateRelayedCallback( 41 base::Bind(&CallbackWithPassed, &called)) 42 .Run(scoped_ptr<int>(new int)); 43 EXPECT_FALSE(called); 44 base::RunLoop().RunUntilIdle(); 45 EXPECT_TRUE(called); 46} 47 48} // namespace drive_backend 49} // namespace sync_file_system 50