Chromium Code Reviews| Index: chrome/browser/sessions/session_backend_unittest.cc |
| diff --git a/chrome/browser/sessions/session_backend_unittest.cc b/chrome/browser/sessions/session_backend_unittest.cc |
| index 0c7ea0f6fca41dcb1cba03504d175a98a9814f7d..dcb7450d332bd962a92d09514b4864116701f002 100644 |
| --- a/chrome/browser/sessions/session_backend_unittest.cc |
| +++ b/chrome/browser/sessions/session_backend_unittest.cc |
| @@ -11,7 +11,7 @@ |
| namespace { |
| -typedef std::vector<SessionCommand*> SessionCommands; |
| +typedef ScopedVector<SessionCommand> SessionCommands; |
| struct TestData { |
| SessionCommand::id_type command_id; |
| @@ -28,6 +28,13 @@ SessionCommand* CreateCommandFromData(const TestData& data) { |
| return command; |
| } |
| +// Create a new SessionCommands structure and swap existing commands into them. |
|
sky
2014/10/30 22:51:07
Same comment about move semantics.
Mr4D (OOO till 08-26)
2014/10/30 23:31:21
Done.
|
| +SessionCommands* CreateNewSessionCommands(SessionCommands* commands) { |
| + SessionCommands* swapped_commands = new SessionCommands; |
| + swapped_commands->swap(*commands); |
| + return swapped_commands; |
| +} |
| + |
| } // namespace |
| class SessionBackendTest : public testing::Test { |
| @@ -54,10 +61,10 @@ TEST_F(SessionBackendTest, SimpleReadWrite) { |
| scoped_refptr<SessionBackend> backend( |
| new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); |
| struct TestData data = { 1, "a" }; |
| - std::vector<SessionCommand*> commands; |
| + SessionCommands commands; |
| commands.push_back(CreateCommandFromData(data)); |
| - backend->AppendCommands(new SessionCommands(commands), false); |
| - commands.clear(); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), false); |
| + DCHECK(commands.empty()); |
|
sky
2014/10/30 22:51:07
ASSERT_TRUE.
Mr4D (OOO till 08-26)
2014/10/30 23:31:21
Done.
|
| // Read it back in. |
| backend = NULL; |
| @@ -67,7 +74,7 @@ TEST_F(SessionBackendTest, SimpleReadWrite) { |
| ASSERT_EQ(1U, commands.size()); |
| AssertCommandEqualsData(data, commands[0]); |
| - STLDeleteElements(&commands); |
| + commands.clear(); |
| backend = NULL; |
| backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_); |
| @@ -101,7 +108,7 @@ TEST_F(SessionBackendTest, RandomData) { |
| for (size_t i = 0; i < arraysize(data); ++i) { |
| scoped_refptr<SessionBackend> backend( |
| new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); |
| - std::vector<SessionCommand*> commands; |
| + SessionCommands commands; |
| if (i != 0) { |
| // Read previous data. |
| backend->ReadLastSessionCommandsImpl(&commands); |
| @@ -110,11 +117,10 @@ TEST_F(SessionBackendTest, RandomData) { |
| j != commands.end(); ++j) { |
| AssertCommandEqualsData(data[j - commands.begin()], *j); |
| } |
| - backend->AppendCommands(new SessionCommands(commands), false); |
| - commands.clear(); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), false); |
| } |
| commands.push_back(CreateCommandFromData(data[i])); |
| - backend->AppendCommands(new SessionCommands(commands), false); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), false); |
| } |
| } |
| @@ -126,7 +132,8 @@ TEST_F(SessionBackendTest, BigData) { |
| scoped_refptr<SessionBackend> backend( |
| new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); |
| - std::vector<SessionCommand*> commands; |
| + ScopedVector<SessionCommand> commands; |
| + |
| commands.push_back(CreateCommandFromData(data[0])); |
| const SessionCommand::size_type big_size = |
| SessionBackend::kFileReadBufferSize + 100; |
| @@ -136,12 +143,11 @@ TEST_F(SessionBackendTest, BigData) { |
| reinterpret_cast<char*>(big_command->contents())[big_size - 1] = 'z'; |
| commands.push_back(big_command); |
| commands.push_back(CreateCommandFromData(data[1])); |
| - backend->AppendCommands(new SessionCommands(commands), false); |
| - commands.clear(); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), false); |
| backend = NULL; |
| backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_); |
| - commands.clear(); |
| + |
| backend->ReadLastSessionCommandsImpl(&commands); |
| ASSERT_EQ(3U, commands.size()); |
| AssertCommandEqualsData(data[0], commands[0]); |
| @@ -152,7 +158,7 @@ TEST_F(SessionBackendTest, BigData) { |
| EXPECT_EQ('a', reinterpret_cast<char*>(commands[1]->contents())[0]); |
| EXPECT_EQ('z', |
| reinterpret_cast<char*>(commands[1]->contents())[big_size - 1]); |
| - STLDeleteElements(&commands); |
| + commands.clear(); |
| } |
| TEST_F(SessionBackendTest, EmptyCommand) { |
| @@ -160,17 +166,16 @@ TEST_F(SessionBackendTest, EmptyCommand) { |
| empty_command.command_id = 1; |
| scoped_refptr<SessionBackend> backend( |
| new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); |
| - std::vector<SessionCommand*>* empty_commands = |
| - new std::vector<SessionCommand*>(); |
| + SessionCommands* empty_commands = new SessionCommands(); |
| empty_commands->push_back(CreateCommandFromData(empty_command)); |
| backend->AppendCommands(empty_commands, true); |
| backend->MoveCurrentSessionToLastSession(); |
| - std::vector<SessionCommand*> commands; |
| + SessionCommands commands; |
| backend->ReadLastSessionCommandsImpl(&commands); |
| ASSERT_EQ(1U, commands.size()); |
| AssertCommandEqualsData(empty_command, commands[0]); |
| - STLDeleteElements(&commands); |
| + commands.clear(); |
| } |
| // Writes a command, appends another command with reset to true, then reads |
| @@ -179,16 +184,14 @@ TEST_F(SessionBackendTest, Truncate) { |
| scoped_refptr<SessionBackend> backend( |
| new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); |
| struct TestData first_data = { 1, "a" }; |
| - std::vector<SessionCommand*> commands; |
| + SessionCommands commands; |
| commands.push_back(CreateCommandFromData(first_data)); |
| - backend->AppendCommands(new SessionCommands(commands), false); |
| - commands.clear(); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), 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(new SessionCommands(commands), true); |
| - commands.clear(); |
| + backend->AppendCommands(CreateNewSessionCommands(&commands), true); |
| // Read it back in. |
| backend = NULL; |
| @@ -199,5 +202,5 @@ TEST_F(SessionBackendTest, Truncate) { |
| ASSERT_EQ(1U, commands.size()); |
| AssertCommandEqualsData(second_data, commands[0]); |
| - STLDeleteElements(&commands); |
| + commands.clear(); |
| } |