1*635a8641SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #ifndef BASE_TEST_TEST_MESSAGE_LOOP_H_ 6*635a8641SAndroid Build Coastguard Worker #define BASE_TEST_TEST_MESSAGE_LOOP_H_ 7*635a8641SAndroid Build Coastguard Worker 8*635a8641SAndroid Build Coastguard Worker #include "base/message_loop/message_loop.h" 9*635a8641SAndroid Build Coastguard Worker 10*635a8641SAndroid Build Coastguard Worker namespace base { 11*635a8641SAndroid Build Coastguard Worker 12*635a8641SAndroid Build Coastguard Worker // TestMessageLoop is a convenience class for unittests that need to create a 13*635a8641SAndroid Build Coastguard Worker // message loop without a real thread backing it. For most tests, 14*635a8641SAndroid Build Coastguard Worker // it is sufficient to just instantiate TestMessageLoop as a member variable. 15*635a8641SAndroid Build Coastguard Worker // 16*635a8641SAndroid Build Coastguard Worker // TestMessageLoop will attempt to drain the underlying MessageLoop on 17*635a8641SAndroid Build Coastguard Worker // destruction for clean teardown of tests. 18*635a8641SAndroid Build Coastguard Worker class TestMessageLoop { 19*635a8641SAndroid Build Coastguard Worker public: 20*635a8641SAndroid Build Coastguard Worker TestMessageLoop(); 21*635a8641SAndroid Build Coastguard Worker explicit TestMessageLoop(MessageLoop::Type type); 22*635a8641SAndroid Build Coastguard Worker ~TestMessageLoop(); 23*635a8641SAndroid Build Coastguard Worker task_runner()24*635a8641SAndroid Build Coastguard Worker const scoped_refptr<SingleThreadTaskRunner>& task_runner() { 25*635a8641SAndroid Build Coastguard Worker return loop_.task_runner(); 26*635a8641SAndroid Build Coastguard Worker } 27*635a8641SAndroid Build Coastguard Worker 28*635a8641SAndroid Build Coastguard Worker private: 29*635a8641SAndroid Build Coastguard Worker MessageLoop loop_; 30*635a8641SAndroid Build Coastguard Worker }; 31*635a8641SAndroid Build Coastguard Worker 32*635a8641SAndroid Build Coastguard Worker } // namespace base 33*635a8641SAndroid Build Coastguard Worker 34*635a8641SAndroid Build Coastguard Worker #endif // BASE_TEST_TEST_MESSAGE_LOOP_H_ 35