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

Side by Side Diff: third_party/libaddressinput/chromium/cpp/test/util/scoped_ptr_unittest.cc

Issue 110533002: [rac] Temporarily copy libaddressinput to Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Avoid redefinition of basictypes.h Created 7 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
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 // The original source code is from:
6 // http://src.chromium.org/viewvc/chrome/trunk/src/base/memory/scoped_ptr_unitte st.cc?revision=79524
7
8 #include <libaddressinput/util/scoped_ptr.h>
9
10 #include <libaddressinput/util/basictypes.h>
11
12 #include <gtest/gtest.h>
13
14 namespace {
15
16 using i18n::addressinput::scoped_ptr;
17
18 class ConDecLogger {
19 public:
20 ConDecLogger() : ptr_(NULL) { }
21 explicit ConDecLogger(int* ptr) { set_ptr(ptr); }
22 ~ConDecLogger() { --*ptr_; }
23
24 void set_ptr(int* ptr) { ptr_ = ptr; ++*ptr_; }
25
26 int SomeMeth(int x) { return x; }
27
28 private:
29 int* ptr_;
30 DISALLOW_COPY_AND_ASSIGN(ConDecLogger);
31 };
32
33 TEST(ScopedPtrTest, ScopedPtr) {
34 int constructed = 0;
35
36 {
37 scoped_ptr<ConDecLogger> scoper(new ConDecLogger(&constructed));
38 EXPECT_EQ(1, constructed);
39 EXPECT_TRUE(scoper.get());
40
41 EXPECT_EQ(10, scoper->SomeMeth(10));
42 EXPECT_EQ(10, scoper.get()->SomeMeth(10));
43 EXPECT_EQ(10, (*scoper).SomeMeth(10));
44 }
45 EXPECT_EQ(0, constructed);
46
47 // Test reset() and release()
48 {
49 scoped_ptr<ConDecLogger> scoper(new ConDecLogger(&constructed));
50 EXPECT_EQ(1, constructed);
51 EXPECT_TRUE(scoper.get());
52
53 scoper.reset(new ConDecLogger(&constructed));
54 EXPECT_EQ(1, constructed);
55 EXPECT_TRUE(scoper.get());
56
57 scoper.reset();
58 EXPECT_EQ(0, constructed);
59 EXPECT_FALSE(scoper.get());
60
61 scoper.reset(new ConDecLogger(&constructed));
62 EXPECT_EQ(1, constructed);
63 EXPECT_TRUE(scoper.get());
64
65 ConDecLogger* take = scoper.release();
66 EXPECT_EQ(1, constructed);
67 EXPECT_FALSE(scoper.get());
68 delete take;
69 EXPECT_EQ(0, constructed);
70
71 scoper.reset(new ConDecLogger(&constructed));
72 EXPECT_EQ(1, constructed);
73 EXPECT_TRUE(scoper.get());
74 }
75 EXPECT_EQ(0, constructed);
76
77 // Test swap(), == and !=
78 {
79 scoped_ptr<ConDecLogger> scoper1;
80 scoped_ptr<ConDecLogger> scoper2;
81 EXPECT_TRUE(scoper1 == scoper2.get());
82 EXPECT_FALSE(scoper1 != scoper2.get());
83
84 ConDecLogger* logger = new ConDecLogger(&constructed);
85 scoper1.reset(logger);
86 EXPECT_EQ(logger, scoper1.get());
87 EXPECT_FALSE(scoper2.get());
88 EXPECT_FALSE(scoper1 == scoper2.get());
89 EXPECT_TRUE(scoper1 != scoper2.get());
90
91 scoper2.swap(scoper1);
92 EXPECT_EQ(logger, scoper2.get());
93 EXPECT_FALSE(scoper1.get());
94 EXPECT_FALSE(scoper1 == scoper2.get());
95 EXPECT_TRUE(scoper1 != scoper2.get());
96 }
97 EXPECT_EQ(0, constructed);
98 }
99
100 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698