Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1611)

Unified Diff: chrome/browser/extensions/chrome_content_browser_client_extensions_part_unittest.cc

Issue 2787573003: Remove DumpWithoutCrashing from ShouldAllowOpenURL. (Closed)
Patch Set: Fix unit_tests compile error Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/chrome_content_browser_client_extensions_part_unittest.cc
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part_unittest.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ce7c65dbeccc8c0f44d271a1117e6789eba92101
--- /dev/null
+++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part_unittest.cc
@@ -0,0 +1,69 @@
+// Copyright 2017 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 <string>
+#include <vector>
+
+#include "base/test/histogram_tester.h"
+#include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
+#include "chrome/common/chrome_content_client.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace extensions {
+
+typedef testing::Test ChromeContentBrowserClientExtensionsPartTest;
+
+// Check that empty site URLs get recorded properly in ShouldAllowOpenURL
+// failures.
+TEST_F(ChromeContentBrowserClientExtensionsPartTest,
+ ShouldAllowOpenURLMetricsForEmptySiteURL) {
+ base::HistogramTester uma;
+
+ auto failure_reason = ChromeContentBrowserClientExtensionsPart::
+ FAILURE_SCHEME_NOT_HTTP_OR_HTTPS_OR_EXTENSION;
+ ChromeContentBrowserClientExtensionsPart::RecordShouldAllowOpenURLFailure(
+ failure_reason, GURL());
+ uma.ExpectUniqueSample("Extensions.ShouldAllowOpenURL.Failure",
+ failure_reason, 1);
+ uma.ExpectUniqueSample("Extensions.ShouldAllowOpenURL.Failure.Scheme",
+ 1 /* SCHEME_EMPTY */, 1);
+}
+
+// Check that a non-exhaustive list of some known schemes get recorded properly
+// in ShouldAllowOpenURL failures.
+TEST_F(ChromeContentBrowserClientExtensionsPartTest,
+ ShouldAllowOpenURLMetricsForKnownSchemes) {
+ base::HistogramTester uma;
+
+ ChromeContentClient content_client;
+ content::ContentClient::Schemes schemes;
+ content_client.AddAdditionalSchemes(&schemes);
+
+ std::vector<std::string> test_schemes(schemes.savable_schemes);
+ test_schemes.insert(test_schemes.end(), schemes.secure_schemes.begin(),
+ schemes.secure_schemes.end());
+ test_schemes.insert(test_schemes.end(),
+ schemes.empty_document_schemes.begin(),
+ schemes.empty_document_schemes.end());
+ test_schemes.push_back(url::kHttpScheme);
+ test_schemes.push_back(url::kHttpsScheme);
+ test_schemes.push_back(url::kFileScheme);
+
+ auto failure_reason = ChromeContentBrowserClientExtensionsPart::
+ FAILURE_RESOURCE_NOT_WEB_ACCESSIBLE;
+ for (auto scheme : test_schemes) {
+ ChromeContentBrowserClientExtensionsPart::RecordShouldAllowOpenURLFailure(
+ failure_reason, GURL(scheme + "://foo.com/"));
+ }
+
+ // There should be no unknown schemes recorded.
+ uma.ExpectUniqueSample("Extensions.ShouldAllowOpenURL.Failure",
+ failure_reason, test_schemes.size());
+ uma.ExpectTotalCount("Extensions.ShouldAllowOpenURL.Failure.Scheme",
+ test_schemes.size());
+ uma.ExpectBucketCount("Extensions.ShouldAllowOpenURL.Failure.Scheme",
+ 0 /* SCHEME_UNKNOWN */, 0);
+}
+
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698