summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browsing_data/browsing_data_remover_test_util.cc
blob: 179071648866b566c9701c3ebbd841c20c073bea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2014 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 "chrome/browser/browsing_data/browsing_data_remover_test_util.h"

BrowsingDataRemoverCompletionObserver::BrowsingDataRemoverCompletionObserver(
    BrowsingDataRemover* remover)
    : message_loop_runner_(new content::MessageLoopRunner) {
  remover->AddObserver(this);
}

BrowsingDataRemoverCompletionObserver::
    ~BrowsingDataRemoverCompletionObserver() {}

void BrowsingDataRemoverCompletionObserver::BlockUntilCompletion() {
  message_loop_runner_->Run();
}

void BrowsingDataRemoverCompletionObserver::OnBrowsingDataRemoverDone() {
  message_loop_runner_->Quit();
}

BrowsingDataRemoverCompletionInhibitor::BrowsingDataRemoverCompletionInhibitor()
    : message_loop_runner_(new content::MessageLoopRunner) {
  BrowsingDataRemover::set_completion_inhibitor_for_testing(this);
}

BrowsingDataRemoverCompletionInhibitor::
    ~BrowsingDataRemoverCompletionInhibitor() {
  BrowsingDataRemover::set_completion_inhibitor_for_testing(NULL);
}

void BrowsingDataRemoverCompletionInhibitor::BlockUntilNearCompletion() {
  message_loop_runner_->Run();
  message_loop_runner_ = new content::MessageLoopRunner;
}

void BrowsingDataRemoverCompletionInhibitor::ContinueToCompletion() {
  DCHECK(!continue_to_completion_callback_.is_null());
  continue_to_completion_callback_.Run();
  continue_to_completion_callback_.Reset();
}

void BrowsingDataRemoverCompletionInhibitor::OnBrowsingDataRemoverWouldComplete(
    BrowsingDataRemover* remover,
    const base::Closure& continue_to_completion) {
  DCHECK(continue_to_completion_callback_.is_null());
  continue_to_completion_callback_ = continue_to_completion;
  message_loop_runner_->Quit();
}