OLD | NEW |
(Empty) | |
| 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 #include "ios/chrome/test/app/history_test_util.h" |
| 6 |
| 7 #include "base/mac/bind_objc_block.h" |
| 8 #include "base/test/ios/wait_util.h" |
| 9 #include "components/browsing_data/core/browsing_data_utils.h" |
| 10 #import "ios/chrome/app/main_controller.h" |
| 11 #import "ios/chrome/app/main_controller_private.h" |
| 12 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
| 13 #include "ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h" |
| 14 #include "ios/chrome/browser/callback_counter.h" |
| 15 #import "ios/chrome/test/app/chrome_test_util.h" |
| 16 |
| 17 namespace chrome_test_util { |
| 18 |
| 19 void ClearBrowsingHistory() { |
| 20 MainController* main_controller = GetMainController(); |
| 21 ios::ChromeBrowserState* active_state = GetOriginalBrowserState(); |
| 22 scoped_refptr<CallbackCounter> callback_counter( |
| 23 new CallbackCounter(base::BindBlock(^{ |
| 24 }))); |
| 25 callback_counter->IncrementCount(); |
| 26 __block bool did_complete = false; |
| 27 [main_controller |
| 28 removeBrowsingDataFromBrowserState:active_state |
| 29 mask:IOSChromeBrowsingDataRemover:: |
| 30 REMOVE_HISTORY |
| 31 timePeriod:browsing_data::ALL_TIME |
| 32 completionHandler:^{ |
| 33 callback_counter->DecrementCount(); |
| 34 did_complete = true; |
| 35 }]; |
| 36 // TODO(crbug.com/631795): This is a workaround that will be removed soon. |
| 37 // This code waits for success or timeout, then returns. This needs to be |
| 38 // fixed so that failure is correctly marked here, or the caller handles |
| 39 // waiting for the operation to complete. |
| 40 // Wait for history to be cleared. |
| 41 NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:4.0]; |
| 42 while (!did_complete && |
| 43 [[NSDate date] compare:deadline] != NSOrderedDescending) { |
| 44 base::test::ios::SpinRunLoopWithMaxDelay( |
| 45 base::TimeDelta::FromSecondsD(0.1)); |
| 46 } |
| 47 } |
| 48 |
| 49 } // namespace chrome_test_util |
OLD | NEW |