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

Unified Diff: chrome/browser/extensions/activity_log/activity_log_unittest.cc

Issue 23545012: [Activity log] Rework extraction of URLs from argument lists (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 7 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/activity_log/activity_log_unittest.cc
diff --git a/chrome/browser/extensions/activity_log/activity_log_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
index b46cd0c9b913264f29b08e9a346f98cd28111156..8414b85416957235e25b26fa3d9f561e87e57cc8 100644
--- a/chrome/browser/extensions/activity_log/activity_log_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
@@ -103,6 +103,20 @@ class ActivityLogTest : public ChromeRenderViewHostTestHarness {
ASSERT_EQ("", last->SerializeArgUrl());
}
+ static void RetrieveActions_ArgUrlExtraction(
+ scoped_ptr<std::vector<scoped_refptr<Action> > > i) {
+ ASSERT_EQ(2U, i->size());
+ scoped_refptr<Action> action = i->at(0);
+ ASSERT_EQ("[\"GET\",\"\\u003Carg_url\\u003E\"]",
+ ActivityLogPolicy::Util::Serialize(action->args()));
+ ASSERT_EQ("http://www.google.com/", action->arg_url().spec());
+
+ action = i->at(1);
+ ASSERT_EQ("[{\"url\":\"\\u003Carg_url\\u003E\"}]",
+ ActivityLogPolicy::Util::Serialize(action->args()));
+ ASSERT_EQ("http://www.google.co.uk/", action->arg_url().spec());
+ }
+
ExtensionService* extension_service_;
#if defined OS_CHROMEOS
@@ -193,4 +207,41 @@ TEST_F(ActivityLogTest, LogPrerender) {
prerender_manager->CancelAllPrerenders();
}
+TEST_F(ActivityLogTest, ArgUrlExtraction) {
+ ActivityLog* activity_log = ActivityLog::GetInstance(profile());
+ scoped_ptr<base::ListValue> args(new base::ListValue());
+
+ base::Time now = base::Time::Now();
+
+ // Submit a DOM API call which should have its URL extracted into the arg_url
+ // field.
+ scoped_refptr<Action> action = new Action(kExtensionId,
+ now,
+ Action::ACTION_DOM_ACCESS,
+ "XMLHttpRequest.open");
+ action->mutable_args()->AppendString("GET");
+ action->mutable_args()->AppendString("http://www.google.com/");
+ activity_log->LogAction(action);
+
+ // Submit an API call with an embedded URL.
+ action = new Action(kExtensionId,
+ now - base::TimeDelta::FromSeconds(1),
+ Action::ACTION_API_CALL,
+ "windows.create");
+ action->set_args(
+ ListBuilder()
+ .Append(DictionaryBuilder().Set("url", "http://www.google.co.uk"))
+ .Build());
+ activity_log->LogAction(action);
+
+ activity_log->GetFilteredActions(
+ kExtensionId,
+ Action::ACTION_ANY,
+ "",
+ "",
+ "",
+ 0,
+ base::Bind(ActivityLogTest::RetrieveActions_ArgUrlExtraction));
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698