| Index: ios/chrome/test/app/history_test_util.mm
|
| diff --git a/ios/chrome/test/app/history_test_util.mm b/ios/chrome/test/app/history_test_util.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..33942f902bbe3864c4fb542cae6da460408a7079
|
| --- /dev/null
|
| +++ b/ios/chrome/test/app/history_test_util.mm
|
| @@ -0,0 +1,49 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ios/chrome/test/app/history_test_util.h"
|
| +
|
| +#include "base/mac/bind_objc_block.h"
|
| +#include "base/test/ios/wait_util.h"
|
| +#include "components/browsing_data/core/browsing_data_utils.h"
|
| +#import "ios/chrome/app/main_controller.h"
|
| +#import "ios/chrome/app/main_controller_private.h"
|
| +#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
|
| +#include "ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h"
|
| +#include "ios/chrome/browser/callback_counter.h"
|
| +#import "ios/chrome/test/app/chrome_test_util.h"
|
| +
|
| +namespace chrome_test_util {
|
| +
|
| +void ClearBrowsingHistory() {
|
| + MainController* main_controller = GetMainController();
|
| + ios::ChromeBrowserState* active_state = GetOriginalBrowserState();
|
| + scoped_refptr<CallbackCounter> callback_counter(
|
| + new CallbackCounter(base::BindBlock(^{
|
| + })));
|
| + callback_counter->IncrementCount();
|
| + __block bool did_complete = false;
|
| + [main_controller
|
| + removeBrowsingDataFromBrowserState:active_state
|
| + mask:IOSChromeBrowsingDataRemover::
|
| + REMOVE_HISTORY
|
| + timePeriod:browsing_data::ALL_TIME
|
| + completionHandler:^{
|
| + callback_counter->DecrementCount();
|
| + did_complete = true;
|
| + }];
|
| + // TODO(crbug.com/631795): This is a workaround that will be removed soon.
|
| + // This code waits for success or timeout, then returns. This needs to be
|
| + // fixed so that failure is correctly marked here, or the caller handles
|
| + // waiting for the operation to complete.
|
| + // Wait for history to be cleared.
|
| + NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:4.0];
|
| + while (!did_complete &&
|
| + [[NSDate date] compare:deadline] != NSOrderedDescending) {
|
| + base::test::ios::SpinRunLoopWithMaxDelay(
|
| + base::TimeDelta::FromSecondsD(0.1));
|
| + }
|
| +}
|
| +
|
| +} // namespace chrome_test_util
|
|
|