athena: Re-add ui_chromeos resources in athena_resources.pak.
[chromium-blink-merge.git] / crypto / scoped_test_system_nss_key_slot.h
blob156504787f21dfe94c199fe110a73bc61758235d
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"
12 namespace crypto {
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 {
25 public:
26 explicit ScopedTestSystemNSSKeySlot();
27 ~ScopedTestSystemNSSKeySlot();
29 bool ConstructedSuccessfully() const;
31 private:
32 scoped_ptr<ScopedTestNSSDB> test_db_;
34 DISALLOW_COPY_AND_ASSIGN(ScopedTestSystemNSSKeySlot);
37 } // namespace crypto
39 #endif // CRYPTO_SCOPED_TEST_SYSTEM_NSS_KEY_SLOT_H_