Implement IPC::ParamTraits<mojo::MessagePipeHandle>
[chromium-blink-merge.git] / crypto / scoped_test_nss_chromeos_user.h
blob1638517704deebbd9b7f86999179c4751b8f8cf7
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_NSS_CHROMEOS_USER_H_
6 #define CRYPTO_SCOPED_TEST_NSS_CHROMEOS_USER_H_
8 #include <string>
10 #include "base/files/scoped_temp_dir.h"
11 #include "base/macros.h"
12 #include "crypto/crypto_export.h"
14 namespace crypto {
16 // Opens a persistent NSS software database in a temporary directory for the
17 // user with |username_hash|. This database will be used for both the user's
18 // public and private slot.
19 class CRYPTO_EXPORT_PRIVATE ScopedTestNSSChromeOSUser {
20 public:
21 // Opens the software database and sets the public slot for the user. The
22 // private slot will not be initialized until FinishInit() is called.
23 explicit ScopedTestNSSChromeOSUser(const std::string& username_hash);
24 ~ScopedTestNSSChromeOSUser();
26 std::string username_hash() const { return username_hash_; }
27 bool constructed_successfully() const { return constructed_successfully_; }
29 // Completes initialization of user. Causes any waiting private slot callbacks
30 // to run, see GetPrivateSlotForChromeOSUser().
31 void FinishInit();
33 private:
34 const std::string username_hash_;
35 base::ScopedTempDir temp_dir_;
36 bool constructed_successfully_;
38 DISALLOW_COPY_AND_ASSIGN(ScopedTestNSSChromeOSUser);
41 } // namespace crypto
43 #endif // CRYPTO_SCOPED_TEST_NSS_CHROMEOS_USER_H_