Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(474)

Side by Side Diff: chrome/browser/sessions/session_backend_unittest.cc

Issue 689143002: Minor tweak to Session* to use base::Passed so ownership is clearer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update test Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/sessions/session_backend.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/files/file_util.h" 5 #include "base/files/file_util.h"
6 #include "base/files/scoped_temp_dir.h" 6 #include "base/files/scoped_temp_dir.h"
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "chrome/browser/sessions/session_backend.h" 9 #include "chrome/browser/sessions/session_backend.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 base::FilePath path_; 49 base::FilePath path_;
50 base::ScopedTempDir temp_dir_; 50 base::ScopedTempDir temp_dir_;
51 }; 51 };
52 52
53 TEST_F(SessionBackendTest, SimpleReadWrite) { 53 TEST_F(SessionBackendTest, SimpleReadWrite) {
54 scoped_refptr<SessionBackend> backend( 54 scoped_refptr<SessionBackend> backend(
55 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); 55 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_));
56 struct TestData data = { 1, "a" }; 56 struct TestData data = { 1, "a" };
57 SessionCommands commands; 57 SessionCommands commands;
58 commands.push_back(CreateCommandFromData(data)); 58 commands.push_back(CreateCommandFromData(data));
59 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 59 backend->AppendCommands(commands.Pass(), false);
60 false);
61 ASSERT_TRUE(commands.empty()); 60 ASSERT_TRUE(commands.empty());
62 61
63 // Read it back in. 62 // Read it back in.
64 backend = NULL; 63 backend = NULL;
65 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_); 64 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_);
66 backend->ReadLastSessionCommandsImpl(&commands); 65 backend->ReadLastSessionCommandsImpl(&commands);
67 66
68 ASSERT_EQ(1U, commands.size()); 67 ASSERT_EQ(1U, commands.size());
69 AssertCommandEqualsData(data, commands[0]); 68 AssertCommandEqualsData(data, commands[0]);
70 69
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); 103 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_));
105 SessionCommands commands; 104 SessionCommands commands;
106 if (i != 0) { 105 if (i != 0) {
107 // Read previous data. 106 // Read previous data.
108 backend->ReadLastSessionCommandsImpl(&commands); 107 backend->ReadLastSessionCommandsImpl(&commands);
109 ASSERT_EQ(i, commands.size()); 108 ASSERT_EQ(i, commands.size());
110 for (std::vector<SessionCommand*>::iterator j = commands.begin(); 109 for (std::vector<SessionCommand*>::iterator j = commands.begin();
111 j != commands.end(); ++j) { 110 j != commands.end(); ++j) {
112 AssertCommandEqualsData(data[j - commands.begin()], *j); 111 AssertCommandEqualsData(data[j - commands.begin()], *j);
113 } 112 }
114 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 113 backend->AppendCommands(commands.Pass(), false);
115 false);
116 } 114 }
117 commands.push_back(CreateCommandFromData(data[i])); 115 commands.push_back(CreateCommandFromData(data[i]));
118 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 116 backend->AppendCommands(commands.Pass(), false);
119 false);
120 } 117 }
121 } 118 }
122 119
123 TEST_F(SessionBackendTest, BigData) { 120 TEST_F(SessionBackendTest, BigData) {
124 struct TestData data[] = { 121 struct TestData data[] = {
125 { 1, "a" }, 122 { 1, "a" },
126 { 2, "ab" }, 123 { 2, "ab" },
127 }; 124 };
128 125
129 scoped_refptr<SessionBackend> backend( 126 scoped_refptr<SessionBackend> backend(
130 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); 127 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_));
131 ScopedVector<SessionCommand> commands; 128 ScopedVector<SessionCommand> commands;
132 129
133 commands.push_back(CreateCommandFromData(data[0])); 130 commands.push_back(CreateCommandFromData(data[0]));
134 const SessionCommand::size_type big_size = 131 const SessionCommand::size_type big_size =
135 SessionBackend::kFileReadBufferSize + 100; 132 SessionBackend::kFileReadBufferSize + 100;
136 const SessionCommand::id_type big_id = 50; 133 const SessionCommand::id_type big_id = 50;
137 SessionCommand* big_command = new SessionCommand(big_id, big_size); 134 SessionCommand* big_command = new SessionCommand(big_id, big_size);
138 reinterpret_cast<char*>(big_command->contents())[0] = 'a'; 135 reinterpret_cast<char*>(big_command->contents())[0] = 'a';
139 reinterpret_cast<char*>(big_command->contents())[big_size - 1] = 'z'; 136 reinterpret_cast<char*>(big_command->contents())[big_size - 1] = 'z';
140 commands.push_back(big_command); 137 commands.push_back(big_command);
141 commands.push_back(CreateCommandFromData(data[1])); 138 commands.push_back(CreateCommandFromData(data[1]));
142 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 139 backend->AppendCommands(commands.Pass(), false);
143 false);
144 140
145 backend = NULL; 141 backend = NULL;
146 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_); 142 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_);
147 143
148 backend->ReadLastSessionCommandsImpl(&commands); 144 backend->ReadLastSessionCommandsImpl(&commands);
149 ASSERT_EQ(3U, commands.size()); 145 ASSERT_EQ(3U, commands.size());
150 AssertCommandEqualsData(data[0], commands[0]); 146 AssertCommandEqualsData(data[0], commands[0]);
151 AssertCommandEqualsData(data[1], commands[2]); 147 AssertCommandEqualsData(data[1], commands[2]);
152 148
153 EXPECT_EQ(big_id, commands[1]->id()); 149 EXPECT_EQ(big_id, commands[1]->id());
154 ASSERT_EQ(big_size, commands[1]->size()); 150 ASSERT_EQ(big_size, commands[1]->size());
155 EXPECT_EQ('a', reinterpret_cast<char*>(commands[1]->contents())[0]); 151 EXPECT_EQ('a', reinterpret_cast<char*>(commands[1]->contents())[0]);
156 EXPECT_EQ('z', 152 EXPECT_EQ('z',
157 reinterpret_cast<char*>(commands[1]->contents())[big_size - 1]); 153 reinterpret_cast<char*>(commands[1]->contents())[big_size - 1]);
158 commands.clear(); 154 commands.clear();
159 } 155 }
160 156
161 TEST_F(SessionBackendTest, EmptyCommand) { 157 TEST_F(SessionBackendTest, EmptyCommand) {
162 TestData empty_command; 158 TestData empty_command;
163 empty_command.command_id = 1; 159 empty_command.command_id = 1;
164 scoped_refptr<SessionBackend> backend( 160 scoped_refptr<SessionBackend> backend(
165 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); 161 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_));
166 SessionCommands* empty_commands = new SessionCommands(); 162 SessionCommands empty_commands;
167 empty_commands->push_back(CreateCommandFromData(empty_command)); 163 empty_commands.push_back(CreateCommandFromData(empty_command));
168 backend->AppendCommands(empty_commands, true); 164 backend->AppendCommands(empty_commands.Pass(), true);
169 backend->MoveCurrentSessionToLastSession(); 165 backend->MoveCurrentSessionToLastSession();
170 166
171 SessionCommands commands; 167 SessionCommands commands;
172 backend->ReadLastSessionCommandsImpl(&commands); 168 backend->ReadLastSessionCommandsImpl(&commands);
173 ASSERT_EQ(1U, commands.size()); 169 ASSERT_EQ(1U, commands.size());
174 AssertCommandEqualsData(empty_command, commands[0]); 170 AssertCommandEqualsData(empty_command, commands[0]);
175 commands.clear(); 171 commands.clear();
176 } 172 }
177 173
178 // Writes a command, appends another command with reset to true, then reads 174 // Writes a command, appends another command with reset to true, then reads
179 // making sure we only get back the second command. 175 // making sure we only get back the second command.
180 TEST_F(SessionBackendTest, Truncate) { 176 TEST_F(SessionBackendTest, Truncate) {
181 scoped_refptr<SessionBackend> backend( 177 scoped_refptr<SessionBackend> backend(
182 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_)); 178 new SessionBackend(BaseSessionService::SESSION_RESTORE, path_));
183 struct TestData first_data = { 1, "a" }; 179 struct TestData first_data = { 1, "a" };
184 SessionCommands commands; 180 SessionCommands commands;
185 commands.push_back(CreateCommandFromData(first_data)); 181 commands.push_back(CreateCommandFromData(first_data));
186 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 182 backend->AppendCommands(commands.Pass(), false);
187 false);
188 183
189 // Write another command, this time resetting the file when appending. 184 // Write another command, this time resetting the file when appending.
190 struct TestData second_data = { 2, "b" }; 185 struct TestData second_data = { 2, "b" };
191 commands.push_back(CreateCommandFromData(second_data)); 186 commands.push_back(CreateCommandFromData(second_data));
192 backend->AppendCommands(new ScopedVector<SessionCommand>(commands.Pass()), 187 backend->AppendCommands(commands.Pass(), true);
193 true);
194 188
195 // Read it back in. 189 // Read it back in.
196 backend = NULL; 190 backend = NULL;
197 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_); 191 backend = new SessionBackend(BaseSessionService::SESSION_RESTORE, path_);
198 backend->ReadLastSessionCommandsImpl(&commands); 192 backend->ReadLastSessionCommandsImpl(&commands);
199 193
200 // And make sure we get back the expected data. 194 // And make sure we get back the expected data.
201 ASSERT_EQ(1U, commands.size()); 195 ASSERT_EQ(1U, commands.size());
202 AssertCommandEqualsData(second_data, commands[0]); 196 AssertCommandEqualsData(second_data, commands[0]);
203 197
204 commands.clear(); 198 commands.clear();
205 } 199 }
OLDNEW
« no previous file with comments | « chrome/browser/sessions/session_backend.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698