| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/cancelable_callback.h" | 5 #include "base/cancelable_callback.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
| 10 #include "base/test/simple_test_clock.h" | 10 #include "base/test/simple_test_clock.h" |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 extension->id(), | 240 extension->id(), |
| 241 0, | 241 0, |
| 242 base::Bind(&FullStreamUIPolicyTest::Arguments_Present)); | 242 base::Bind(&FullStreamUIPolicyTest::Arguments_Present)); |
| 243 policy->Close(); | 243 policy->Close(); |
| 244 } | 244 } |
| 245 | 245 |
| 246 TEST_F(FullStreamUIPolicyTest, GetTodaysActions) { | 246 TEST_F(FullStreamUIPolicyTest, GetTodaysActions) { |
| 247 ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); | 247 ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); |
| 248 | 248 |
| 249 // Use a mock clock to ensure that events are not recorded on the wrong day | 249 // Use a mock clock to ensure that events are not recorded on the wrong day |
| 250 // when the test is run close to local midnight. | 250 // when the test is run close to local midnight. Note: Ownership is passed |
| 251 base::SimpleTestClock mock_clock; | 251 // to the policy, but we still keep a pointer locally. The policy will take |
| 252 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 252 // care of destruction; this is safe since the policy outlives all our |
| 253 base::TimeDelta::FromHours(12)); | 253 // accesses to the mock clock. |
| 254 policy->SetClockForTesting(&mock_clock); | 254 base::SimpleTestClock* mock_clock = new base::SimpleTestClock(); |
| 255 mock_clock->SetNow(base::Time::Now().LocalMidnight() + |
| 256 base::TimeDelta::FromHours(12)); |
| 257 policy->SetClockForTesting(scoped_ptr<base::Clock>(mock_clock)); |
| 255 | 258 |
| 256 // Record some actions | 259 // Record some actions |
| 257 scoped_refptr<Action> action = | 260 scoped_refptr<Action> action = |
| 258 new Action("punky", | 261 new Action("punky", |
| 259 mock_clock.Now() - base::TimeDelta::FromMinutes(40), | 262 mock_clock->Now() - base::TimeDelta::FromMinutes(40), |
| 260 Action::ACTION_API_CALL, | 263 Action::ACTION_API_CALL, |
| 261 "brewster"); | 264 "brewster"); |
| 262 action->mutable_args()->AppendString("woof"); | 265 action->mutable_args()->AppendString("woof"); |
| 263 policy->ProcessAction(action); | 266 policy->ProcessAction(action); |
| 264 | 267 |
| 265 action = | 268 action = |
| 266 new Action("punky", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets"); | 269 new Action("punky", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
| 267 action->mutable_args()->AppendString("vamoose"); | 270 action->mutable_args()->AppendString("vamoose"); |
| 268 action->set_page_url(GURL("http://www.google.com")); | 271 action->set_page_url(GURL("http://www.google.com")); |
| 269 policy->ProcessAction(action); | 272 policy->ProcessAction(action); |
| 270 | 273 |
| 271 action = new Action( | 274 action = new Action( |
| 272 "scoobydoo", mock_clock.Now(), Action::ACTION_DOM_ACCESS, "lets"); | 275 "scoobydoo", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
| 273 action->mutable_args()->AppendString("vamoose"); | 276 action->mutable_args()->AppendString("vamoose"); |
| 274 action->set_page_url(GURL("http://www.google.com")); | 277 action->set_page_url(GURL("http://www.google.com")); |
| 275 policy->ProcessAction(action); | 278 policy->ProcessAction(action); |
| 276 | 279 |
| 277 CheckReadData( | 280 CheckReadData( |
| 278 policy, | 281 policy, |
| 279 "punky", | 282 "punky", |
| 280 0, | 283 0, |
| 281 base::Bind(&FullStreamUIPolicyTest::Arguments_GetTodaysActions)); | 284 base::Bind(&FullStreamUIPolicyTest::Arguments_GetTodaysActions)); |
| 282 policy->Close(); | 285 policy->Close(); |
| 283 } | 286 } |
| 284 | 287 |
| 285 // Check that we can read back less recent actions in the db. | 288 // Check that we can read back less recent actions in the db. |
| 286 TEST_F(FullStreamUIPolicyTest, GetOlderActions) { | 289 TEST_F(FullStreamUIPolicyTest, GetOlderActions) { |
| 287 ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); | 290 ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); |
| 288 | 291 |
| 289 // Use a mock clock to ensure that events are not recorded on the wrong day | 292 // Use a mock clock to ensure that events are not recorded on the wrong day |
| 290 // when the test is run close to local midnight. | 293 // when the test is run close to local midnight. |
| 291 base::SimpleTestClock mock_clock; | 294 base::SimpleTestClock* mock_clock = new base::SimpleTestClock(); |
| 292 mock_clock.SetNow(base::Time::Now().LocalMidnight() + | 295 mock_clock->SetNow(base::Time::Now().LocalMidnight() + |
| 293 base::TimeDelta::FromHours(12)); | 296 base::TimeDelta::FromHours(12)); |
| 294 policy->SetClockForTesting(&mock_clock); | 297 policy->SetClockForTesting(scoped_ptr<base::Clock>(mock_clock)); |
| 295 | 298 |
| 296 // Record some actions | 299 // Record some actions |
| 297 scoped_refptr<Action> action = | 300 scoped_refptr<Action> action = |
| 298 new Action("punky", | 301 new Action("punky", |
| 299 mock_clock.Now() - base::TimeDelta::FromDays(3) - | 302 mock_clock->Now() - base::TimeDelta::FromDays(3) - |
| 300 base::TimeDelta::FromMinutes(40), | 303 base::TimeDelta::FromMinutes(40), |
| 301 Action::ACTION_API_CALL, | 304 Action::ACTION_API_CALL, |
| 302 "brewster"); | 305 "brewster"); |
| 303 action->mutable_args()->AppendString("woof"); | 306 action->mutable_args()->AppendString("woof"); |
| 304 policy->ProcessAction(action); | 307 policy->ProcessAction(action); |
| 305 | 308 |
| 306 action = new Action("punky", | 309 action = new Action("punky", |
| 307 mock_clock.Now() - base::TimeDelta::FromDays(3), | 310 mock_clock->Now() - base::TimeDelta::FromDays(3), |
| 308 Action::ACTION_DOM_ACCESS, | 311 Action::ACTION_DOM_ACCESS, |
| 309 "lets"); | 312 "lets"); |
| 310 action->mutable_args()->AppendString("vamoose"); | 313 action->mutable_args()->AppendString("vamoose"); |
| 311 action->set_page_url(GURL("http://www.google.com")); | 314 action->set_page_url(GURL("http://www.google.com")); |
| 312 policy->ProcessAction(action); | 315 policy->ProcessAction(action); |
| 313 | 316 |
| 314 action = new Action("punky", | 317 action = new Action("punky", |
| 315 mock_clock.Now(), | 318 mock_clock->Now(), |
| 316 Action::ACTION_DOM_ACCESS, | 319 Action::ACTION_DOM_ACCESS, |
| 317 "lets"); | 320 "lets"); |
| 318 action->mutable_args()->AppendString("too new"); | 321 action->mutable_args()->AppendString("too new"); |
| 319 action->set_page_url(GURL("http://www.google.com")); | 322 action->set_page_url(GURL("http://www.google.com")); |
| 320 policy->ProcessAction(action); | 323 policy->ProcessAction(action); |
| 321 | 324 |
| 322 action = new Action("punky", | 325 action = new Action("punky", |
| 323 mock_clock.Now() - base::TimeDelta::FromDays(7), | 326 mock_clock->Now() - base::TimeDelta::FromDays(7), |
| 324 Action::ACTION_DOM_ACCESS, | 327 Action::ACTION_DOM_ACCESS, |
| 325 "lets"); | 328 "lets"); |
| 326 action->mutable_args()->AppendString("too old"); | 329 action->mutable_args()->AppendString("too old"); |
| 327 action->set_page_url(GURL("http://www.google.com")); | 330 action->set_page_url(GURL("http://www.google.com")); |
| 328 policy->ProcessAction(action); | 331 policy->ProcessAction(action); |
| 329 | 332 |
| 330 CheckReadData( | 333 CheckReadData( |
| 331 policy, | 334 policy, |
| 332 "punky", | 335 "punky", |
| 333 3, | 336 3, |
| 334 base::Bind(&FullStreamUIPolicyTest::Arguments_GetOlderActions)); | 337 base::Bind(&FullStreamUIPolicyTest::Arguments_GetOlderActions)); |
| 335 policy->Close(); | 338 policy->Close(); |
| 336 } | 339 } |
| 337 | 340 |
| 338 } // namespace extensions | 341 } // namespace extensions |
| OLD | NEW |