1 // Copyright 2016 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 #ifndef BASE_TEST_TEST_MESSAGE_LOOP_H_ 6 #define BASE_TEST_TEST_MESSAGE_LOOP_H_ 7 8 #include "base/message_loop/message_loop.h" 9 10 namespace base { 11 12 // TestMessageLoop is a convenience class for unittests that need to create a 13 // message loop without a real thread backing it. For most tests, 14 // it is sufficient to just instantiate TestMessageLoop as a member variable. 15 // 16 // TestMessageLoop will attempt to drain the underlying MessageLoop on 17 // destruction for clean teardown of tests. 18 class TestMessageLoop { 19 public: 20 TestMessageLoop(); 21 explicit TestMessageLoop(MessageLoop::Type type); 22 ~TestMessageLoop(); 23 task_runner()24 const scoped_refptr<SingleThreadTaskRunner>& task_runner() { 25 return loop_.task_runner(); 26 } 27 28 private: 29 MessageLoop loop_; 30 }; 31 32 } // namespace base 33 34 #endif // BASE_TEST_TEST_MESSAGE_LOOP_H_ 35