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// The test scrubber cleans up machine state between tests.  This includes
6// killing all Internet Explorer processes, killing all Chrome processes spawned
7// by Chrome Frame, and deleting the user data directory.  The scrubber must be
8// installed before tests are run via |InstallTestScrubber|.
9//
10// Tests that lead to Chrome using a user data directory other than that used by
11// Chrome Frame in IE must provide that directory to the scrubber via
12// |OverrideDataDirectoryForThisTest()|.  Failure to do so will lead to the
13// scrubber failing to delete that directory.
14
15#ifndef CHROME_FRAME_TEST_TEST_SCRUBBER_H_
16#define CHROME_FRAME_TEST_TEST_SCRUBBER_H_
17
18#include "base/strings/string_piece.h"
19
20namespace testing {
21class UnitTest;
22}
23
24namespace chrome_frame_test {
25
26// Install the scrubber in |unit_test| (call before RUN_ALL_TESTS).
27void InstallTestScrubber(testing::UnitTest* unit_test);
28
29// Override the user data directory that will be deleted by the scrubber at the
30// completion of the current test.
31void OverrideDataDirectoryForThisTest(const base::StringPiece16& user_data_dir);
32
33}  // namespace chrome_frame_test
34
35#endif  // CHROME_FRAME_TEST_TEST_SCRUBBER_H_
36