| 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);
|
| + }
|
| +}
|
|
|