Index: chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc |
diff --git a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc |
index 2c453a8ca98ee774e6b155397a4e207bc2a6ed6c..a7783064617ab61f1ef46367457666583a95575c 100644 |
--- a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc |
+++ b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc |
@@ -141,6 +141,27 @@ class FullStreamUIPolicyTest : public testing::Test { |
ASSERT_EQ(api_print, actions->at(1)->PrintForDebug()); |
} |
+ static void AllURLsRemoved(scoped_ptr<Action::ActionVector> actions) { |
+ std::string action_urls_cleared = |
+ "ID=punky CATEGORY=dom_access API=lets ARGS=[\"vamoose\"]"; |
+ ASSERT_EQ(2, static_cast<int>(actions->size())); |
+ ASSERT_EQ(action_urls_cleared, actions->at(0)->PrintForDebug()); |
+ ASSERT_EQ(action_urls_cleared, actions->at(1)->PrintForDebug()); |
+ } |
+ |
+ static void SomeURLsRemoved(scoped_ptr<Action::ActionVector> actions) { |
+ std::string action_urls_not_cleared = |
+ "ID=punky CATEGORY=dom_access API=lets ARGS=[\"vamoose\"] " |
+ "PAGE_URL=http://www.google.com/ PAGE_TITLE=\"Google\" " |
+ "ARG_URL=http://www.google.com/"; |
+ std::string action_urls_cleared = |
+ "ID=punky CATEGORY=dom_access API=lets ARGS=[\"vamoose\"]"; |
+ ASSERT_EQ(3, static_cast<int>(actions->size())); |
+ ASSERT_EQ(action_urls_cleared, actions->at(0)->PrintForDebug()); |
+ ASSERT_EQ(action_urls_cleared, actions->at(1)->PrintForDebug()); |
+ ASSERT_EQ(action_urls_not_cleared, actions->at(2)->PrintForDebug()); |
+ } |
+ |
protected: |
ExtensionService* extension_service_; |
scoped_ptr<TestingProfile> profile_; |
@@ -275,6 +296,7 @@ TEST_F(FullStreamUIPolicyTest, GetTodaysActions) { |
"scoobydoo", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
action->mutable_args()->AppendString("vamoose"); |
action->set_page_url(GURL("http://www.google.com")); |
+ action->set_arg_url(GURL("http://www.google2.com")); |
policy->ProcessAction(action); |
CheckReadData( |
@@ -338,4 +360,93 @@ TEST_F(FullStreamUIPolicyTest, GetOlderActions) { |
policy->Close(); |
} |
+TEST_F(FullStreamUIPolicyTest, RemoveAllURLs) { |
+ ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); |
+ |
+ // Use a mock clock to ensure that events are not recorded on the wrong day |
+ // when the test is run close to local midnight. |
+ base::SimpleTestClock* mock_clock = new base::SimpleTestClock(); |
+ mock_clock->SetNow(base::Time::Now().LocalMidnight() + |
+ base::TimeDelta::FromHours(12)); |
+ policy->SetClockForTesting(scoped_ptr<base::Clock>(mock_clock)); |
+ |
+ // Record some actions |
+ scoped_refptr<Action> action = |
+ new Action("punky", mock_clock->Now(), |
+ Action::ACTION_DOM_ACCESS, "lets"); |
+ action->mutable_args()->AppendString("vamoose"); |
+ action->set_page_url(GURL("http://www.google.com")); |
+ action->set_page_title("Google"); |
+ action->set_arg_url(GURL("http://www.google.com")); |
+ policy->ProcessAction(action); |
+ |
+ action = new Action( |
+ "punky", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
+ action->mutable_args()->AppendString("vamoose"); |
+ action->set_page_url(GURL("http://www.google2.com")); |
+ action->set_page_title("Google"); |
+ action->set_arg_url(GURL("http://www.google2.com")); |
+ policy->ProcessAction(action); |
+ |
+ // Clean all the URLs. |
+ std::vector<GURL> no_url_restrictions; |
+ policy->RemoveURLs(no_url_restrictions); |
+ |
+ CheckReadData( |
+ policy, |
+ "punky", |
+ 0, |
+ base::Bind(&FullStreamUIPolicyTest::AllURLsRemoved)); |
+ policy->Close(); |
+} |
+ |
+TEST_F(FullStreamUIPolicyTest, RemoveSpecificURLs) { |
+ ActivityLogPolicy* policy = new FullStreamUIPolicy(profile_.get()); |
+ |
+ // Use a mock clock to ensure that events are not recorded on the wrong day |
+ // when the test is run close to local midnight. |
+ base::SimpleTestClock* mock_clock = new base::SimpleTestClock(); |
+ mock_clock->SetNow(base::Time::Now().LocalMidnight() + |
+ base::TimeDelta::FromHours(12)); |
+ policy->SetClockForTesting(scoped_ptr<base::Clock>(mock_clock)); |
+ |
+ // Record some actions |
+ scoped_refptr<Action> action = |
+ new Action("punky", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
+ action->mutable_args()->AppendString("vamoose"); |
+ action->set_page_url(GURL("http://www.google1.com")); |
+ action->set_page_title("Google"); |
+ action->set_arg_url(GURL("http://www.google.com")); |
+ policy->ProcessAction(action); |
+ |
+ action = new Action( |
+ "punky", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
+ action->mutable_args()->AppendString("vamoose"); |
+ action->set_page_url(GURL("http://www.google2.com")); |
+ action->set_page_title("Google"); |
+ policy->ProcessAction(action); |
+ |
+ action = new Action( |
+ "punky", mock_clock->Now(), Action::ACTION_DOM_ACCESS, "lets"); |
+ action->mutable_args()->AppendString("vamoose"); |
+ action->set_page_url(GURL("http://www.google.com")); |
+ action->set_page_title("Google"); |
+ action->set_arg_url(GURL("http://www.google.com")); |
+ policy->ProcessAction(action); |
+ |
+ // Clean some URLs. |
+ std::vector<GURL> urls; |
+ urls.push_back(GURL("http://www.google1.com")); |
+ urls.push_back(GURL("http://www.google2.com")); |
+ urls.push_back(GURL("http://www.url_not_in_db.com")); |
+ policy->RemoveURLs(urls); |
+ |
+ CheckReadData( |
+ policy, |
+ "punky", |
+ 0, |
+ base::Bind(&FullStreamUIPolicyTest::SomeURLsRemoved)); |
+ policy->Close(); |
+} |
+ |
} // namespace extensions |