Index: chrome/test/perf/feature_startup_test.cc |
=================================================================== |
--- chrome/test/perf/feature_startup_test.cc (revision 261647) |
+++ chrome/test/perf/feature_startup_test.cc (working copy) |
@@ -1,198 +0,0 @@ |
-// Copyright (c) 2012 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 "base/path_service.h" |
-#include "base/strings/stringprintf.h" |
-#include "base/time/time.h" |
-#include "chrome/app/chrome_command_ids.h" |
-#include "chrome/common/chrome_paths.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/test/automation/automation_proxy.h" |
-#include "chrome/test/automation/browser_proxy.h" |
-#include "chrome/test/automation/window_proxy.h" |
-#include "chrome/test/perf/perf_test.h" |
-#include "chrome/test/perf/perf_ui_test_suite.h" |
-#include "chrome/test/ui/ui_perf_test.h" |
-#include "net/base/net_util.h" |
-#include "testing/perf/perf_test.h" |
-#include "ui/gfx/rect.h" |
- |
-using base::TimeDelta; |
- |
-namespace { |
- |
-class NewTabUIStartupTest : public UIPerfTest { |
- public: |
- NewTabUIStartupTest() { |
- show_window_ = true; |
- } |
- |
- virtual void SetUp() {} |
- virtual void TearDown() {} |
- |
- static const int kNumCycles = 5; |
- |
- void PrintTimings(const char* label, TimeDelta timings[kNumCycles], |
- bool important) { |
- std::string times; |
- for (int i = 0; i < kNumCycles; ++i) |
- base::StringAppendF(×, "%.2f,", timings[i].InMillisecondsF()); |
- perf_test::PrintResultList( |
- "new_tab", std::string(), label, times, "ms", important); |
- } |
- |
- void InitProfile(PerfUITestSuite::ProfileType profile_type) { |
- // Install the location of the test profile file. |
- set_template_user_data( |
- PerfUITestSuite::GetPathForProfileType(profile_type)); |
- } |
- |
- // Run the test, by bringing up a browser and timing the new tab startup. |
- // |want_warm| is true if we should output warm-disk timings, false if |
- // we should report cold timings. |
- void RunStartupTest(const char* label, bool want_warm, bool important, |
- PerfUITestSuite::ProfileType profile_type) { |
- InitProfile(profile_type); |
- |
- TimeDelta timings[kNumCycles]; |
- for (int i = 0; i < kNumCycles; ++i) { |
- UITest::SetUp(); |
- |
- // Switch to the "new tab" tab, which should be any new tab after the |
- // first (the first is about:blank). |
- scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); |
- ASSERT_TRUE(window.get()); |
- |
- // We resize the window so that we hit the normal layout of the NTP and |
- // not the small layout mode. |
-#if defined(OS_WIN) |
- // TODO(port): SetBounds returns false when not implemented. |
- // It is OK to comment out the resize since it will still be useful to |
- // test the default size of the window. |
- ASSERT_TRUE(window->GetWindow().get()->SetBounds(gfx::Rect(1000, 1000))); |
-#endif |
- int tab_count = -1; |
- ASSERT_TRUE(window->GetTabCount(&tab_count)); |
- ASSERT_EQ(1, tab_count); |
- |
- // Hit ctl-t and wait for the tab to load. |
- ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); |
- ASSERT_TRUE(window->GetTabCount(&tab_count)); |
- ASSERT_EQ(2, tab_count); |
- int load_time; |
- ASSERT_TRUE(automation()->WaitForInitialNewTabUILoad(&load_time)); |
- |
- if (want_warm) { |
- // Bring up a second tab, now that we've already shown one tab. |
- ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); |
- ASSERT_TRUE(window->GetTabCount(&tab_count)); |
- ASSERT_EQ(3, tab_count); |
- ASSERT_TRUE(automation()->WaitForInitialNewTabUILoad(&load_time)); |
- } |
- timings[i] = TimeDelta::FromMilliseconds(load_time); |
- |
- window = NULL; |
- UITest::TearDown(); |
- } |
- |
- PrintTimings(label, timings, important); |
- } |
- |
- void RunNewTabTimingTest() { |
- InitProfile(PerfUITestSuite::DEFAULT_THEME); |
- |
- TimeDelta scriptstart_times[kNumCycles]; |
- TimeDelta domcontentloaded_times[kNumCycles]; |
- TimeDelta onload_times[kNumCycles]; |
- |
- for (int i = 0; i < kNumCycles; ++i) { |
- UITest::SetUp(); |
- |
- // Switch to the "new tab" tab, which should be any new tab after the |
- // first (the first is about:blank). |
- scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); |
- ASSERT_TRUE(window.get()); |
- |
- // We resize the window so that we hit the normal layout of the NTP and |
- // not the small layout mode. |
-#if defined(OS_WIN) |
- // TODO(port): SetBounds returns false when not implemented. |
- // It is OK to comment out the resize since it will still be useful to |
- // test the default size of the window. |
- ASSERT_TRUE(window->GetWindow().get()->SetBounds(gfx::Rect(1000, 1000))); |
-#endif |
- int tab_count = -1; |
- ASSERT_TRUE(window->GetTabCount(&tab_count)); |
- ASSERT_EQ(1, tab_count); |
- |
- // Hit ctl-t and wait for the tab to load. |
- ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); |
- ASSERT_TRUE(window->GetTabCount(&tab_count)); |
- ASSERT_EQ(2, tab_count); |
- int duration; |
- ASSERT_TRUE(automation()->WaitForInitialNewTabUILoad(&duration)); |
- |
- // Collect the timing information. |
- ASSERT_TRUE(automation()->GetMetricEventDuration("Tab.NewTabScriptStart", |
- &duration)); |
- scriptstart_times[i] = TimeDelta::FromMilliseconds(duration); |
- |
- ASSERT_TRUE(automation()->GetMetricEventDuration( |
- "Tab.NewTabDOMContentLoaded", &duration)); |
- domcontentloaded_times[i] = TimeDelta::FromMilliseconds(duration); |
- |
- ASSERT_TRUE(automation()->GetMetricEventDuration("Tab.NewTabOnload", |
- &duration)); |
- onload_times[i] = TimeDelta::FromMilliseconds(duration); |
- |
- window = NULL; |
- UITest::TearDown(); |
- } |
- |
- PrintTimings("script_start", scriptstart_times, false /* important */); |
- PrintTimings("domcontent_loaded", domcontentloaded_times, |
- false /* important */); |
- PrintTimings("onload", onload_times, false /* important */); |
- } |
-}; |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_PerfRefCold) { |
- UseReferenceBuild(); |
- RunStartupTest("tab_cold_ref", false /* cold */, true /* important */, |
- PerfUITestSuite::DEFAULT_THEME); |
-} |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_PerfCold) { |
- RunStartupTest("tab_cold", false /* cold */, true /* important */, |
- PerfUITestSuite::DEFAULT_THEME); |
-} |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_PerfRefWarm) { |
- UseReferenceBuild(); |
- RunStartupTest("tab_warm_ref", true /* warm */, true /* not important */, |
- PerfUITestSuite::DEFAULT_THEME); |
-} |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_PerfWarm) { |
- RunStartupTest("tab_warm", true /* warm */, true /* not important */, |
- PerfUITestSuite::DEFAULT_THEME); |
-} |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_ComplexThemeCold) { |
- RunStartupTest("tab_complex_theme_cold", false /* cold */, |
- false /* not important */, |
- PerfUITestSuite::COMPLEX_THEME); |
-} |
- |
-// FLAKY: http://crbug.com/69940 |
-TEST_F(NewTabUIStartupTest, DISABLED_NewTabTimingTestsCold) { |
- RunNewTabTimingTest(); |
-} |
- |
-} // namespace |