OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "base/compiler_specific.h" | 5 #include "base/compiler_specific.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "content/browser/web_contents/web_contents_impl.h" | 8 #include "content/browser/web_contents/web_contents_impl.h" |
9 #include "content/browser/renderer_host/test_render_view_host.h" | 9 #include "content/browser/renderer_host/test_render_view_host.h" |
10 #include "content/public/browser/web_contents_delegate.h" | 10 #include "content/public/browser/web_contents_delegate.h" |
11 #include "content/public/test/test_browser_context.h" | 11 #include "content/public/test/test_browser_context.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 namespace content { | 14 namespace content { |
15 | 15 |
16 class MockWebContentsDelegate : public WebContentsDelegate { | 16 class MockWebContentsDelegate : public WebContentsDelegate { |
17 }; | 17 }; |
18 | 18 |
19 class WebContentsDelegateTest : public RenderViewHostImplTestHarness { | 19 class WebContentsDelegateTest : public RenderViewHostImplTestHarness { |
20 }; | 20 }; |
21 | 21 |
22 TEST_F(WebContentsDelegateTest, UnregisterInDestructor) { | 22 TEST_F(WebContentsDelegateTest, UnregisterInDestructor) { |
23 scoped_ptr<WebContentsImpl> contents_a(static_cast<WebContentsImpl*>( | 23 scoped_ptr<WebContentsImpl> contents_a(static_cast<WebContentsImpl*>( |
24 WebContents::Create(WebContents::CreateParams(browser_context_.get())))); | 24 WebContents::Create(WebContents::CreateParams(browser_context())))); |
25 scoped_ptr<WebContentsImpl> contents_b(static_cast<WebContentsImpl*>( | 25 scoped_ptr<WebContentsImpl> contents_b(static_cast<WebContentsImpl*>( |
26 WebContents::Create(WebContents::CreateParams(browser_context_.get())))); | 26 WebContents::Create(WebContents::CreateParams(browser_context())))); |
27 EXPECT_EQ(NULL, contents_a->GetDelegate()); | 27 EXPECT_EQ(NULL, contents_a->GetDelegate()); |
28 EXPECT_EQ(NULL, contents_b->GetDelegate()); | 28 EXPECT_EQ(NULL, contents_b->GetDelegate()); |
29 | 29 |
30 scoped_ptr<MockWebContentsDelegate> delegate(new MockWebContentsDelegate()); | 30 scoped_ptr<MockWebContentsDelegate> delegate(new MockWebContentsDelegate()); |
31 | 31 |
32 // Setting a delegate should work correctly. | 32 // Setting a delegate should work correctly. |
33 contents_a->SetDelegate(delegate.get()); | 33 contents_a->SetDelegate(delegate.get()); |
34 EXPECT_EQ(delegate.get(), contents_a->GetDelegate()); | 34 EXPECT_EQ(delegate.get(), contents_a->GetDelegate()); |
35 EXPECT_TRUE(contents_b->GetDelegate() == NULL); | 35 EXPECT_TRUE(contents_b->GetDelegate() == NULL); |
36 | 36 |
(...skipping 20 matching lines...) Expand all Loading... |
57 delegate.reset(NULL); | 57 delegate.reset(NULL); |
58 EXPECT_TRUE(contents_a->GetDelegate() == NULL); | 58 EXPECT_TRUE(contents_a->GetDelegate() == NULL); |
59 EXPECT_TRUE(contents_b->GetDelegate() == NULL); | 59 EXPECT_TRUE(contents_b->GetDelegate() == NULL); |
60 | 60 |
61 // Destroy the WebContentses and run the message loop to prevent leaks. | 61 // Destroy the WebContentses and run the message loop to prevent leaks. |
62 contents_a.reset(); | 62 contents_a.reset(); |
63 contents_b.reset(); | 63 contents_b.reset(); |
64 } | 64 } |
65 | 65 |
66 } // namespace content | 66 } // namespace content |
OLD | NEW |