Commit 696017c7 authored by Clark DuVall's avatar Clark DuVall Committed by Commit Bot

Add browsertest for important DRP UMAs

Bug: 721403
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Id5a6a3da80fb2e50b80e156a8c39328a8e79ba42
Reviewed-on: https://chromium-review.googlesource.com/c/1289161
Commit-Queue: Clark DuVall <cduvall@chromium.org>
Reviewed-by: default avatarrajendrant <rajendrant@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600929}
parent adb22130
...@@ -7,12 +7,14 @@ ...@@ -7,12 +7,14 @@
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "chrome/browser/metrics/subprocess_metrics_provider.h" #include "chrome/browser/metrics/subprocess_metrics_provider.h"
#include "chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_test_utils.h" #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_test_utils.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_util.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h" #include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h" #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h" #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
...@@ -21,6 +23,7 @@ ...@@ -21,6 +23,7 @@
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "content/public/test/browser_test_utils.h" #include "content/public/test/browser_test_utils.h"
#include "net/dns/mock_host_resolver.h" #include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/controllable_http_response.h"
#include "net/test/embedded_test_server/default_handlers.h" #include "net/test/embedded_test_server/default_handlers.h"
#include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h" #include "net/test/embedded_test_server/http_response.h"
...@@ -88,11 +91,17 @@ class DataReductionProxyBrowsertestBase : public InProcessBrowserTest { ...@@ -88,11 +91,17 @@ class DataReductionProxyBrowsertestBase : public InProcessBrowserTest {
features::kDataReductionProxyRobustConnection, features::kDataReductionProxyRobustConnection,
{{params::GetMissingViaBypassParamName(), "true"}, {{params::GetMissingViaBypassParamName(), "true"},
{"warmup_fetch_callback_enabled", "true"}}); {"warmup_fetch_callback_enabled", "true"}});
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->InitializeAndListen());
InProcessBrowserTest::SetUp(); InProcessBrowserTest::SetUp();
} }
void SetUpOnMainThread() override { void SetUpOnMainThread() override {
// Make sure the favicon doesn't mess with the tests.
favicon_catcher_ =
std::make_unique<net::test_server::ControllableHttpResponse>(
embedded_test_server(), "/favicon.ico");
embedded_test_server()->StartAcceptingConnections();
host_resolver()->AddRule(kMockHost, "127.0.0.1"); host_resolver()->AddRule(kMockHost, "127.0.0.1");
EnableDataSaver(true); EnableDataSaver(true);
} }
...@@ -127,6 +136,7 @@ class DataReductionProxyBrowsertestBase : public InProcessBrowserTest { ...@@ -127,6 +136,7 @@ class DataReductionProxyBrowsertestBase : public InProcessBrowserTest {
base::test::ScopedFeatureList scoped_feature_list_; base::test::ScopedFeatureList scoped_feature_list_;
base::test::ScopedFeatureList param_feature_list_; base::test::ScopedFeatureList param_feature_list_;
net::EmbeddedTestServer secure_proxy_check_server_; net::EmbeddedTestServer secure_proxy_check_server_;
std::unique_ptr<net::test_server::ControllableHttpResponse> favicon_catcher_;
}; };
class DataReductionProxyBrowsertest : public DataReductionProxyBrowsertestBase { class DataReductionProxyBrowsertest : public DataReductionProxyBrowsertestBase {
...@@ -204,6 +214,28 @@ IN_PROC_BROWSER_TEST_F(DataReductionProxyBrowsertest, ...@@ -204,6 +214,28 @@ IN_PROC_BROWSER_TEST_F(DataReductionProxyBrowsertest,
EXPECT_EQ(GetBody(), kDummyBody); EXPECT_EQ(GetBody(), kDummyBody);
} }
IN_PROC_BROWSER_TEST_F(DataReductionProxyBrowsertest, UMAMetricsRecorded) {
base::HistogramTester histogram_tester;
// Make sure we wait for timing information.
page_load_metrics::PageLoadMetricsTestWaiter waiter(
browser()->tab_strip_model()->GetActiveWebContents());
waiter.AddPageExpectation(
page_load_metrics::PageLoadMetricsTestWaiter::TimingField::kFirstPaint);
// Proxy will be used, so it shouldn't matter if the host cannot be resolved.
ui_test_utils::NavigateToURL(browser(), GURL("http://does.not.resolve/echo"));
waiter.Wait();
SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
histogram_tester.ExpectUniqueSample("DataReductionProxy.ProxySchemeUsed",
ProxyScheme::PROXY_SCHEME_HTTP, 1);
histogram_tester.ExpectTotalCount(
"PageLoad.Clients.DataReductionProxy.PaintTiming."
"NavigationToFirstContentfulPaint",
1);
}
class DataReductionProxyFallbackBrowsertest class DataReductionProxyFallbackBrowsertest
: public DataReductionProxyBrowsertest { : public DataReductionProxyBrowsertest {
public: public:
......
...@@ -103,6 +103,7 @@ ...@@ -103,6 +103,7 @@
# https://crbug.com/721403 # https://crbug.com/721403
-ContextMenuBrowserTest.DataSaverOpenOrigImageInNewTab -ContextMenuBrowserTest.DataSaverOpenOrigImageInNewTab
-DataReductionProxyBrowsertest.UMAMetricsRecorded
-DataReductionProxyFallbackBrowsertest.FallbackProxyUsedOn500Status -DataReductionProxyFallbackBrowsertest.FallbackProxyUsedOn500Status
-DataReductionProxyFallbackBrowsertest.FallbackProxyUsedWhenBlockHeaderSent -DataReductionProxyFallbackBrowsertest.FallbackProxyUsedWhenBlockHeaderSent
-DataReductionProxyFallbackBrowsertest.FallbackProxyUsedWhenBlockZeroHeaderSent -DataReductionProxyFallbackBrowsertest.FallbackProxyUsedWhenBlockZeroHeaderSent
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment