Index: content/browser/tracing/background_tracing_manager_browsertest.cc |
diff --git a/content/browser/tracing/background_tracing_manager_browsertest.cc b/content/browser/tracing/background_tracing_manager_browsertest.cc |
deleted file mode 100644 |
index f353264f911aa59fb7b36d62422afce812058982..0000000000000000000000000000000000000000 |
--- a/content/browser/tracing/background_tracing_manager_browsertest.cc |
+++ /dev/null |
@@ -1,338 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/bind.h" |
-#include "content/public/browser/background_tracing_manager.h" |
-#include "content/public/browser/background_tracing_preemptive_config.h" |
-#include "content/public/browser/background_tracing_reactive_config.h" |
-#include "content/public/test/content_browser_test.h" |
-#include "content/public/test/content_browser_test_utils.h" |
-#include "content/public/test/test_utils.h" |
- |
-namespace content { |
- |
-class BackgroundTracingManagerBrowserTest : public ContentBrowserTest { |
- public: |
- BackgroundTracingManagerBrowserTest() {} |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(BackgroundTracingManagerBrowserTest); |
-}; |
- |
-class BackgroundTracingManagerUploadConfigWrapper { |
- public: |
- BackgroundTracingManagerUploadConfigWrapper(const base::Closure& callback) |
- : callback_(callback), receive_count_(0) { |
- receive_callback_ = |
- base::Bind(&BackgroundTracingManagerUploadConfigWrapper::Upload, |
- base::Unretained(this)); |
- } |
- |
- void Upload(const base::RefCountedString* file_contents, |
- base::Callback<void()> done_callback) { |
- receive_count_ += 1; |
- |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- base::Bind(done_callback)); |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- base::Bind(callback_)); |
- } |
- |
- int get_receive_count() const { return receive_count_; } |
- |
- const BackgroundTracingManager::ReceiveCallback& get_receive_callback() |
- const { |
- return receive_callback_; |
- } |
- |
- private: |
- BackgroundTracingManager::ReceiveCallback receive_callback_; |
- base::Closure callback_; |
- int receive_count_; |
-}; |
- |
-void StartedFinalizingCallback(base::Closure callback, |
- bool expected, |
- bool value) { |
- EXPECT_EQ(expected, value); |
- if (!callback.is_null()) |
- callback.Run(); |
-} |
- |
-scoped_ptr<BackgroundTracingPreemptiveConfig> CreatePreemptiveConfig() { |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config( |
- new BackgroundTracingPreemptiveConfig()); |
- |
- BackgroundTracingPreemptiveConfig::MonitoringRule rule; |
- rule.type = |
- BackgroundTracingPreemptiveConfig::MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED; |
- rule.named_trigger_info.trigger_name = "test"; |
- |
- config->configs.push_back(rule); |
- |
- return config.Pass(); |
-} |
- |
-void SetupBackgroundTracingManager() { |
- content::BackgroundTracingManager::GetInstance() |
- ->InvalidateTriggerHandlesForTesting(); |
-} |
- |
-void DisableScenarioWhenIdle() { |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- NULL, BackgroundTracingManager::ReceiveCallback(), false); |
-} |
- |
-// This tests that the endpoint receives the final trace data. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- ReceiveTraceFinalContentsOnTrigger) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- run_loop.QuitClosure()); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config = |
- CreatePreemptiveConfig(); |
- |
- BackgroundTracingManager::TriggerHandle handle = |
- BackgroundTracingManager::GetInstance()->RegisterTriggerType("test"); |
- |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- BackgroundTracingManager::GetInstance()->WhenIdle( |
- base::Bind(&DisableScenarioWhenIdle)); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
- } |
-} |
- |
-// This tests triggering more than once still only gathers once. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- CallTriggersMoreThanOnceOnlyGatherOnce) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- run_loop.QuitClosure()); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config = |
- CreatePreemptiveConfig(); |
- |
- content::BackgroundTracingManager::TriggerHandle handle = |
- content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
- "test"); |
- |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- BackgroundTracingManager::GetInstance()->WhenIdle( |
- base::Bind(&DisableScenarioWhenIdle)); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
- } |
-} |
- |
-// This tests multiple triggers still only gathers once. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- CallMultipleTriggersOnlyGatherOnce) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- run_loop.QuitClosure()); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config = |
- CreatePreemptiveConfig(); |
- |
- BackgroundTracingPreemptiveConfig::MonitoringRule rule; |
- rule.type = |
- BackgroundTracingPreemptiveConfig::MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED; |
- rule.named_trigger_info.trigger_name = "test1"; |
- config->configs.push_back(rule); |
- |
- rule.named_trigger_info.trigger_name = "test2"; |
- config->configs.push_back(rule); |
- |
- BackgroundTracingManager::TriggerHandle handle1 = |
- BackgroundTracingManager::GetInstance()->RegisterTriggerType("test1"); |
- BackgroundTracingManager::TriggerHandle handle2 = |
- BackgroundTracingManager::GetInstance()->RegisterTriggerType("test2"); |
- |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- BackgroundTracingManager::GetInstance()->WhenIdle( |
- base::Bind(&DisableScenarioWhenIdle)); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle2, |
- base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
- } |
-} |
- |
-// This tests that you can't trigger without a scenario set. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- CannotTriggerWithoutScenarioSet) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- (base::Closure())); |
- |
- scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
- |
- content::BackgroundTracingManager::TriggerHandle handle = |
- content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
- "test"); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, |
- base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
- } |
-} |
- |
-// This tests that no trace is triggered with a handle that isn't specified |
-// in the config. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- DoesNotTriggerWithWrongHandle) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- (base::Closure())); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config = |
- CreatePreemptiveConfig(); |
- |
- content::BackgroundTracingManager::TriggerHandle handle = |
- content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
- "does_not_exist"); |
- |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- BackgroundTracingManager::GetInstance()->WhenIdle( |
- base::Bind(&DisableScenarioWhenIdle)); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, |
- base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
- } |
-} |
- |
-// This tests that no trace is triggered with an invalid handle. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- DoesNotTriggerWithInvalidHandle) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- base::RunLoop run_loop; |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- (base::Closure())); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config = |
- CreatePreemptiveConfig(); |
- |
- content::BackgroundTracingManager::TriggerHandle handle = |
- content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
- "test"); |
- |
- content::BackgroundTracingManager::GetInstance() |
- ->InvalidateTriggerHandlesForTesting(); |
- |
- BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- BackgroundTracingManager::GetInstance()->WhenIdle( |
- base::Bind(&DisableScenarioWhenIdle)); |
- |
- BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
- handle, |
- base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
- |
- run_loop.Run(); |
- |
- EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
- } |
-} |
- |
-// This tests that reactive mode configs will fail. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- DoesNotAllowPreemptiveConfigThatsNotManual) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- (base::Closure())); |
- |
- scoped_ptr<BackgroundTracingPreemptiveConfig> config( |
- new content::BackgroundTracingPreemptiveConfig()); |
- |
- BackgroundTracingPreemptiveConfig::MonitoringRule rule; |
- rule.type = BackgroundTracingPreemptiveConfig:: |
- MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE; |
- rule.histogram_trigger_info.histogram_name_to_trigger_on = "fake"; |
- rule.histogram_trigger_info.histogram_bin_to_trigger_on = 0; |
- config->configs.push_back(rule); |
- |
- bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- EXPECT_FALSE(result); |
- } |
-} |
- |
-// This tests that reactive mode configs will fail. |
-IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
- DoesNotAllowReactiveConfig) { |
- { |
- SetupBackgroundTracingManager(); |
- |
- BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
- (base::Closure())); |
- |
- scoped_ptr<BackgroundTracingConfig> config( |
- new BackgroundTracingReactiveConfig()); |
- |
- bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario( |
- config.Pass(), upload_config_wrapper.get_receive_callback(), true); |
- |
- EXPECT_FALSE(result); |
- } |
-} |
- |
-} // namespace content |