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

Side by Side Diff: base/scoped_variant_win_unittest.cc

Issue 42569: Adding a Set() method for copying a variant over to the ScopedVariant.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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
« no previous file with comments | « base/scoped_variant_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/scoped_variant_win.h" 5 #include "base/scoped_variant_win.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 7
8 namespace { 8 namespace {
9 9
10 static const wchar_t kTestString1[] = L"Used to create BSTRs"; 10 static const wchar_t kTestString1[] = L"Used to create BSTRs";
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 var.Reset(); 191 var.Reset();
192 EXPECT_EQ(0, faker.ref_count()); 192 EXPECT_EQ(0, faker.ref_count());
193 193
194 var.Set(static_cast<IUnknown*>(&faker)); 194 var.Set(static_cast<IUnknown*>(&faker));
195 EXPECT_EQ(VT_UNKNOWN, var.type()); 195 EXPECT_EQ(VT_UNKNOWN, var.type());
196 EXPECT_EQ(&faker, V_UNKNOWN(&var)); 196 EXPECT_EQ(&faker, V_UNKNOWN(&var));
197 EXPECT_EQ(1, faker.ref_count()); 197 EXPECT_EQ(1, faker.ref_count());
198 var.Reset(); 198 var.Reset();
199 EXPECT_EQ(0, faker.ref_count()); 199 EXPECT_EQ(0, faker.ref_count());
200 200
201 {
202 ScopedVariant disp_var(&faker);
203 EXPECT_EQ(VT_DISPATCH, disp_var.type());
204 EXPECT_EQ(&faker, V_DISPATCH(&disp_var));
205 EXPECT_EQ(1, faker.ref_count());
206 }
207 EXPECT_EQ(0, faker.ref_count());
208
209 {
210 ScopedVariant ref1(&faker);
211 EXPECT_EQ(1, faker.ref_count());
212 ScopedVariant ref2(static_cast<const VARIANT&>(ref1));
213 EXPECT_EQ(2, faker.ref_count());
214 ScopedVariant ref3;
215 ref3 = static_cast<const VARIANT&>(ref2);
216 EXPECT_EQ(3, faker.ref_count());
217 }
218 EXPECT_EQ(0, faker.ref_count());
219
220 {
221 ScopedVariant unk_var(static_cast<IUnknown*>(&faker));
222 EXPECT_EQ(VT_UNKNOWN, unk_var.type());
223 EXPECT_EQ(&faker, V_UNKNOWN(&unk_var));
224 EXPECT_EQ(1, faker.ref_count());
225 }
226 EXPECT_EQ(0, faker.ref_count());
227
228 VARIANT raw;
229 raw.vt = VT_UNKNOWN;
230 raw.punkVal = &faker;
231 EXPECT_EQ(0, faker.ref_count());
232 var.Set(raw);
233 EXPECT_EQ(1, faker.ref_count());
234 var.Reset();
235 EXPECT_EQ(0, faker.ref_count());
236
237 {
238 ScopedVariant number(123);
239 EXPECT_EQ(VT_I4, number.type());
240 EXPECT_EQ(123, V_I4(&number));
241 }
242
201 // SAFEARRAY tests 243 // SAFEARRAY tests
202 var.Set(static_cast<SAFEARRAY*>(NULL)); 244 var.Set(static_cast<SAFEARRAY*>(NULL));
203 EXPECT_EQ(VT_EMPTY, var.type()); 245 EXPECT_EQ(VT_EMPTY, var.type());
204 246
205 SAFEARRAY* sa = ::SafeArrayCreateVector(VT_UI1, 0, 100); 247 SAFEARRAY* sa = ::SafeArrayCreateVector(VT_UI1, 0, 100);
206 ASSERT_TRUE(sa != NULL); 248 ASSERT_TRUE(sa != NULL);
207 249
208 var.Set(sa); 250 var.Set(sa);
209 #ifndef OFFICIAL_BUILD 251 #ifndef OFFICIAL_BUILD
210 EXPECT_TRUE(ScopedVariant::IsLeakableVarType(var.type())); 252 EXPECT_TRUE(ScopedVariant::IsLeakableVarType(var.type()));
211 #endif 253 #endif
212 EXPECT_EQ(VT_ARRAY | VT_UI1, var.type()); 254 EXPECT_EQ(VT_ARRAY | VT_UI1, var.type());
213 EXPECT_EQ(sa, V_ARRAY(&var)); 255 EXPECT_EQ(sa, V_ARRAY(&var));
214 // The array is destroyed in the destructor of var. 256 // The array is destroyed in the destructor of var.
215 } 257 }
OLDNEW
« no previous file with comments | « base/scoped_variant_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698