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

Side by Side Diff: gpu/np_utils/np_object_pointer_unittest.cc

Issue 481007: Deleted np_utils library. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years 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
« no previous file with comments | « gpu/np_utils/np_object_pointer.h ('k') | gpu/np_utils/np_plugin_object.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2006-2008 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 "gpu/np_utils/np_class.h"
6 #include "gpu/np_utils/np_object_mock.h"
7 #include "gpu/np_utils/np_browser_stub.h"
8 #include "gpu/np_utils/np_object_pointer.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using testing::Return;
13 using testing::StrictMock;
14
15 namespace np_utils {
16
17 class DerivedNPObject : public MockNPObject {
18 public:
19 explicit DerivedNPObject(NPP npp) : MockNPObject(npp) {
20 }
21 };
22
23 class NPObjectPointerTest : public testing::Test {
24 protected:
25 virtual void SetUp() {
26 np_class_ = NPGetClass<StrictMock<MockNPObject> >();
27
28 raw_pointer_ = static_cast<MockNPObject*>(
29 NPBrowser::get()->CreateObject(NULL, np_class_));
30
31 raw_derived_pointer_ = static_cast<DerivedNPObject*>(
32 NPBrowser::get()->CreateObject(NULL, np_class_));
33 }
34
35 virtual void TearDown() {
36 NPBrowser::get()->ReleaseObject(raw_pointer_);
37 NPBrowser::get()->ReleaseObject(raw_derived_pointer_);
38 }
39
40 StubNPBrowser stub_browser_;
41 const NPClass* np_class_;
42 MockNPObject* raw_pointer_;
43 DerivedNPObject* raw_derived_pointer_;
44 };
45
46 TEST_F(NPObjectPointerTest, PointerIsNullByDefault) {
47 NPObjectPointer<MockNPObject> p;
48 ASSERT_TRUE(NULL == p.Get());
49 }
50
51 TEST_F(NPObjectPointerTest, PointerCanBeExplicitlyConstructedFromRawPointer) {
52 EXPECT_EQ(1, raw_pointer_->referenceCount);
53 {
54 NPObjectPointer<MockNPObject> p(raw_pointer_);
55 ASSERT_TRUE(raw_pointer_ == p.Get());
56 EXPECT_EQ(2, raw_pointer_->referenceCount);
57 }
58 EXPECT_EQ(1, raw_pointer_->referenceCount);
59 }
60
61 TEST_F(NPObjectPointerTest,
62 PointerCanBeExplicitlyConstructedFromNullRawPointer) {
63 NPObjectPointer<MockNPObject> p(NULL);
64 ASSERT_TRUE(NULL == p.Get());
65 }
66
67 TEST_F(NPObjectPointerTest, PointerCanBeCopyConstructed) {
68 NPObjectPointer<MockNPObject> p1(raw_pointer_);
69 EXPECT_EQ(2, raw_pointer_->referenceCount);
70 {
71 NPObjectPointer<MockNPObject> p2(p1);
72 ASSERT_TRUE(raw_pointer_ == p2.Get());
73 EXPECT_EQ(3, raw_pointer_->referenceCount);
74 }
75 EXPECT_EQ(2, raw_pointer_->referenceCount);
76 }
77
78 TEST_F(NPObjectPointerTest, PointerCanBeConstructedFromDerived) {
79 NPObjectPointer<DerivedNPObject> p1(raw_derived_pointer_);
80 EXPECT_EQ(2, raw_derived_pointer_->referenceCount);
81 {
82 NPObjectPointer<MockNPObject> p2(p1);
83 ASSERT_TRUE(raw_derived_pointer_ == p2.Get());
84 EXPECT_EQ(3, raw_derived_pointer_->referenceCount);
85 }
86 EXPECT_EQ(2, raw_derived_pointer_->referenceCount);
87 }
88
89 TEST_F(NPObjectPointerTest,
90 PointerCanBeCopyConstructedFromNull) {
91 NPObjectPointer<MockNPObject> p(NULL);
92 ASSERT_TRUE(NULL == p.Get());
93 }
94
95 TEST_F(NPObjectPointerTest, PointerCanBeAssigned) {
96 NPObjectPointer<MockNPObject> p1(raw_pointer_);
97 EXPECT_EQ(2, raw_pointer_->referenceCount);
98 {
99 NPObjectPointer<MockNPObject> p2;
100 p2 = p1;
101 ASSERT_TRUE(raw_pointer_ == p2.Get());
102 EXPECT_EQ(3, raw_pointer_->referenceCount);
103
104 p2 = NPObjectPointer<MockNPObject>();
105 ASSERT_TRUE(NULL == p2.Get());
106 EXPECT_EQ(2, raw_pointer_->referenceCount);
107
108 p2 = p1;
109 ASSERT_TRUE(raw_pointer_ == p2.Get());
110 EXPECT_EQ(3, raw_pointer_->referenceCount);
111 }
112 EXPECT_EQ(2, raw_pointer_->referenceCount);
113 }
114
115 TEST_F(NPObjectPointerTest, PointerCanBeAssignedToSelf) {
116 NPObjectPointer<MockNPObject> p(raw_pointer_);
117 NPBrowser::get()->ReleaseObject(raw_pointer_);
118 EXPECT_EQ(1, raw_pointer_->referenceCount);
119 p = p;
120 EXPECT_EQ(1, raw_pointer_->referenceCount);
121 NPBrowser::get()->RetainObject(raw_pointer_);
122 }
123
124 TEST_F(NPObjectPointerTest, PointerCanBeAssignedDerived) {
125 NPObjectPointer<DerivedNPObject> p1(raw_derived_pointer_);
126 EXPECT_EQ(2, raw_derived_pointer_->referenceCount);
127 {
128 NPObjectPointer<MockNPObject> p2;
129 p2 = p1;
130 ASSERT_TRUE(raw_derived_pointer_ == p2.Get());
131 EXPECT_EQ(3, raw_derived_pointer_->referenceCount);
132
133 p2 = NPObjectPointer<MockNPObject>();
134 ASSERT_TRUE(NULL == p2.Get());
135 EXPECT_EQ(2, raw_derived_pointer_->referenceCount);
136
137 p2 = p1;
138 ASSERT_TRUE(raw_derived_pointer_ == p2.Get());
139 EXPECT_EQ(3, raw_derived_pointer_->referenceCount);
140 }
141 EXPECT_EQ(2, raw_derived_pointer_->referenceCount);
142 }
143
144 TEST_F(NPObjectPointerTest, DerivedPointerCanBeAssignedToSelf) {
145 NPObjectPointer<MockNPObject> p1(raw_derived_pointer_);
146 NPObjectPointer<DerivedNPObject> p2(raw_derived_pointer_);
147 NPBrowser::get()->ReleaseObject(raw_derived_pointer_);
148 NPBrowser::get()->ReleaseObject(raw_derived_pointer_);
149 EXPECT_EQ(1, raw_derived_pointer_->referenceCount);
150 p1 = p2;
151 EXPECT_EQ(1, raw_derived_pointer_->referenceCount);
152 NPBrowser::get()->RetainObject(raw_derived_pointer_);
153 NPBrowser::get()->RetainObject(raw_derived_pointer_);
154 }
155
156 TEST_F(NPObjectPointerTest, CanComparePointersForEqual) {
157 NPObjectPointer<MockNPObject> p1(raw_pointer_);
158 NPObjectPointer<DerivedNPObject> p2(raw_derived_pointer_);
159 EXPECT_TRUE(p1 == p1);
160 EXPECT_FALSE(p1 == p2);
161 EXPECT_FALSE(p2 == p1);
162 EXPECT_FALSE(p1 == NPObjectPointer<MockNPObject>());
163 }
164
165 TEST_F(NPObjectPointerTest, CanComparePointersForNotEqual) {
166 NPObjectPointer<MockNPObject> p1(raw_pointer_);
167 NPObjectPointer<DerivedNPObject> p2(raw_derived_pointer_);
168 EXPECT_FALSE(p1 != p1);
169 EXPECT_TRUE(p1 != p2);
170 EXPECT_TRUE(p2 != p1);
171 EXPECT_TRUE(p1 != NPObjectPointer<MockNPObject>());
172 }
173
174 TEST_F(NPObjectPointerTest, ArrowOperatorCanBeUsedToAccessNPObjectMembers) {
175 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("hello");
176
177 EXPECT_CALL(*raw_pointer_, HasProperty(name)).WillOnce(Return(true));
178
179 NPObjectPointer<MockNPObject> p(raw_pointer_);
180 EXPECT_TRUE(p->HasProperty(name));
181 }
182
183 TEST_F(NPObjectPointerTest, StarOperatorReturnsNPObjectReference) {
184 NPObjectPointer<MockNPObject> p(raw_pointer_);
185 EXPECT_EQ(raw_pointer_, &*p);
186 }
187
188 TEST_F(NPObjectPointerTest, PointerCanBeConstructedFromReturnedNPObject) {
189 NPBrowser::get()->RetainObject(raw_pointer_);
190 EXPECT_EQ(2, raw_pointer_->referenceCount);
191 {
192 NPObjectPointer<MockNPObject> p(
193 NPObjectPointer<MockNPObject>::FromReturned(raw_pointer_));
194 EXPECT_EQ(2, raw_pointer_->referenceCount);
195 }
196 EXPECT_EQ(1, raw_pointer_->referenceCount);
197 }
198
199 TEST_F(NPObjectPointerTest, PointerCanBeConstructedFromReturnedNullNPObject) {
200 NPObjectPointer<MockNPObject> p(
201 NPObjectPointer<MockNPObject>::FromReturned(NULL));
202 EXPECT_TRUE(NULL == p.Get());
203 }
204
205 TEST_F(NPObjectPointerTest, PointerCanBeReturnedAsARawNPObject) {
206 NPObjectPointer<MockNPObject> p(raw_pointer_);
207 EXPECT_EQ(raw_pointer_, p.ToReturned());
208
209 // Check reference count is incremented before return for caller.
210 EXPECT_EQ(3, raw_pointer_->referenceCount);
211
212 NPBrowser::get()->ReleaseObject(raw_pointer_);
213 }
214
215 TEST_F(NPObjectPointerTest, NULLPointerCanBeReturnedAsARawNPObject) {
216 NPObjectPointer<MockNPObject> p;
217 EXPECT_TRUE(NULL == p.ToReturned());
218 }
219
220 } // namespace np_utils
OLDNEW
« no previous file with comments | « gpu/np_utils/np_object_pointer.h ('k') | gpu/np_utils/np_plugin_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698