Index: components/os_crypt/os_crypt_linux_unittest.cc |
diff --git a/components/os_crypt/os_crypt_linux_unittest.cc b/components/os_crypt/os_crypt_linux_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5f22c316aed39ccd99d04972e7d77ba42cfe57ad |
--- /dev/null |
+++ b/components/os_crypt/os_crypt_linux_unittest.cc |
@@ -0,0 +1,70 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <string> |
+ |
+#include "base/macros.h" |
+#include "components/os_crypt/key_storage_linux.h" |
+#include "components/os_crypt/os_crypt.h" |
+#include "components/os_crypt/os_crypt_mocker_linux.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace { |
+ |
+class OSCryptLinuxTest : public testing::Test { |
+ public: |
+ OSCryptLinuxTest() = default; |
+ ~OSCryptLinuxTest() override = default; |
+ |
+ void SetUp() override { |
+ OSCryptMockerLinux::SetUpWithSingleton(); |
+ key_storage_ = OSCryptMockerLinux::GetInstance(); |
+ } |
+ |
+ void TearDown() override { OSCryptMockerLinux::TearDown(); } |
+ |
+ protected: |
+ OSCryptMockerLinux* key_storage_ = nullptr; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(OSCryptLinuxTest); |
+}; |
+ |
+TEST_F(OSCryptLinuxTest, VerifyV0) { |
+ const std::string originaltext = "hello"; |
+ std::string ciphertext; |
+ std::string decipheredtext; |
+ |
+ key_storage_->ResetTo(""); |
+ ciphertext = originaltext; // No encryption |
+ ASSERT_TRUE(OSCrypt::DecryptString(ciphertext, &decipheredtext)); |
+ ASSERT_EQ(originaltext, decipheredtext); |
+} |
+ |
+TEST_F(OSCryptLinuxTest, VerifyV10) { |
+ const std::string originaltext = "hello"; |
+ std::string ciphertext; |
+ std::string decipheredtext; |
+ |
+ key_storage_->ResetTo("peanuts"); |
+ ASSERT_TRUE(OSCrypt::EncryptString(originaltext, &ciphertext)); |
+ key_storage_->ResetTo("not_peanuts"); |
+ ciphertext = ciphertext.substr(3).insert(0, "v10"); |
+ ASSERT_TRUE(OSCrypt::DecryptString(ciphertext, &decipheredtext)); |
+ ASSERT_EQ(originaltext, decipheredtext); |
+} |
+ |
+TEST_F(OSCryptLinuxTest, VerifyV11) { |
+ const std::string originaltext = "hello"; |
+ std::string ciphertext; |
+ std::string decipheredtext; |
+ |
+ key_storage_->ResetTo(""); |
+ ASSERT_TRUE(OSCrypt::EncryptString(originaltext, &ciphertext)); |
+ ASSERT_EQ(ciphertext.substr(0, 3), "v11"); |
+ ASSERT_TRUE(OSCrypt::DecryptString(ciphertext, &decipheredtext)); |
+ ASSERT_EQ(originaltext, decipheredtext); |
+} |
+ |
+} // namespace |