Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: chrome/browser/common/web_contents_user_data_unittest.cc

Issue 10993064: Make using WebContentsUserData simpler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/common/web_contents_user_data.h" 5 #include "chrome/browser/common/web_contents_user_data.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/browser/web_contents.h" 10 #include "content/public/browser/web_contents.h"
11 #include "content/public/test/web_contents_tester.h" 11 #include "content/public/test/web_contents_tester.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace {
15
16 class WebContentsAttachedClass1 14 class WebContentsAttachedClass1
17 : public WebContentsUserData<WebContentsAttachedClass1> { 15 : public WebContentsUserData<WebContentsAttachedClass1> {
18 public: 16 public:
19 virtual ~WebContentsAttachedClass1() {} 17 virtual ~WebContentsAttachedClass1() {}
20 private: 18 private:
21 explicit WebContentsAttachedClass1(content::WebContents* contents) {} 19 explicit WebContentsAttachedClass1(content::WebContents* contents) {}
22 static int kUserDataKey;
23 friend class WebContentsUserData<WebContentsAttachedClass1>; 20 friend class WebContentsUserData<WebContentsAttachedClass1>;
24 }; 21 };
25 22
26 class WebContentsAttachedClass2 23 class WebContentsAttachedClass2
27 : public WebContentsUserData<WebContentsAttachedClass2> { 24 : public WebContentsUserData<WebContentsAttachedClass2> {
28 public: 25 public:
29 virtual ~WebContentsAttachedClass2() {} 26 virtual ~WebContentsAttachedClass2() {}
30 private: 27 private:
31 explicit WebContentsAttachedClass2(content::WebContents* contents) {} 28 explicit WebContentsAttachedClass2(content::WebContents* contents) {}
32 static int kUserDataKey;
33 friend class WebContentsUserData<WebContentsAttachedClass2>; 29 friend class WebContentsUserData<WebContentsAttachedClass2>;
34 }; 30 };
35 31
36 int WebContentsAttachedClass1::kUserDataKey; 32 DEFINE_WEB_CONTENTS_USER_DATA_KEY(WebContentsAttachedClass1)
37 int WebContentsAttachedClass2::kUserDataKey; 33 DEFINE_WEB_CONTENTS_USER_DATA_KEY(WebContentsAttachedClass2)
38
39 } // namespace
40 34
41 typedef ChromeRenderViewHostTestHarness WebContentsUserDataTest; 35 typedef ChromeRenderViewHostTestHarness WebContentsUserDataTest;
42 36
43 TEST_F(WebContentsUserDataTest, OneInstanceTwoAttachments) { 37 TEST_F(WebContentsUserDataTest, OneInstanceTwoAttachments) {
44 content::WebContents* contents = web_contents(); 38 content::WebContents* contents = web_contents();
45 WebContentsAttachedClass1* class1 = 39 WebContentsAttachedClass1* class1 =
46 WebContentsAttachedClass1::FromWebContents(contents); 40 WebContentsAttachedClass1::FromWebContents(contents);
47 ASSERT_EQ(NULL, class1); 41 ASSERT_EQ(NULL, class1);
48 WebContentsAttachedClass2* class2 = 42 WebContentsAttachedClass2* class2 =
49 WebContentsAttachedClass2::FromWebContents(contents); 43 WebContentsAttachedClass2::FromWebContents(contents);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 WebContentsAttachedClass1::CreateForWebContents(contents); 96 WebContentsAttachedClass1::CreateForWebContents(contents);
103 clazz = WebContentsAttachedClass1::FromWebContents(contents); 97 clazz = WebContentsAttachedClass1::FromWebContents(contents);
104 ASSERT_TRUE(clazz != NULL); 98 ASSERT_TRUE(clazz != NULL);
105 99
106 WebContentsAttachedClass1::CreateForWebContents(contents); 100 WebContentsAttachedClass1::CreateForWebContents(contents);
107 WebContentsAttachedClass1* class_again = 101 WebContentsAttachedClass1* class_again =
108 WebContentsAttachedClass1::FromWebContents(contents); 102 WebContentsAttachedClass1::FromWebContents(contents);
109 ASSERT_TRUE(class_again != NULL); 103 ASSERT_TRUE(class_again != NULL);
110 ASSERT_EQ(clazz, class_again); 104 ASSERT_EQ(clazz, class_again);
111 } 105 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698