1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <string> 6 7#include "base/basictypes.h" 8#include "base/files/file_path.h" 9#include "content/browser/child_process_security_policy_impl.h" 10#include "content/browser/web_contents/web_contents_impl.h" 11#include "content/public/browser/render_process_host.h" 12#include "content/public/common/result_codes.h" 13#include "content/public/test/content_browser_test.h" 14#include "content/public/test/content_browser_test_utils.h" 15#include "content/shell/browser/shell.h" 16#include "testing/gtest/include/gtest/gtest.h" 17 18namespace content { 19 20class ChildProcessSecurityPolicyInProcessBrowserTest 21 : public ContentBrowserTest { 22 public: 23 virtual void SetUp() { 24 EXPECT_EQ( 25 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size(), 26 0U); 27 ContentBrowserTest::SetUp(); 28 } 29 30 virtual void TearDown() { 31 EXPECT_EQ( 32 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size(), 33 0U); 34 ContentBrowserTest::TearDown(); 35 } 36}; 37 38#if !defined(NDEBUG) && defined(OS_MACOSX) 39IN_PROC_BROWSER_TEST_F(ChildProcessSecurityPolicyInProcessBrowserTest, DISABLED_NoLeak) { 40#else 41IN_PROC_BROWSER_TEST_F(ChildProcessSecurityPolicyInProcessBrowserTest, NoLeak) { 42#endif 43 GURL url = GetTestUrl("", "simple_page.html"); 44 45 NavigateToURL(shell(), url); 46 EXPECT_EQ( 47 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size(), 48 1U); 49 50 WebContents* web_contents = shell()->web_contents(); 51 base::KillProcess(web_contents->GetRenderProcessHost()->GetHandle(), 52 RESULT_CODE_KILLED, true); 53 54 web_contents->GetController().Reload(true); 55 EXPECT_EQ( 56 1U, 57 ChildProcessSecurityPolicyImpl::GetInstance()->security_state_.size()); 58} 59 60} // namespace content 61