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 #include "components/sync_driver/system_encryptor.h"
7 #include "components/os_crypt/os_crypt.h"
8 #include "testing/gtest/include/gtest/gtest.h"
10 namespace sync_driver
{
14 const char kPlaintext
[] = "The Magic Words are Squeamish Ossifrage";
16 class SystemEncryptorTest
: public testing::Test
{
18 SystemEncryptor encryptor_
;
21 TEST_F(SystemEncryptorTest
, EncryptDecrypt
) {
22 #if defined(OS_MACOSX)
23 // SystemEncryptor ends up needing access to the keychain on OS X,
24 // so use the mock keychain to prevent prompts.
25 ::OSCrypt::UseMockKeychain(true);
27 std::string ciphertext
;
28 EXPECT_TRUE(encryptor_
.EncryptString(kPlaintext
, &ciphertext
));
29 EXPECT_NE(kPlaintext
, ciphertext
);
30 std::string plaintext
;
31 EXPECT_TRUE(encryptor_
.DecryptString(ciphertext
, &plaintext
));
32 EXPECT_EQ(kPlaintext
, plaintext
);
37 } // namespace sync_driver