Chromium Code Reviews| Index: chrome/browser/metrics/plugin_metrics_provider_unittest.cc |
| diff --git a/chrome/browser/metrics/plugin_metrics_provider_unittest.cc b/chrome/browser/metrics/plugin_metrics_provider_unittest.cc |
| index dc961918faef9174469fa3a9df5fbfc382d1a409..3bbc2990c4282d545a86714d947982ac38ad4023 100644 |
| --- a/chrome/browser/metrics/plugin_metrics_provider_unittest.cc |
| +++ b/chrome/browser/metrics/plugin_metrics_provider_unittest.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/prefs/pref_service.h" |
| #include "base/prefs/scoped_user_pref_update.h" |
| #include "base/prefs/testing_pref_service.h" |
| +#include "base/run_loop.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/metrics/proto/system_profile.pb.h" |
| @@ -100,3 +101,40 @@ TEST(PluginMetricsProviderTest, Plugins) { |
| EXPECT_EQ(3, stability.plugin_stability(0).instance_count()); |
| EXPECT_EQ(4, stability.plugin_stability(0).loading_error_count()); |
| } |
| + |
| +TEST(PluginMetricsProviderTest, CheckDelayedRecordCurrentState) { |
| + content::TestBrowserThreadBundle thread_bundle; |
| + |
| + TestingPrefServiceSimple prefs; |
| + PluginMetricsProvider::RegisterPrefs(prefs.registry()); |
| + PluginMetricsProvider provider(&prefs); |
| + |
| + int delay_ms = 10; |
| + EXPECT_TRUE(provider.DelayedRecordCurrentState(delay_ms)); |
| + EXPECT_FALSE(provider.DelayedRecordCurrentState(delay_ms)); |
| + |
| + base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(delay_ms)); |
| + base::RunLoop().RunUntilIdle(); |
| + |
| + EXPECT_TRUE(provider.DelayedRecordCurrentState(delay_ms)); |
| +} |
| + |
| +TEST(PluginMetricsProviderTest, CheckForcedRecordCurrentState) { |
| + content::TestBrowserThreadBundle thread_bundle; |
| + |
| + TestingPrefServiceSimple prefs; |
| + PluginMetricsProvider::RegisterPrefs(prefs.registry()); |
| + PluginMetricsProvider provider(&prefs); |
| + |
| + // First there should be now need to force RecordCurrentState. |
| + EXPECT_FALSE(provider.ForcedRecordCurrentState()); |
| + |
| + // After delayed task is posted ForcedRecordCurrentState should return true. |
| + int delay_ms = 100000; |
| + EXPECT_TRUE(provider.DelayedRecordCurrentState(delay_ms)); |
| + EXPECT_TRUE(provider.ForcedRecordCurrentState()); |
| + |
| + // if ForcedRecordCurrentState was successful then we should be able to post |
|
Alexei Svitkine (slow)
2014/08/05 21:35:21
Nit: Capitalize if.
gayane -on leave until 09-2017
2014/08/06 14:51:35
Done.
|
| + // a new delayed task |
| + EXPECT_TRUE(provider.DelayedRecordCurrentState(delay_ms)); |
| +} |