Index: base/debug/trace_event_unittest.cc |
diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc |
index 445118b6374bd1751df1468d175f7f35db6d8927..0d6d9bea92f9ef7a2590554c10d4038bbaeb9480 100644 |
--- a/base/debug/trace_event_unittest.cc |
+++ b/base/debug/trace_event_unittest.cc |
@@ -71,7 +71,8 @@ class TraceEventTestFixture : public testing::Test { |
} |
void EndTraceAndFlush() { |
- TraceLog::GetInstance()->SetDisabled(); |
+ while (TraceLog::GetInstance()->IsEnabled()) |
+ TraceLog::GetInstance()->SetDisabled(); |
TraceLog::GetInstance()->Flush( |
base::Bind(&TraceEventTestFixture::OnTraceDataCollected, |
base::Unretained(this))); |
@@ -696,11 +697,14 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnSecondEnable) { |
// Cleanup. |
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
TraceLog::GetInstance()->SetEnabled(false); |
+ TraceLog::GetInstance()->SetEnabled(false); |
} |
-TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnUselessDisable) { |
+TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnNestedDisable) { |
ManualTestSetUp(); |
+ TraceLog::GetInstance()->SetEnabled(true); |
+ TraceLog::GetInstance()->SetEnabled(true); |
testing::StrictMock<MockEnabledStateChangedObserver> observer; |
TraceLog::GetInstance()->AddEnabledStateObserver(&observer); |
@@ -714,6 +718,7 @@ TEST_F(TraceEventTestFixture, EnabledObserverDoesntFireOnUselessDisable) { |
// Cleanup. |
TraceLog::GetInstance()->RemoveEnabledStateObserver(&observer); |
+ TraceLog::GetInstance()->SetEnabled(false); |
} |
TEST_F(TraceEventTestFixture, EnabledObserverFiresOnDisable) { |
@@ -1337,5 +1342,56 @@ TEST_F(TraceEventTestFixture, TraceResultBuffer) { |
EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); |
} |
+TEST_F(TraceEventTestFixture, TraceEnableDisable) { |
+ ManualTestSetUp(); |
+ |
+ TraceLog* trace_log = TraceLog::GetInstance(); |
+ trace_log->SetEnabled(std::string()); |
+ EXPECT_TRUE(trace_log->IsEnabled()); |
+ trace_log->SetDisabled(); |
+ EXPECT_FALSE(trace_log->IsEnabled()); |
+ |
+ trace_log->SetEnabled(true); |
+ EXPECT_TRUE(trace_log->IsEnabled()); |
+ const std::vector<std::string> empty; |
+ trace_log->SetEnabled(empty, empty); |
+ EXPECT_TRUE(trace_log->IsEnabled()); |
+ trace_log->SetEnabled(false); |
+ EXPECT_TRUE(trace_log->IsEnabled()); |
+ trace_log->SetDisabled(); |
+ EXPECT_FALSE(trace_log->IsEnabled()); |
+} |
+ |
+TEST_F(TraceEventTestFixture, TraceCategoriesAfterNestedEnable) { |
+ ManualTestSetUp(); |
+ |
+ TraceLog* trace_log = TraceLog::GetInstance(); |
+ trace_log->SetEnabled(std::string("foo,bar")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("bar")); |
+ EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); |
+ trace_log->SetEnabled(std::string("foo2")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo2")); |
+ EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); |
+ trace_log->SetEnabled(std::string("")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); |
+ trace_log->SetDisabled(); |
+ trace_log->SetDisabled(); |
+ trace_log->SetDisabled(); |
+ EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo")); |
+ EXPECT_FALSE(*trace_log->GetCategoryEnabled("baz")); |
+ |
+ trace_log->SetEnabled(std::string("-foo,-bar")); |
+ EXPECT_FALSE(*trace_log->GetCategoryEnabled("foo")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); |
+ trace_log->SetEnabled(std::string("moo")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("baz")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("moo")); |
+ EXPECT_TRUE(*trace_log->GetCategoryEnabled("foo")); |
+ trace_log->SetDisabled(); |
+ trace_log->SetDisabled(); |
+} |
+ |
} // namespace debug |
} // namespace base |