Chromium Code Reviews| 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(); |