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

Side by Side Diff: chrome/browser/metrics/metrics_memory_details_browsertest.cc

Issue 1252943009: First stab at a test for site isolation metrics_memory_details (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@histogram_tester3
Patch Set: Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/metrics/metrics_memory_details.h" 5 #include "chrome/browser/metrics/metrics_memory_details.h"
6 6
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/test/histogram_tester.h" 9 #include "base/test/histogram_tester.h"
10 #include "chrome/test/base/in_process_browser_test.h" 10 #include "chrome/test/base/in_process_browser_test.h"
11 #include "content/public/test/test_utils.h" 11 #include "content/public/test/test_utils.h"
12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "net/dns/mock_host_resolver.h"
12 14
13 namespace { 15 namespace {
14 16
15 class TestMemoryDetails : public MetricsMemoryDetails { 17 class TestMemoryDetails : public MetricsMemoryDetails {
16 public: 18 public:
17 TestMemoryDetails() 19 TestMemoryDetails()
18 : MetricsMemoryDetails(base::Bind(&base::DoNothing), nullptr) {} 20 : MetricsMemoryDetails(base::Bind(&base::DoNothing), nullptr) {}
19 21
20 void StartFetchAndWait() { 22 void StartFetchAndWait() {
21 StartFetch(FROM_CHROME_ONLY); 23 StartFetch(FROM_CHROME_ONLY);
(...skipping 12 matching lines...) Expand all
34 DISALLOW_COPY_AND_ASSIGN(TestMemoryDetails); 36 DISALLOW_COPY_AND_ASSIGN(TestMemoryDetails);
35 }; 37 };
36 38
37 } // namespace 39 } // namespace
38 40
39 class MetricsMemoryDetailsBrowserTest : public InProcessBrowserTest { 41 class MetricsMemoryDetailsBrowserTest : public InProcessBrowserTest {
40 public: 42 public:
41 MetricsMemoryDetailsBrowserTest() {} 43 MetricsMemoryDetailsBrowserTest() {}
42 ~MetricsMemoryDetailsBrowserTest() override {} 44 ~MetricsMemoryDetailsBrowserTest() override {}
43 45
46 void SetUpOnMainThread() override {
47 host_resolver()->AddRule("*", "127.0.0.1");
48 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
49 }
50
44 private: 51 private:
45 DISALLOW_COPY_AND_ASSIGN(MetricsMemoryDetailsBrowserTest); 52 DISALLOW_COPY_AND_ASSIGN(MetricsMemoryDetailsBrowserTest);
46 }; 53 };
47 54
48 IN_PROC_BROWSER_TEST_F(MetricsMemoryDetailsBrowserTest, TestMemoryDetails) { 55 IN_PROC_BROWSER_TEST_F(MetricsMemoryDetailsBrowserTest, TestMemoryDetails) {
49 base::HistogramTester histogram_tester; 56 base::HistogramTester histogram_tester;
50 57
51 scoped_refptr<TestMemoryDetails> details(new TestMemoryDetails); 58 scoped_refptr<TestMemoryDetails> details(new TestMemoryDetails);
52 details->StartFetchAndWait(); 59 details->StartFetchAndWait();
53 60
54 // Memory.Browser histogram should have a single non-0 sample recorded. 61 // Memory.Browser histogram should have a single non-0 sample recorded.
55 histogram_tester.ExpectTotalCount("Memory.Browser", 1); 62 histogram_tester.ExpectTotalCount("Memory.Browser", 1);
56 scoped_ptr<base::HistogramSamples> samples( 63 scoped_ptr<base::HistogramSamples> samples(
57 histogram_tester.GetHistogramSamplesSinceCreation("Memory.Browser")); 64 histogram_tester.GetHistogramSamplesSinceCreation("Memory.Browser"));
58 ASSERT_TRUE(samples); 65 ASSERT_TRUE(samples);
59 EXPECT_NE(0, samples->sum()); 66 EXPECT_NE(0, samples->sum());
60 } 67 }
68
69 IN_PROC_BROWSER_TEST_F(MetricsMemoryDetailsBrowserTest, TestSiteIsolation) {
70 // One page, with a buttload of oopifs.
71 GURL url1 = test_server()->GetUrl("a.com",
72 "cross_site_iframe_factory.html?a(b(a(b,c,d,e,f,g,h)),c,d,e,f,g,h)");
73
74 ui_test_utils::NavigateToURL(browser(), url1);
75
76 // Get the metrics.
77 base::HistogramTester histogram_tester;
78
79 scoped_refptr<TestMemoryDetails> details(new TestMemoryDetails);
80 details->StartFetchAndWait();
81
82 base::HistogramTester::CountsMap expected_metrics;
83 expected_metrics["SiteIsolation.BrowsingInstanceCount"] = 1;
84 expected_metrics["SiteIsolation.CurrentRendererProcessCount"] = 1;
85 expected_metrics["SiteIsolation.IsolateAllSitesProcessCountEstimate"] = 1;
86 expected_metrics["SiteIsolation.IsolateAllSitesProcessCountLowerBound"] = 1;
87 expected_metrics["SiteIsolation.IsolateAllSitesProcessCountNoLimit"] = 1;
88 expected_metrics["SiteIsolation.IsolateAllSitesTotalProcessCountEstimate"] = 1 ;
89 expected_metrics["SiteIsolation.IsolateHttpsSitesProcessCountEstimate"] = 1;
90 expected_metrics["SiteIsolation.IsolateHttpsSitesProcessCountLowerBound"] = 1;
91 expected_metrics["SiteIsolation.IsolateHttpsSitesProcessCountNoLimit"] = 1;
92 expected_metrics["SiteIsolation.IsolateHttpsSitesTotalProcessCountEstimate"] = 1;
93
94 EXPECT_THAT(histogram_tester.GetTotalCountsForPrefix("SiteIsolation."),
95 testing::ContainerEq(expected_metrics));
96 }
OLDNEW
« no previous file with comments | « chrome/browser/chrome_site_per_process_browsertest.cc ('k') | chrome/test/data/cross_site_iframe_factory.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698