scoped_test_nss_db.h revision 24854748fba09df2a29f0d08d558c3acea70e7a1
165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Copyright 2014 The Chromium Authors. All rights reserved. 265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Use of this source code is governed by a BSD-style license that can be 365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// found in the LICENSE file. 465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#ifndef CRYPTO_SCOPED_TEST_NSS_DB_H_ 665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#define CRYPTO_SCOPED_TEST_NSS_DB_H_ 765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "base/files/scoped_temp_dir.h" 965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "base/macros.h" 1065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "crypto/crypto_export.h" 1165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "crypto/scoped_nss_types.h" 1265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 1365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboenamespace crypto { 1465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 1565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Opens a persistent NSS database in a temporary directory. 1665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Prior NSS version 3.15.1, because of http://bugzil.la/875601 , the opened DB 1765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// will not be closed automatically. 1865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboeclass CRYPTO_EXPORT ScopedTestNSSDB { 1965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe public: 2065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe ScopedTestNSSDB(); 2165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe ~ScopedTestNSSDB(); 2265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 2365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe bool is_open() const { return slot_; } 2465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe PK11SlotInfo* slot() const { return slot_.get(); } 2565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 2665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe private: 2765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe base::ScopedTempDir temp_dir_; 2865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe ScopedPK11Slot slot_; 2965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 3065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe DISALLOW_COPY_AND_ASSIGN(ScopedTestNSSDB); 3165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe}; 3265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 3365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe} // namespace crypto 3465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe 3565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#endif // CRYPTO_SCOPED_TEST_NSS_DB_H_ 3665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe