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

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

Issue 2980503002: [Extensions][TaskScheduler] Update ActivityLog for scheduling migration (Closed)
Patch Set: Experiments Created 3 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 cdd657875f9348ef2cc66f504af3fe591d3fc188..ee07d8a554e1e93866948de376d204d2450ba59b 100644
--- a/chrome/browser/extensions/activity_log/activity_database_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_database_unittest.cc
@@ -13,10 +13,12 @@
#include "base/macros.h"
#include "base/run_loop.h"
#include "base/test/simple_test_clock.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/activity_log/activity_action_constants.h"
#include "chrome/browser/extensions/activity_log/activity_database.h"
+#include "chrome/browser/extensions/activity_log/activity_log_task_runner.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"
@@ -26,11 +28,24 @@
#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/test_browser_thread.h"
+#include "content/public/test/test_utils.h"
#include "extensions/common/dom_action_types.h"
#include "sql/statement.h"
#include "testing/gtest/include/gtest/gtest.h"
-using content::BrowserThread;
+#define TEST_ON_ACTIVITY_LOG_RUNNER(test_class, test_name) \
Devlin 2017/07/12 19:30:36 gab@, I'm curious what you think of a pattern like
+ class test_class##_##test_name##_Runner : public test_class { \
+ public: \
+ void RunTest(); \
+ }; \
+ TEST_F(test_class##_##test_name##_Runner, test_name) { \
+ base::RunLoop run_loop; \
+ GetActivityLogTaskRunner()->PostTask( \
+ FROM_HERE, base::Bind(&test_class##_##test_name##_Runner::RunTest, \
+ base::Unretained(this))); \
+ content::RunAllBlockingPoolTasksUntilIdle(); \
+ } \
+ void test_class##_##test_name##_Runner::RunTest()
namespace constants = activity_log_constants;
@@ -134,6 +149,10 @@ class ActivityDatabaseTest : public ChromeRenderViewHostTestHarness {
db_delegate_->Record(db, action);
}
+ int CountActions(ActivityDatabase* db, const std::string& api_name_pattern) {
+ return CountActions(&db->db_, api_name_pattern);
+ }
+
int CountActions(sql::Connection* db, const std::string& api_name_pattern) {
if (!db->DoesTableExist(ActivityDatabaseTestPolicy::kTableName))
return -1;
@@ -148,12 +167,16 @@ class ActivityDatabaseTest : public ChromeRenderViewHostTestHarness {
return statement.ColumnInt(0);
}
+ void RecordBatchedActions(ActivityDatabase* db) {
+ db->RecordBatchedActionsWhileTesting();
+ }
+
private:
ActivityDatabaseTestPolicy* db_delegate_;
};
// Check that the database is initialized properly.
-TEST_F(ActivityDatabaseTest, Init) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, Init) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -170,7 +193,7 @@ TEST_F(ActivityDatabaseTest, Init) {
}
// Check that actions are recorded in the db.
-TEST_F(ActivityDatabaseTest, RecordAction) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, RecordAction) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -189,7 +212,7 @@ TEST_F(ActivityDatabaseTest, RecordAction) {
ASSERT_EQ(1, CountActions(&db, "brewster"));
}
-TEST_F(ActivityDatabaseTest, BatchModeOff) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, BatchModeOff) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -202,12 +225,12 @@ TEST_F(ActivityDatabaseTest, BatchModeOff) {
scoped_refptr<Action> action = CreateAction(base::Time::Now(), "brewster");
Record(activity_db, action);
- ASSERT_EQ(1, CountActions(&activity_db->db_, "brewster"));
+ ASSERT_EQ(1, CountActions(activity_db, "brewster"));
activity_db->Close();
}
-TEST_F(ActivityDatabaseTest, BatchModeOn) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, BatchModeOn) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -219,17 +242,16 @@ TEST_F(ActivityDatabaseTest, BatchModeOn) {
activity_db->SetBatchModeForTesting(true);
scoped_refptr<Action> action = CreateAction(base::Time::Now(), "brewster");
Record(activity_db, action);
- ASSERT_EQ(0, CountActions(&activity_db->db_, "brewster"));
+ ASSERT_EQ(0, CountActions(activity_db, "brewster"));
// Artificially trigger and then stop the timer.
- activity_db->SetTimerForTesting(0);
- base::RunLoop().RunUntilIdle();
Devlin 2017/07/12 19:30:36 We can remove this here because SetTimerForTesting
- ASSERT_EQ(1, CountActions(&activity_db->db_, "brewster"));
+ RecordBatchedActions(activity_db);
+ ASSERT_EQ(1, CountActions(activity_db, "brewster"));
activity_db->Close();
}
-TEST_F(ActivityDatabaseTest, BatchModeFlush) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, BatchModeFlush) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -241,17 +263,17 @@ TEST_F(ActivityDatabaseTest, BatchModeFlush) {
activity_db->SetBatchModeForTesting(true);
scoped_refptr<Action> action = CreateAction(base::Time::Now(), "brewster");
Record(activity_db, action);
- ASSERT_EQ(0, CountActions(&activity_db->db_, "brewster"));
+ ASSERT_EQ(0, CountActions(activity_db, "brewster"));
// Request an immediate database flush.
activity_db->AdviseFlush(ActivityDatabase::kFlushImmediately);
- ASSERT_EQ(1, CountActions(&activity_db->db_, "brewster"));
+ ASSERT_EQ(1, CountActions(activity_db, "brewster"));
activity_db->Close();
}
// Check that nothing explodes if the DB isn't initialized.
-TEST_F(ActivityDatabaseTest, InitFailure) {
+TEST_ON_ACTIVITY_LOG_RUNNER(ActivityDatabaseTest, InitFailure) {
base::ScopedTempDir temp_dir;
base::FilePath db_file;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());

Powered by Google App Engine
This is Rietveld 408576698