Index: chrome/browser/ui/website_settings/website_settings_unittest.cc |
diff --git a/chrome/browser/ui/website_settings/website_settings_unittest.cc b/chrome/browser/ui/website_settings/website_settings_unittest.cc |
index d66dfff0652a223a741e517f7e6e91107eb57172..cf96f348d800e37b17cbc0b7d1e6a7801e3a175a 100644 |
--- a/chrome/browser/ui/website_settings/website_settings_unittest.cc |
+++ b/chrome/browser/ui/website_settings/website_settings_unittest.cc |
@@ -13,6 +13,7 @@ |
#include "base/message_loop/message_loop.h" |
#include "base/strings/string16.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/test/histogram_tester.h" |
#include "build/build_config.h" |
#include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
#include "chrome/browser/infobars/infobar_service.h" |
@@ -893,3 +894,66 @@ TEST_F(WebsiteSettingsTest, InternalPage) { |
EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
} |
#endif |
+ |
+// Tests that metrics are recorded on a WebsiteSettings for pages with |
+// various security levels. |
+TEST_F(WebsiteSettingsTest, SecurityLevelMetrics) { |
+ struct TestCase { |
+ const std::string url; |
+ const SecurityStateModel::SecurityLevel security_level; |
+ const std::string histogram_name; |
+ }; |
+ const char kGenericHistogram[] = "WebsiteSettings.Action"; |
+ base::HistogramTester histograms; |
+ |
+ const TestCase kTestCases[] = { |
+ {"https://example.test", SecurityStateModel::SECURE, |
+ "WebsiteSettings.Action.HttpsUrl2"}, |
+ {"https://example2.test", SecurityStateModel::NONE, |
+ "WebsiteSettings.Action.HttpsUrlDowngraded"}, |
+ {"https://example.test", SecurityStateModel::DANGEROUS, |
+ "WebsiteSettings.Action.HttpsUrlDangerous"}, |
+ {"http://example.test", SecurityStateModel::HTTP_SHOW_WARNING, |
+ "WebsiteSettings.Action.HttpWarning"}, |
+ {"http://example.test", SecurityStateModel::DANGEROUS, |
+ "WebsiteSettings.Action.HttpUrlDangerous"}, |
+ }; |
+ |
+ uint32_t i = 0; |
+ for (const auto& test : kTestCases) { |
+ SetURL(test.url); |
+ security_info_.security_level = test.security_level; |
+ ResetMockUI(); |
+ ClearWebsiteSettings(); |
+ SetDefaultUIExpectations(mock_ui()); |
+ |
+ histograms.ExpectTotalCount(kGenericHistogram, i * 2); |
+ histograms.ExpectTotalCount(test.histogram_name, 0); |
+ |
+ website_settings()->RecordWebsiteSettingsAction( |
+ WebsiteSettings::WebsiteSettingsAction:: |
+ WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED); |
+ |
+ // RecordWebsiteSettingsAction() is called during WebsiteSettings |
+ // creation in addition to the explicit RecordWebsiteSettingsAction() |
+ // call, so it is called twice in total. |
+ i++; |
+ histograms.ExpectTotalCount(kGenericHistogram, i * 2); |
+ histograms.ExpectBucketCount( |
+ kGenericHistogram, |
+ WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, i); |
+ histograms.ExpectBucketCount(kGenericHistogram, |
+ WebsiteSettings::WebsiteSettingsAction:: |
+ WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED, |
+ i); |
+ |
+ histograms.ExpectTotalCount(test.histogram_name, 2); |
+ histograms.ExpectBucketCount( |
+ test.histogram_name, |
+ WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, 1); |
+ histograms.ExpectBucketCount(test.histogram_name, |
+ WebsiteSettings::WebsiteSettingsAction:: |
+ WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED, |
+ 1); |
+ } |
+} |