• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "components/sync_driver/system_encryptor.h"
6 
7 #include "components/os_crypt/os_crypt.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 namespace sync_driver {
11 
12 namespace {
13 
14 const char kPlaintext[] = "The Magic Words are Squeamish Ossifrage";
15 
16 class SystemEncryptorTest : public testing::Test {
17  protected:
18   SystemEncryptor encryptor_;
19 };
20 
TEST_F(SystemEncryptorTest,EncryptDecrypt)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);
26 #endif
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);
33 }
34 
35 }  // namespace
36 
37 }  // namespace sync_driver
38