1 // Copyright (c) 2012 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 // Contains code shared by all browsing data browsertests. 6 7 #ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_BROWSERTEST_H_ 8 #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_BROWSERTEST_H_ 9 10 #include <list> 11 12 #include "base/basictypes.h" 13 #include "base/logging.h" 14 #include "base/message_loop/message_loop.h" 15 16 // This template can be used for the StartFetching methods of the browsing data 17 // helper classes. It is supposed to be instantiated with the respective 18 // browsing data info type. 19 template <typename T> 20 class BrowsingDataHelperCallback { 21 public: 22 BrowsingDataHelperCallback() 23 : has_result_(false) { 24 } 25 26 const std::list<T>& result() { 27 base::MessageLoop::current()->Run(); 28 DCHECK(has_result_); 29 return result_; 30 } 31 32 void callback(const std::list<T>& info) { 33 result_ = info; 34 has_result_ = true; 35 base::MessageLoop::current()->Quit(); 36 } 37 38 private: 39 bool has_result_; 40 std::list<T> result_; 41 42 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperCallback); 43 }; 44 45 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_HELPER_BROWSERTEST_H_ 46