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

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

Issue 19234003: Extension activity log database refactoring (step 2) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 5 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_database_unittest.cc
diff --git a/chrome/browser/extensions/activity_log/activity_database_unittest.cc b/chrome/browser/extensions/activity_log/activity_database_unittest.cc
index edd14dd7fca825634b270474527980d5d96032c3..55a8129bf9f0bf3f60e32061c9f5c50e7ffcc6c5 100644
--- a/chrome/browser/extensions/activity_log/activity_database_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_database_unittest.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/extensions/activity_log/api_actions.h"
#include "chrome/browser/extensions/activity_log/blocked_actions.h"
#include "chrome/browser/extensions/activity_log/dom_actions.h"
+#include "chrome/browser/extensions/activity_log/fullstream_ui_policy.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/test_extension_system.h"
#include "chrome/common/chrome_constants.h"
@@ -47,10 +48,12 @@ class ActivityDatabaseTestPolicy : public ActivityDatabase::Delegate {
protected:
virtual bool OnDatabaseInit(sql::Connection* db) OVERRIDE {
- if (!DOMAction::InitializeTable(db)) return false;
- if (!APIAction::InitializeTable(db)) return false;
- if (!BlockedAction::InitializeTable(db)) return false;
- return true;
+ return ActivityDatabase::InitializeTable(
+ db,
+ FullStreamUIPolicy::kTableName,
+ FullStreamUIPolicy::kTableContentFields,
+ FullStreamUIPolicy::kTableFieldTypes,
+ FullStreamUIPolicy::kTableFieldCount);
}
// Called by ActivityDatabase just before the ActivityDatabase object is
@@ -99,7 +102,6 @@ class ActivityDatabaseTest : public ChromeRenderViewHostTestHarness {
};
-
// Check that the database is initialized properly.
TEST_F(ActivityDatabaseTest, Init) {
base::ScopedTempDir temp_dir;
@@ -113,9 +115,7 @@ TEST_F(ActivityDatabaseTest, Init) {
sql::Connection db;
ASSERT_TRUE(db.Open(db_file));
- ASSERT_TRUE(db.DoesTableExist(DOMAction::kTableName));
- ASSERT_TRUE(db.DoesTableExist(APIAction::kTableName));
- ASSERT_TRUE(db.DoesTableExist(BlockedAction::kTableName));
+ ASSERT_TRUE(db.DoesTableExist(FullStreamUIPolicy::kTableName));
db.Close();
}
@@ -129,12 +129,15 @@ TEST_F(ActivityDatabaseTest, RecordAPIAction) {
ActivityDatabase* activity_db = OpenDatabase(db_file);
activity_db->SetBatchModeForTesting(false);
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> action = new APIAction(
"punky",
base::Time::Now(),
APIAction::CALL,
"brewster",
"woof",
+ args_list,
"extra");
activity_db->RecordAction(action);
activity_db->Close();
@@ -142,15 +145,15 @@ TEST_F(ActivityDatabaseTest, RecordAPIAction) {
sql::Connection db;
ASSERT_TRUE(db.Open(db_file));
- ASSERT_TRUE(db.DoesTableExist(APIAction::kTableName));
+ ASSERT_TRUE(db.DoesTableExist(FullStreamUIPolicy::kTableName));
std::string sql_str = "SELECT * FROM " +
- std::string(APIAction::kTableName);
+ std::string(FullStreamUIPolicy::kTableName);
sql::Statement statement(db.GetUniqueStatement(sql_str.c_str()));
ASSERT_TRUE(statement.Step());
ASSERT_EQ("punky", statement.ColumnString(0));
- ASSERT_EQ(0, statement.ColumnInt(2));
+ ASSERT_EQ(static_cast<int>(Action::ACTION_API), statement.ColumnInt(2));
ASSERT_EQ("brewster", statement.ColumnString(3));
- ASSERT_EQ("woof", statement.ColumnString(4));
+ ASSERT_EQ("[\"woof\"]", statement.ColumnString(4));
}
// Check that DOM actions are recorded in the db.
@@ -178,22 +181,23 @@ TEST_F(ActivityDatabaseTest, RecordDOMAction) {
sql::Connection db;
ASSERT_TRUE(db.Open(db_file));
- ASSERT_TRUE(db.DoesTableExist(APIAction::kTableName));
+ ASSERT_TRUE(db.DoesTableExist(FullStreamUIPolicy::kTableName));
std::string sql_str = "SELECT * FROM " +
- std::string(DOMAction::kTableName);
+ std::string(FullStreamUIPolicy::kTableName);
sql::Statement statement(db.GetUniqueStatement(sql_str.c_str()));
ASSERT_TRUE(statement.Step());
ASSERT_EQ("punky", statement.ColumnString(0));
- ASSERT_EQ(DomActionType::MODIFIED, statement.ColumnInt(2));
- ASSERT_EQ("http://www.google.com", statement.ColumnString(3));
+ ASSERT_EQ(static_cast<int>(Action::ACTION_DOM_OTHER), statement.ColumnInt(2));
+ //ASSERT_EQ(DomActionType::MODIFIED, statement.ColumnInt(2));
felt 2013/07/16 06:44:03 miss a line?
mvrable 2013/07/16 18:12:35 Fixed. verb wasn't getting saved/checked before,
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableExtensionActivityLogTesting))
felt 2013/07/16 06:44:03 If you want to test both, we should have a separat
mvrable 2013/07/16 18:12:35 Is there an easy way to remove a command-line flag
felt 2013/07/16 18:30:17 I must have missed this in a previous review. No,
mvrable 2013/07/16 18:38:39 Done.
- ASSERT_EQ("/foo?bar", statement.ColumnString(4));
+ ASSERT_EQ("http://www.google.com/foo?bar", statement.ColumnString(5));
else
- ASSERT_EQ("/foo", statement.ColumnString(4));
- ASSERT_EQ("lets", statement.ColumnString(6));
- ASSERT_EQ("vamoose", statement.ColumnString(7));
- ASSERT_EQ("extra", statement.ColumnString(8));
+ ASSERT_EQ("http://www.google.com/foo", statement.ColumnString(5));
+ ASSERT_EQ("lets", statement.ColumnString(3));
+ ASSERT_EQ("vamoose", statement.ColumnString(4));
+ ASSERT_EQ("{\"extra\":\"extra\",\"page_title\":\"\"}",
+ statement.ColumnString(7));
}
// Check that blocked actions are recorded in the db.
@@ -218,16 +222,18 @@ TEST_F(ActivityDatabaseTest, RecordBlockedAction) {
sql::Connection db;
ASSERT_TRUE(db.Open(db_file));
- ASSERT_TRUE(db.DoesTableExist(BlockedAction::kTableName));
+ ASSERT_TRUE(db.DoesTableExist(FullStreamUIPolicy::kTableName));
std::string sql_str = "SELECT * FROM " +
- std::string(BlockedAction::kTableName);
+ std::string(FullStreamUIPolicy::kTableName);
sql::Statement statement(db.GetUniqueStatement(sql_str.c_str()));
ASSERT_TRUE(statement.Step());
ASSERT_EQ("punky", statement.ColumnString(0));
- ASSERT_EQ("do.evilThings", statement.ColumnString(2));
- ASSERT_EQ("1, 2", statement.ColumnString(3));
- ASSERT_EQ(1, statement.ColumnInt(4));
- ASSERT_EQ("extra", statement.ColumnString(5));
+ ASSERT_EQ(static_cast<int>(Action::ACTION_API_BLOCKED),
+ statement.ColumnInt(2));
+ ASSERT_EQ("do.evilThings", statement.ColumnString(3));
+ ASSERT_EQ("1, 2", statement.ColumnString(4));
+ //ASSERT_EQ(1, statement.ColumnInt(4));
+ ASSERT_EQ("{\"reason\":1}", statement.ColumnString(7));
}
// Check that we can read back recent actions in the db.
@@ -246,12 +252,15 @@ TEST_F(ActivityDatabaseTest, GetTodaysActions) {
// Record some actions
ActivityDatabase* activity_db = OpenDatabase(db_file);
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> api_action = new APIAction(
"punky",
mock_clock.Now() - base::TimeDelta::FromMinutes(40),
APIAction::CALL,
"brewster",
"woof",
+ args_list,
"extra");
scoped_refptr<DOMAction> dom_action = new DOMAction(
"punky",
@@ -276,9 +285,10 @@ TEST_F(ActivityDatabaseTest, GetTodaysActions) {
activity_db->RecordAction(extra_dom_action);
// Read them back
- std::string api_print = "ID: punky, CATEGORY: call, "
- "API: brewster, ARGS: woof";
- std::string dom_print = "DOM API CALL: lets, ARGS: vamoose, VERB: modified";
+ std::string api_print =
+ "ID=punky CATEGORY=api_call API=brewster ARGS=[\"woof\"] OTHER={}";
+ std::string dom_print = "ID=punky CATEGORY=dom_other API=lets ARGS=[] "
+ "PAGE_URL=http://www.google.com/ OTHER={}";
scoped_ptr<std::vector<scoped_refptr<Action> > > actions =
activity_db->GetActions("punky", 0);
ASSERT_EQ(2, static_cast<int>(actions->size()));
@@ -304,6 +314,8 @@ TEST_F(ActivityDatabaseTest, GetOlderActions) {
// Record some actions
ActivityDatabase* activity_db = OpenDatabase(db_file);
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> api_action = new APIAction(
"punky",
mock_clock.Now() - base::TimeDelta::FromDays(3)
@@ -311,6 +323,7 @@ TEST_F(ActivityDatabaseTest, GetOlderActions) {
APIAction::CALL,
"brewster",
"woof",
+ args_list,
"extra");
scoped_refptr<DOMAction> dom_action = new DOMAction(
"punky",
@@ -345,9 +358,10 @@ TEST_F(ActivityDatabaseTest, GetOlderActions) {
activity_db->RecordAction(tooold_dom_action);
// Read them back
- std::string api_print = "ID: punky, CATEGORY: call, "
- "API: brewster, ARGS: woof";
- std::string dom_print = "DOM API CALL: lets, ARGS: vamoose, VERB: modified";
+ std::string api_print =
+ "ID=punky CATEGORY=api_call API=brewster ARGS=[\"woof\"] OTHER={}";
+ std::string dom_print = "ID=punky CATEGORY=dom_other API=lets ARGS=[] "
+ "PAGE_URL=http://www.google.com/ OTHER={}";
scoped_ptr<std::vector<scoped_refptr<Action> > > actions =
activity_db->GetActions("punky", 3);
ASSERT_EQ(2, static_cast<int>(actions->size()));
@@ -374,12 +388,15 @@ TEST_F(ActivityDatabaseTest, BatchModeOff) {
ActivityDatabase* activity_db = OpenDatabase(db_file);
activity_db->SetBatchModeForTesting(false);
activity_db->SetClockForTesting(&mock_clock);
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> api_action = new APIAction(
"punky",
mock_clock.Now() - base::TimeDelta::FromMinutes(40),
APIAction::CALL,
"brewster",
"woof",
+ args_list,
"extra");
activity_db->RecordAction(api_action);
@@ -406,12 +423,15 @@ TEST_F(ActivityDatabaseTest, BatchModeOn) {
ActivityDatabase* activity_db = OpenDatabase(db_file);
activity_db->SetBatchModeForTesting(true);
activity_db->SetClockForTesting(&mock_clock);
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> api_action = new APIAction(
"punky",
mock_clock.Now() - base::TimeDelta::FromMinutes(40),
APIAction::CALL,
"brewster",
"woof",
+ args_list,
"extra");
activity_db->RecordAction(api_action);
@@ -440,12 +460,15 @@ TEST_F(ActivityDatabaseTest, InitFailure) {
ActivityDatabase* activity_db =
new ActivityDatabase(new ActivityDatabaseTestPolicy());
+ base::ListValue args_list;
+ args_list.AppendString("woof");
scoped_refptr<APIAction> action = new APIAction(
"punky",
base::Time::Now(),
APIAction::CALL,
"brewster",
"woooof",
+ args_list,
"extra");
activity_db->RecordAction(action);
activity_db->Close();

Powered by Google App Engine
This is Rietveld 408576698