Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / components / sync_driver / system_encryptor_unittest.cc
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/webdata/encryptor/encryptor.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace browser_sync {
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
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   ::Encryptor::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 browser_sync