1 // Copyright 2014 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.
5 #ifndef CRYPTO_SCOPED_TEST_SYSTEM_NSS_KEY_SLOT_H_
6 #define CRYPTO_SCOPED_TEST_SYSTEM_NSS_KEY_SLOT_H_
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "crypto/crypto_export.h"
14 class ScopedTestNSSDB
;
16 // Opens a persistent NSS software database in a temporary directory and sets
17 // the test system slot to the opened database. This helper should be created in
18 // tests where no system token is provided by the Chaps module and before
19 // InitializeTPMTokenAndSystemSlot is called. Then the opened test database will
20 // be used and the initialization continues as if Chaps had provided this test
21 // database. In particular, the DB will be exposed by |GetSystemNSSKeySlot| and
22 // |IsTPMTokenReady| will return true.
23 // At most one instance of this helper must be used at a time.
24 class CRYPTO_EXPORT_PRIVATE ScopedTestSystemNSSKeySlot
{
26 explicit ScopedTestSystemNSSKeySlot();
27 ~ScopedTestSystemNSSKeySlot();
29 bool ConstructedSuccessfully() const;
32 scoped_ptr
<ScopedTestNSSDB
> test_db_
;
34 DISALLOW_COPY_AND_ASSIGN(ScopedTestSystemNSSKeySlot
);
39 #endif // CRYPTO_SCOPED_TEST_SYSTEM_NSS_KEY_SLOT_H_