OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 | 68 |
69 }; | 69 }; |
70 | 70 |
71 | 71 |
72 // Check that the database is initialized properly. | 72 // Check that the database is initialized properly. |
73 TEST_F(ActivityDatabaseTest, Init) { | 73 TEST_F(ActivityDatabaseTest, Init) { |
74 base::ScopedTempDir temp_dir; | 74 base::ScopedTempDir temp_dir; |
75 base::FilePath db_file; | 75 base::FilePath db_file; |
76 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 76 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
77 db_file = temp_dir.path().AppendASCII("ActivityInit.db"); | 77 db_file = temp_dir.path().AppendASCII("ActivityInit.db"); |
78 file_util::Delete(db_file, false); | 78 base::Delete(db_file, false); |
79 | 79 |
80 ActivityDatabase* activity_db = new ActivityDatabase(); | 80 ActivityDatabase* activity_db = new ActivityDatabase(); |
81 activity_db->Init(db_file); | 81 activity_db->Init(db_file); |
82 ASSERT_TRUE(activity_db->is_db_valid()); | 82 ASSERT_TRUE(activity_db->is_db_valid()); |
83 activity_db->Close(); | 83 activity_db->Close(); |
84 | 84 |
85 sql::Connection db; | 85 sql::Connection db; |
86 ASSERT_TRUE(db.Open(db_file)); | 86 ASSERT_TRUE(db.Open(db_file)); |
87 ASSERT_TRUE(db.DoesTableExist(DOMAction::kTableName)); | 87 ASSERT_TRUE(db.DoesTableExist(DOMAction::kTableName)); |
88 ASSERT_TRUE(db.DoesTableExist(APIAction::kTableName)); | 88 ASSERT_TRUE(db.DoesTableExist(APIAction::kTableName)); |
89 ASSERT_TRUE(db.DoesTableExist(BlockedAction::kTableName)); | 89 ASSERT_TRUE(db.DoesTableExist(BlockedAction::kTableName)); |
90 db.Close(); | 90 db.Close(); |
91 } | 91 } |
92 | 92 |
93 // Check that API actions are recorded in the db. | 93 // Check that API actions are recorded in the db. |
94 TEST_F(ActivityDatabaseTest, RecordAPIAction) { | 94 TEST_F(ActivityDatabaseTest, RecordAPIAction) { |
95 base::ScopedTempDir temp_dir; | 95 base::ScopedTempDir temp_dir; |
96 base::FilePath db_file; | 96 base::FilePath db_file; |
97 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 97 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
98 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 98 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
99 file_util::Delete(db_file, false); | 99 base::Delete(db_file, false); |
100 | 100 |
101 ActivityDatabase* activity_db = new ActivityDatabase(); | 101 ActivityDatabase* activity_db = new ActivityDatabase(); |
102 activity_db->Init(db_file); | 102 activity_db->Init(db_file); |
103 activity_db->SetBatchModeForTesting(false); | 103 activity_db->SetBatchModeForTesting(false); |
104 ASSERT_TRUE(activity_db->is_db_valid()); | 104 ASSERT_TRUE(activity_db->is_db_valid()); |
105 scoped_refptr<APIAction> action = new APIAction( | 105 scoped_refptr<APIAction> action = new APIAction( |
106 "punky", | 106 "punky", |
107 base::Time::Now(), | 107 base::Time::Now(), |
108 APIAction::CALL, | 108 APIAction::CALL, |
109 "brewster", | 109 "brewster", |
(...skipping 15 matching lines...) Expand all Loading... |
125 ASSERT_EQ("brewster", statement.ColumnString(3)); | 125 ASSERT_EQ("brewster", statement.ColumnString(3)); |
126 ASSERT_EQ("woof", statement.ColumnString(4)); | 126 ASSERT_EQ("woof", statement.ColumnString(4)); |
127 } | 127 } |
128 | 128 |
129 // Check that DOM actions are recorded in the db. | 129 // Check that DOM actions are recorded in the db. |
130 TEST_F(ActivityDatabaseTest, RecordDOMAction) { | 130 TEST_F(ActivityDatabaseTest, RecordDOMAction) { |
131 base::ScopedTempDir temp_dir; | 131 base::ScopedTempDir temp_dir; |
132 base::FilePath db_file; | 132 base::FilePath db_file; |
133 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 133 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
134 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 134 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
135 file_util::Delete(db_file, false); | 135 base::Delete(db_file, false); |
136 | 136 |
137 ActivityDatabase* activity_db = new ActivityDatabase(); | 137 ActivityDatabase* activity_db = new ActivityDatabase(); |
138 activity_db->Init(db_file); | 138 activity_db->Init(db_file); |
139 activity_db->SetBatchModeForTesting(false); | 139 activity_db->SetBatchModeForTesting(false); |
140 ASSERT_TRUE(activity_db->is_db_valid()); | 140 ASSERT_TRUE(activity_db->is_db_valid()); |
141 scoped_refptr<DOMAction> action = new DOMAction( | 141 scoped_refptr<DOMAction> action = new DOMAction( |
142 "punky", | 142 "punky", |
143 base::Time::Now(), | 143 base::Time::Now(), |
144 DomActionType::MODIFIED, | 144 DomActionType::MODIFIED, |
145 GURL("http://www.google.com/foo?bar"), | 145 GURL("http://www.google.com/foo?bar"), |
(...skipping 24 matching lines...) Expand all Loading... |
170 ASSERT_EQ("vamoose", statement.ColumnString(7)); | 170 ASSERT_EQ("vamoose", statement.ColumnString(7)); |
171 ASSERT_EQ("extra", statement.ColumnString(8)); | 171 ASSERT_EQ("extra", statement.ColumnString(8)); |
172 } | 172 } |
173 | 173 |
174 // Check that blocked actions are recorded in the db. | 174 // Check that blocked actions are recorded in the db. |
175 TEST_F(ActivityDatabaseTest, RecordBlockedAction) { | 175 TEST_F(ActivityDatabaseTest, RecordBlockedAction) { |
176 base::ScopedTempDir temp_dir; | 176 base::ScopedTempDir temp_dir; |
177 base::FilePath db_file; | 177 base::FilePath db_file; |
178 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 178 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
179 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 179 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
180 file_util::Delete(db_file, false); | 180 base::Delete(db_file, false); |
181 | 181 |
182 ActivityDatabase* activity_db = new ActivityDatabase(); | 182 ActivityDatabase* activity_db = new ActivityDatabase(); |
183 activity_db->Init(db_file); | 183 activity_db->Init(db_file); |
184 ASSERT_TRUE(activity_db->is_db_valid()); | 184 ASSERT_TRUE(activity_db->is_db_valid()); |
185 scoped_refptr<BlockedAction> action = new BlockedAction( | 185 scoped_refptr<BlockedAction> action = new BlockedAction( |
186 "punky", | 186 "punky", |
187 base::Time::Now(), | 187 base::Time::Now(), |
188 "do.evilThings", | 188 "do.evilThings", |
189 "1, 2", | 189 "1, 2", |
190 BlockedAction::ACCESS_DENIED, | 190 BlockedAction::ACCESS_DENIED, |
(...skipping 15 matching lines...) Expand all Loading... |
206 ASSERT_EQ(1, statement.ColumnInt(4)); | 206 ASSERT_EQ(1, statement.ColumnInt(4)); |
207 ASSERT_EQ("extra", statement.ColumnString(5)); | 207 ASSERT_EQ("extra", statement.ColumnString(5)); |
208 } | 208 } |
209 | 209 |
210 // Check that we can read back recent actions in the db. | 210 // Check that we can read back recent actions in the db. |
211 TEST_F(ActivityDatabaseTest, GetTodaysActions) { | 211 TEST_F(ActivityDatabaseTest, GetTodaysActions) { |
212 base::ScopedTempDir temp_dir; | 212 base::ScopedTempDir temp_dir; |
213 base::FilePath db_file; | 213 base::FilePath db_file; |
214 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 214 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
215 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 215 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
216 file_util::Delete(db_file, false); | 216 base::Delete(db_file, false); |
217 | 217 |
218 // Use a mock clock to ensure that events are not recorded on the wrong day | 218 // Use a mock clock to ensure that events are not recorded on the wrong day |
219 // when the test is run close to local midnight. | 219 // when the test is run close to local midnight. |
220 base::SimpleTestClock mock_clock; | 220 base::SimpleTestClock mock_clock; |
221 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 221 mock_clock.SetNow(base::Time::Now().LocalMidnight() + |
222 base::TimeDelta::FromHours(12)); | 222 base::TimeDelta::FromHours(12)); |
223 | 223 |
224 // Record some actions | 224 // Record some actions |
225 ActivityDatabase* activity_db = new ActivityDatabase(); | 225 ActivityDatabase* activity_db = new ActivityDatabase(); |
226 activity_db->Init(db_file); | 226 activity_db->Init(db_file); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 | 266 |
267 activity_db->Close(); | 267 activity_db->Close(); |
268 } | 268 } |
269 | 269 |
270 // Check that we can read back recent actions in the db. | 270 // Check that we can read back recent actions in the db. |
271 TEST_F(ActivityDatabaseTest, GetOlderActions) { | 271 TEST_F(ActivityDatabaseTest, GetOlderActions) { |
272 base::ScopedTempDir temp_dir; | 272 base::ScopedTempDir temp_dir; |
273 base::FilePath db_file; | 273 base::FilePath db_file; |
274 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 274 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
275 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 275 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
276 file_util::Delete(db_file, false); | 276 base::Delete(db_file, false); |
277 | 277 |
278 // Use a mock clock to ensure that events are not recorded on the wrong day | 278 // Use a mock clock to ensure that events are not recorded on the wrong day |
279 // when the test is run close to local midnight. | 279 // when the test is run close to local midnight. |
280 base::SimpleTestClock mock_clock; | 280 base::SimpleTestClock mock_clock; |
281 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 281 mock_clock.SetNow(base::Time::Now().LocalMidnight() + |
282 base::TimeDelta::FromHours(12)); | 282 base::TimeDelta::FromHours(12)); |
283 | 283 |
284 // Record some actions | 284 // Record some actions |
285 ActivityDatabase* activity_db = new ActivityDatabase(); | 285 ActivityDatabase* activity_db = new ActivityDatabase(); |
286 activity_db->Init(db_file); | 286 activity_db->Init(db_file); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 ASSERT_EQ(api_print, actions->at(1)->PrintForDebug()); | 336 ASSERT_EQ(api_print, actions->at(1)->PrintForDebug()); |
337 | 337 |
338 activity_db->Close(); | 338 activity_db->Close(); |
339 } | 339 } |
340 | 340 |
341 TEST_F(ActivityDatabaseTest, BatchModeOff) { | 341 TEST_F(ActivityDatabaseTest, BatchModeOff) { |
342 base::ScopedTempDir temp_dir; | 342 base::ScopedTempDir temp_dir; |
343 base::FilePath db_file; | 343 base::FilePath db_file; |
344 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 344 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
345 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 345 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
346 file_util::Delete(db_file, false); | 346 base::Delete(db_file, false); |
347 | 347 |
348 // Use a mock clock to ensure that events are not recorded on the wrong day | 348 // Use a mock clock to ensure that events are not recorded on the wrong day |
349 // when the test is run close to local midnight. | 349 // when the test is run close to local midnight. |
350 base::SimpleTestClock mock_clock; | 350 base::SimpleTestClock mock_clock; |
351 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 351 mock_clock.SetNow(base::Time::Now().LocalMidnight() + |
352 base::TimeDelta::FromHours(12)); | 352 base::TimeDelta::FromHours(12)); |
353 | 353 |
354 // Record some actions | 354 // Record some actions |
355 ActivityDatabase* activity_db = new ActivityDatabase(); | 355 ActivityDatabase* activity_db = new ActivityDatabase(); |
356 activity_db->Init(db_file); | 356 activity_db->Init(db_file); |
(...skipping 13 matching lines...) Expand all Loading... |
370 activity_db->GetActions("punky", 0); | 370 activity_db->GetActions("punky", 0); |
371 ASSERT_EQ(1, static_cast<int>(actions->size())); | 371 ASSERT_EQ(1, static_cast<int>(actions->size())); |
372 activity_db->Close(); | 372 activity_db->Close(); |
373 } | 373 } |
374 | 374 |
375 TEST_F(ActivityDatabaseTest, BatchModeOn) { | 375 TEST_F(ActivityDatabaseTest, BatchModeOn) { |
376 base::ScopedTempDir temp_dir; | 376 base::ScopedTempDir temp_dir; |
377 base::FilePath db_file; | 377 base::FilePath db_file; |
378 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 378 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
379 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 379 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
380 file_util::Delete(db_file, false); | 380 base::Delete(db_file, false); |
381 | 381 |
382 // Use a mock clock to set the time, and a special timer to control the | 382 // Use a mock clock to set the time, and a special timer to control the |
383 // timing and skip ahead in time. | 383 // timing and skip ahead in time. |
384 base::SimpleTestClock mock_clock; | 384 base::SimpleTestClock mock_clock; |
385 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 385 mock_clock.SetNow(base::Time::Now().LocalMidnight() + |
386 base::TimeDelta::FromHours(11)); | 386 base::TimeDelta::FromHours(11)); |
387 | 387 |
388 // Record some actions | 388 // Record some actions |
389 ActivityDatabase* activity_db = new ActivityDatabase(); | 389 ActivityDatabase* activity_db = new ActivityDatabase(); |
390 activity_db->Init(db_file); | 390 activity_db->Init(db_file); |
(...skipping 23 matching lines...) Expand all Loading... |
414 | 414 |
415 activity_db->Close(); | 415 activity_db->Close(); |
416 } | 416 } |
417 | 417 |
418 // Check that nothing explodes if the DB isn't initialized. | 418 // Check that nothing explodes if the DB isn't initialized. |
419 TEST_F(ActivityDatabaseTest, InitFailure) { | 419 TEST_F(ActivityDatabaseTest, InitFailure) { |
420 base::ScopedTempDir temp_dir; | 420 base::ScopedTempDir temp_dir; |
421 base::FilePath db_file; | 421 base::FilePath db_file; |
422 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 422 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
423 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); | 423 db_file = temp_dir.path().AppendASCII("ActivityRecord.db"); |
424 file_util::Delete(db_file, false); | 424 base::Delete(db_file, false); |
425 | 425 |
426 ActivityDatabase* activity_db = new ActivityDatabase(); | 426 ActivityDatabase* activity_db = new ActivityDatabase(); |
427 scoped_refptr<APIAction> action = new APIAction( | 427 scoped_refptr<APIAction> action = new APIAction( |
428 "punky", | 428 "punky", |
429 base::Time::Now(), | 429 base::Time::Now(), |
430 APIAction::CALL, | 430 APIAction::CALL, |
431 "brewster", | 431 "brewster", |
432 "woooof", | 432 "woooof", |
433 "extra"); | 433 "extra"); |
434 activity_db->RecordAction(action); | 434 activity_db->RecordAction(action); |
435 activity_db->Close(); | 435 activity_db->Close(); |
436 } | 436 } |
437 | 437 |
438 } // namespace extensions | 438 } // namespace extensions |
439 | 439 |
OLD | NEW |