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

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

Issue 389863002: Remove Chrome's own version of libaddressinput in favor of the upstream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
(Empty)
1 // Copyright 2013 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 class ConDecLogger {
17 public:
18 ConDecLogger() : ptr_(NULL) { }
19 explicit ConDecLogger(int* ptr) { set_ptr(ptr); }
20 ~ConDecLogger() { --*ptr_; }
21
22 void set_ptr(int* ptr) { ptr_ = ptr; ++*ptr_; }
23
24 int SomeMeth(int x) { return x; }
25
26 private:
27 int* ptr_;
28 DISALLOW_COPY_AND_ASSIGN(ConDecLogger);
29 };
30
31
32 void TakePointer(scoped_ptr<ConDecLogger> pointer) {}
33
34 TEST(ScopedPtrTest, ScopedPtr) {
35 int constructed = 0;
36
37 {
38 scoped_ptr<ConDecLogger> scoper(new ConDecLogger(&constructed));
39 EXPECT_EQ(1, constructed);
40 EXPECT_TRUE(scoper);
41 EXPECT_TRUE(scoper.get());
42
43 EXPECT_EQ(10, scoper->SomeMeth(10));
44 EXPECT_EQ(10, scoper.get()->SomeMeth(10));
45 EXPECT_EQ(10, (*scoper).SomeMeth(10));
46 }
47 EXPECT_EQ(0, constructed);
48
49 // Test reset() and release()
50 {
51 scoped_ptr<ConDecLogger> scoper(new ConDecLogger(&constructed));
52 EXPECT_EQ(1, constructed);
53 EXPECT_TRUE(scoper);
54
55 scoper.reset(new ConDecLogger(&constructed));
56 EXPECT_EQ(1, constructed);
57 EXPECT_TRUE(scoper);
58
59 scoper.reset();
60 EXPECT_EQ(0, constructed);
61 EXPECT_FALSE(scoper);
62
63 scoper.reset(new ConDecLogger(&constructed));
64 EXPECT_EQ(1, constructed);
65 EXPECT_TRUE(scoper);
66
67 ConDecLogger* take = scoper.release();
68 EXPECT_EQ(1, constructed);
69 EXPECT_FALSE(scoper);
70 delete take;
71 EXPECT_EQ(0, constructed);
72
73 scoper.reset(new ConDecLogger(&constructed));
74 EXPECT_EQ(1, constructed);
75 EXPECT_TRUE(scoper);
76 }
77 EXPECT_EQ(0, constructed);
78
79 // Test swap(), == and !=
80 {
81 scoped_ptr<ConDecLogger> scoper1;
82 scoped_ptr<ConDecLogger> scoper2;
83 EXPECT_TRUE(scoper1 == scoper2.get());
84 EXPECT_FALSE(scoper1 != scoper2.get());
85
86 ConDecLogger* logger = new ConDecLogger(&constructed);
87 scoper1.reset(logger);
88 EXPECT_EQ(logger, scoper1.get());
89 EXPECT_FALSE(scoper2.get());
90 EXPECT_FALSE(scoper1 == scoper2.get());
91 EXPECT_TRUE(scoper1 != scoper2.get());
92
93 scoper2.swap(scoper1);
94 EXPECT_EQ(logger, scoper2.get());
95 EXPECT_FALSE(scoper1.get());
96 EXPECT_FALSE(scoper1 == scoper2.get());
97 EXPECT_TRUE(scoper1 != scoper2.get());
98 }
99 EXPECT_EQ(0, constructed);
100
101 // Test Pass().
102 {
103 scoped_ptr<ConDecLogger> scoper(new ConDecLogger(&constructed));
104 EXPECT_EQ(1, constructed);
105 TakePointer(scoper.Pass());
106 EXPECT_EQ(0, constructed);
107 EXPECT_FALSE(scoper);
108
109 TakePointer(make_scoped_ptr(new ConDecLogger(&constructed)));
110 }
111 EXPECT_EQ(0, constructed);
112 }
113
114 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698