OLD | NEW |
| (Empty) |
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 "chrome/browser/tab_contents/web_contents_user_data.h" | |
6 | |
7 #include "base/memory/scoped_ptr.h" | |
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | |
9 #include "content/public/browser/web_contents.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 namespace { | |
13 | |
14 class WebContentsAttachedClass1 | |
15 : public WebContentsUserData<WebContentsAttachedClass1> { | |
16 public: | |
17 explicit WebContentsAttachedClass1(content::WebContents* contents) {} | |
18 virtual ~WebContentsAttachedClass1() {} | |
19 }; | |
20 | |
21 class WebContentsAttachedClass2 | |
22 : public WebContentsUserData<WebContentsAttachedClass2> { | |
23 public: | |
24 explicit WebContentsAttachedClass2(content::WebContents* contents) {} | |
25 virtual ~WebContentsAttachedClass2() {} | |
26 }; | |
27 | |
28 } // namespace | |
29 | |
30 typedef ChromeRenderViewHostTestHarness WebContentsUserDataTest; | |
31 | |
32 TEST_F(WebContentsUserDataTest, BasicTest) { | |
33 content::WebContents* contents = web_contents(); | |
34 WebContentsAttachedClass1* class1 = | |
35 WebContentsAttachedClass1::FromWebContents(contents); | |
36 ASSERT_EQ(NULL, class1); | |
37 WebContentsAttachedClass2* class2 = | |
38 WebContentsAttachedClass2::FromWebContents(contents); | |
39 ASSERT_EQ(NULL, class2); | |
40 | |
41 WebContentsAttachedClass1::CreateForWebContents(contents); | |
42 class1 = WebContentsAttachedClass1::FromWebContents(contents); | |
43 ASSERT_TRUE(class1 != NULL); | |
44 class2 = WebContentsAttachedClass2::FromWebContents(contents); | |
45 ASSERT_EQ(NULL, class2); | |
46 | |
47 WebContentsAttachedClass2::CreateForWebContents(contents); | |
48 WebContentsAttachedClass1* class1again = | |
49 WebContentsAttachedClass1::FromWebContents(contents); | |
50 ASSERT_TRUE(class1again != NULL); | |
51 class2 = WebContentsAttachedClass2::FromWebContents(contents); | |
52 ASSERT_TRUE(class2 != NULL); | |
53 ASSERT_EQ(class1, class1again); | |
54 ASSERT_NE(static_cast<void*>(class1), static_cast<void*>(class2)); | |
55 } | |
OLD | NEW |