Chromium Code Reviews| Index: chrome/browser/browser_main_unittest.cc |
| =================================================================== |
| --- chrome/browser/browser_main_unittest.cc (revision 0) |
| +++ chrome/browser/browser_main_unittest.cc (revision 0) |
| @@ -0,0 +1,67 @@ |
| +// Copyright (c) 2011 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/command_line.h" |
| +#include "chrome/browser/browser_main.h" |
|
willchan no longer on Chromium
2011/06/24 11:11:36
This header goes first.
gagansingh
2011/06/24 12:17:56
Done.
|
| +#include "chrome/common/chrome_switches.h" |
| +#include "chrome/test/testing_pref_service.h" |
| +#include "content/common/main_function_params.h" |
| +#include "content/common/sandbox_init_wrapper.h" |
| +#include "net/socket/client_socket_pool_base.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +class BrowserMainTest : public testing::Test { |
| + public: |
| + BrowserMainTest() : command_line_(CommandLine::NO_PROGRAM) {} |
| + protected: |
| + virtual void SetUp() { |
| + sandbox_init_wrapper_.reset(new SandboxInitWrapper()); |
| + } |
| + |
| + scoped_ptr<SandboxInitWrapper> sandbox_init_wrapper_; |
| + TestingPrefService pref_service_; |
| + CommandLine command_line_; |
| +}; |
| + |
| +TEST_F(BrowserMainTest, WarmConnectionFieldTrial_WarmestSocket) { |
| + command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "0"); |
| + |
| + scoped_ptr<MainFunctionParams> params( |
| + new MainFunctionParams(command_line_, *sandbox_init_wrapper_, NULL)); |
| + scoped_ptr<BrowserMainParts> bw(BrowserMainParts::CreateBrowserMainParts( |
| + *params)); |
| + |
| + bw->WarmConnectionFieldTrial(); |
| + |
| + EXPECT_EQ(0, net::GetSocketReusePolicy()); |
| +} |
| + |
| +TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Random) { |
| + scoped_ptr<MainFunctionParams> params( |
| + new MainFunctionParams(command_line_, *sandbox_init_wrapper_, NULL)); |
| + scoped_ptr<BrowserMainParts> bw(BrowserMainParts::CreateBrowserMainParts( |
| + *params)); |
| + |
| + static const int kNumRuns = 1000; |
|
willchan no longer on Chromium
2011/06/24 11:11:36
Drop the static, then the compiler will just turn
gagansingh
2011/06/24 12:17:56
Done.
|
| + for (int i = 0; i < kNumRuns; i++) { |
| + bw->WarmConnectionFieldTrial(); |
| + int val = net::GetSocketReusePolicy(); |
| + EXPECT_LE(val, 2); |
| + EXPECT_GE(val, 0); |
| + } |
| +} |
| + |
| +TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Invalid) { |
| + command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "100"); |
| + |
| + scoped_ptr<MainFunctionParams> params( |
| + new MainFunctionParams(command_line_, *sandbox_init_wrapper_, NULL)); |
| + scoped_ptr<BrowserMainParts> bw(BrowserMainParts::CreateBrowserMainParts( |
| + *params)); |
| + |
| + EXPECT_DEBUG_DEATH(bw->WarmConnectionFieldTrial(), |
| + "Not a valid socket reuse policy group"); |
| +} |