1*635a8641SAndroid Build Coastguard Worker // Copyright 2014 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #ifndef CRYPTO_SCOPED_TEST_NSS_DB_H_ 6*635a8641SAndroid Build Coastguard Worker #define CRYPTO_SCOPED_TEST_NSS_DB_H_ 7*635a8641SAndroid Build Coastguard Worker 8*635a8641SAndroid Build Coastguard Worker #include "base/files/scoped_temp_dir.h" 9*635a8641SAndroid Build Coastguard Worker #include "base/macros.h" 10*635a8641SAndroid Build Coastguard Worker #include "crypto/crypto_export.h" 11*635a8641SAndroid Build Coastguard Worker #include "crypto/scoped_nss_types.h" 12*635a8641SAndroid Build Coastguard Worker 13*635a8641SAndroid Build Coastguard Worker namespace crypto { 14*635a8641SAndroid Build Coastguard Worker 15*635a8641SAndroid Build Coastguard Worker // Opens a persistent NSS database in a temporary directory. 16*635a8641SAndroid Build Coastguard Worker // Prior NSS version 3.15.1, because of http://bugzil.la/875601 , the opened DB 17*635a8641SAndroid Build Coastguard Worker // will not be closed automatically. 18*635a8641SAndroid Build Coastguard Worker class CRYPTO_EXPORT ScopedTestNSSDB { 19*635a8641SAndroid Build Coastguard Worker public: 20*635a8641SAndroid Build Coastguard Worker ScopedTestNSSDB(); 21*635a8641SAndroid Build Coastguard Worker ~ScopedTestNSSDB(); 22*635a8641SAndroid Build Coastguard Worker is_open()23*635a8641SAndroid Build Coastguard Worker bool is_open() const { return !!slot_; } slot()24*635a8641SAndroid Build Coastguard Worker PK11SlotInfo* slot() const { return slot_.get(); } 25*635a8641SAndroid Build Coastguard Worker 26*635a8641SAndroid Build Coastguard Worker private: 27*635a8641SAndroid Build Coastguard Worker base::ScopedTempDir temp_dir_; 28*635a8641SAndroid Build Coastguard Worker ScopedPK11Slot slot_; 29*635a8641SAndroid Build Coastguard Worker 30*635a8641SAndroid Build Coastguard Worker DISALLOW_COPY_AND_ASSIGN(ScopedTestNSSDB); 31*635a8641SAndroid Build Coastguard Worker }; 32*635a8641SAndroid Build Coastguard Worker 33*635a8641SAndroid Build Coastguard Worker } // namespace crypto 34*635a8641SAndroid Build Coastguard Worker 35*635a8641SAndroid Build Coastguard Worker #endif // CRYPTO_SCOPED_TEST_NSS_DB_H_ 36