Index: components/sessions/session_backend_unittest.cc |
diff --git a/components/sessions/session_backend_unittest.cc b/components/sessions/session_backend_unittest.cc |
deleted file mode 100644 |
index 793663a0d08182969f5475c573d369cd943db634..0000000000000000000000000000000000000000 |
--- a/components/sessions/session_backend_unittest.cc |
+++ /dev/null |
@@ -1,209 +0,0 @@ |
-// Copyright 2011 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 "base/files/file_util.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/stl_util.h" |
-#include "base/strings/string_util.h" |
-#include "components/sessions/session_backend.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace sessions { |
-namespace { |
- |
-typedef ScopedVector<sessions::SessionCommand> SessionCommands; |
- |
-struct TestData { |
- sessions::SessionCommand::id_type command_id; |
- std::string data; |
-}; |
- |
-sessions::SessionCommand* CreateCommandFromData(const TestData& data) { |
- sessions::SessionCommand* command = |
- new sessions::SessionCommand( |
- data.command_id, |
- static_cast<sessions::SessionCommand::size_type>(data.data.size())); |
- if (!data.data.empty()) |
- memcpy(command->contents(), data.data.c_str(), data.data.size()); |
- return command; |
-} |
- |
-} // namespace |
- |
-class SessionBackendTest : public testing::Test { |
- protected: |
- void SetUp() override { |
- ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
- path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("SessionTestDirs")); |
- base::CreateDirectory(path_); |
- } |
- |
- void AssertCommandEqualsData(const TestData& data, |
- sessions::SessionCommand* command) { |
- EXPECT_EQ(data.command_id, command->id()); |
- EXPECT_EQ(data.data.size(), command->size()); |
- EXPECT_TRUE( |
- memcmp(command->contents(), data.data.c_str(), command->size()) == 0); |
- } |
- |
- // Path used in testing. |
- base::FilePath path_; |
- base::ScopedTempDir temp_dir_; |
-}; |
- |
-TEST_F(SessionBackendTest, SimpleReadWrite) { |
- scoped_refptr<SessionBackend> backend( |
- new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, path_)); |
- struct TestData data = { 1, "a" }; |
- SessionCommands commands; |
- commands.push_back(CreateCommandFromData(data)); |
- backend->AppendCommands(commands.Pass(), false); |
- ASSERT_TRUE(commands.empty()); |
- |
- // Read it back in. |
- backend = NULL; |
- backend = new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, |
- path_); |
- backend->ReadLastSessionCommandsImpl(&commands); |
- |
- ASSERT_EQ(1U, commands.size()); |
- AssertCommandEqualsData(data, commands[0]); |
- |
- commands.clear(); |
- |
- backend = NULL; |
- backend = new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, |
- path_); |
- backend->ReadLastSessionCommandsImpl(&commands); |
- |
- ASSERT_EQ(0U, commands.size()); |
- |
- // Make sure we can delete. |
- backend->DeleteLastSession(); |
- backend->ReadLastSessionCommandsImpl(&commands); |
- ASSERT_EQ(0U, commands.size()); |
-} |
- |
-TEST_F(SessionBackendTest, RandomData) { |
- struct TestData data[] = { |
- { 1, "a" }, |
- { 2, "ab" }, |
- { 3, "abc" }, |
- { 4, "abcd" }, |
- { 5, "abcde" }, |
- { 6, "abcdef" }, |
- { 7, "abcdefg" }, |
- { 8, "abcdefgh" }, |
- { 9, "abcdefghi" }, |
- { 10, "abcdefghij" }, |
- { 11, "abcdefghijk" }, |
- { 12, "abcdefghijkl" }, |
- { 13, "abcdefghijklm" }, |
- }; |
- |
- for (size_t i = 0; i < arraysize(data); ++i) { |
- scoped_refptr<SessionBackend> backend( |
- new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, |
- path_)); |
- SessionCommands commands; |
- if (i != 0) { |
- // Read previous data. |
- backend->ReadLastSessionCommandsImpl(&commands); |
- ASSERT_EQ(i, commands.size()); |
- for (std::vector<sessions::SessionCommand*>::iterator j = |
- commands.begin(); j != commands.end(); ++j) { |
- AssertCommandEqualsData(data[j - commands.begin()], *j); |
- } |
- backend->AppendCommands(commands.Pass(), false); |
- } |
- commands.push_back(CreateCommandFromData(data[i])); |
- backend->AppendCommands(commands.Pass(), false); |
- } |
-} |
- |
-TEST_F(SessionBackendTest, BigData) { |
- struct TestData data[] = { |
- { 1, "a" }, |
- { 2, "ab" }, |
- }; |
- |
- scoped_refptr<SessionBackend> backend( |
- new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, path_)); |
- ScopedVector<sessions::SessionCommand> commands; |
- |
- commands.push_back(CreateCommandFromData(data[0])); |
- const sessions::SessionCommand::size_type big_size = |
- SessionBackend::kFileReadBufferSize + 100; |
- const sessions::SessionCommand::id_type big_id = 50; |
- sessions::SessionCommand* big_command = |
- new sessions::SessionCommand(big_id, big_size); |
- reinterpret_cast<char*>(big_command->contents())[0] = 'a'; |
- reinterpret_cast<char*>(big_command->contents())[big_size - 1] = 'z'; |
- commands.push_back(big_command); |
- commands.push_back(CreateCommandFromData(data[1])); |
- backend->AppendCommands(commands.Pass(), false); |
- |
- backend = NULL; |
- backend = new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, |
- path_); |
- |
- backend->ReadLastSessionCommandsImpl(&commands); |
- ASSERT_EQ(3U, commands.size()); |
- AssertCommandEqualsData(data[0], commands[0]); |
- AssertCommandEqualsData(data[1], commands[2]); |
- |
- EXPECT_EQ(big_id, commands[1]->id()); |
- ASSERT_EQ(big_size, commands[1]->size()); |
- EXPECT_EQ('a', reinterpret_cast<char*>(commands[1]->contents())[0]); |
- EXPECT_EQ('z', |
- reinterpret_cast<char*>(commands[1]->contents())[big_size - 1]); |
- commands.clear(); |
-} |
- |
-TEST_F(SessionBackendTest, EmptyCommand) { |
- TestData empty_command; |
- empty_command.command_id = 1; |
- scoped_refptr<SessionBackend> backend( |
- new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, path_)); |
- SessionCommands empty_commands; |
- empty_commands.push_back(CreateCommandFromData(empty_command)); |
- backend->AppendCommands(empty_commands.Pass(), true); |
- backend->MoveCurrentSessionToLastSession(); |
- |
- SessionCommands commands; |
- backend->ReadLastSessionCommandsImpl(&commands); |
- ASSERT_EQ(1U, commands.size()); |
- AssertCommandEqualsData(empty_command, commands[0]); |
- commands.clear(); |
-} |
- |
-// Writes a command, appends another command with reset to true, then reads |
-// making sure we only get back the second command. |
-TEST_F(SessionBackendTest, Truncate) { |
- scoped_refptr<SessionBackend> backend( |
- new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, path_)); |
- struct TestData first_data = { 1, "a" }; |
- SessionCommands commands; |
- commands.push_back(CreateCommandFromData(first_data)); |
- backend->AppendCommands(commands.Pass(), false); |
- |
- // Write another command, this time resetting the file when appending. |
- struct TestData second_data = { 2, "b" }; |
- commands.push_back(CreateCommandFromData(second_data)); |
- backend->AppendCommands(commands.Pass(), true); |
- |
- // Read it back in. |
- backend = NULL; |
- backend = new SessionBackend(sessions::BaseSessionService::SESSION_RESTORE, |
- path_); |
- backend->ReadLastSessionCommandsImpl(&commands); |
- |
- // And make sure we get back the expected data. |
- ASSERT_EQ(1U, commands.size()); |
- AssertCommandEqualsData(second_data, commands[0]); |
- |
- commands.clear(); |
-} |
- |
-} // namespace sessions |