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

Side by Side Diff: testing/gmock/test/gmock-nice-strict_test.cc

Issue 521012: Update gmock and gtest. (Closed)
Patch Set: update readme Created 10 years, 12 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
« no previous file with comments | « testing/gmock/test/gmock-more-actions_test.cc ('k') | testing/gmock/test/gmock-port_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2008, Google Inc. 1 // Copyright 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 22 matching lines...) Expand all
33 33
34 #include <string> 34 #include <string>
35 #include <gmock/gmock.h> 35 #include <gmock/gmock.h>
36 #include <gtest/gtest.h> 36 #include <gtest/gtest.h>
37 #include <gtest/gtest-spi.h> 37 #include <gtest/gtest-spi.h>
38 38
39 // This must not be defined inside the ::testing namespace, or it will 39 // This must not be defined inside the ::testing namespace, or it will
40 // clash with ::testing::Mock. 40 // clash with ::testing::Mock.
41 class Mock { 41 class Mock {
42 public: 42 public:
43 Mock() {}
44
43 MOCK_METHOD0(DoThis, void()); 45 MOCK_METHOD0(DoThis, void());
46
47 private:
48 GTEST_DISALLOW_COPY_AND_ASSIGN_(Mock);
44 }; 49 };
45 50
46 namespace testing { 51 namespace testing {
47 namespace gmock_nice_strict_test { 52 namespace gmock_nice_strict_test {
48 53
49 using testing::internal::string; 54 using testing::internal::string;
50 using testing::GMOCK_FLAG(verbose); 55 using testing::GMOCK_FLAG(verbose);
51 using testing::HasSubstr; 56 using testing::HasSubstr;
52 using testing::NiceMock; 57 using testing::NiceMock;
53 using testing::StrictMock; 58 using testing::StrictMock;
54 59
55 // Defines some mock classes needed by the tests. 60 // Defines some mock classes needed by the tests.
56 61
57 class Foo { 62 class Foo {
58 public: 63 public:
59 virtual ~Foo() {} 64 virtual ~Foo() {}
60 65
61 virtual void DoThis() = 0; 66 virtual void DoThis() = 0;
62 virtual int DoThat(bool flag) = 0; 67 virtual int DoThat(bool flag) = 0;
63 }; 68 };
64 69
65 class MockFoo : public Foo { 70 class MockFoo : public Foo {
66 public: 71 public:
72 MockFoo() {}
67 void Delete() { delete this; } 73 void Delete() { delete this; }
68 74
69 MOCK_METHOD0(DoThis, void()); 75 MOCK_METHOD0(DoThis, void());
70 MOCK_METHOD1(DoThat, int(bool flag)); 76 MOCK_METHOD1(DoThat, int(bool flag));
77
78 private:
79 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFoo);
71 }; 80 };
72 81
73 class MockBar { 82 class MockBar {
74 public: 83 public:
75 explicit MockBar(const string& s) : str_(s) {} 84 explicit MockBar(const string& s) : str_(s) {}
76 85
77 MockBar(char a1, char a2, string a3, string a4, int a5, int a6, 86 MockBar(char a1, char a2, string a3, string a4, int a5, int a6,
78 const string& a7, const string& a8, bool a9, bool a10) { 87 const string& a7, const string& a8, bool a9, bool a10) {
79 str_ = string() + a1 + a2 + a3 + a4 + static_cast<char>(a5) + 88 str_ = string() + a1 + a2 + a3 + a4 + static_cast<char>(a5) +
80 static_cast<char>(a6) + a7 + a8 + (a9 ? 'T' : 'F') + (a10 ? 'T' : 'F'); 89 static_cast<char>(a6) + a7 + a8 + (a9 ? 'T' : 'F') + (a10 ? 'T' : 'F');
81 } 90 }
82 91
83 virtual ~MockBar() {} 92 virtual ~MockBar() {}
84 93
85 const string& str() const { return str_; } 94 const string& str() const { return str_; }
86 95
87 MOCK_METHOD0(This, int()); 96 MOCK_METHOD0(This, int());
88 MOCK_METHOD2(That, string(int, bool)); 97 MOCK_METHOD2(That, string(int, bool));
89 98
90 private: 99 private:
91 string str_; 100 string str_;
101
102 GTEST_DISALLOW_COPY_AND_ASSIGN_(MockBar);
92 }; 103 };
93 104
94 // TODO(wan@google.com): find a way to re-enable these tests. 105 // TODO(wan@google.com): find a way to re-enable these tests.
95 #if 0 106 #if 0
96 107
97 // Tests that a nice mock generates no warning for uninteresting calls. 108 // Tests that a nice mock generates no warning for uninteresting calls.
98 TEST(NiceMockTest, NoWarningForUninterestingCall) { 109 TEST(NiceMockTest, NoWarningForUninterestingCall) {
99 NiceMock<MockFoo> nice_foo; 110 NiceMock<MockFoo> nice_foo;
100 111
101 CaptureTestStdout(); 112 CaptureTestStdout();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 // non-default constructor. 177 // non-default constructor.
167 TEST(NiceMockTest, NonDefaultConstructor10) { 178 TEST(NiceMockTest, NonDefaultConstructor10) {
168 NiceMock<MockBar> nice_bar('a', 'b', "c", "d", 'e', 'f', 179 NiceMock<MockBar> nice_bar('a', 'b', "c", "d", 'e', 'f',
169 "g", "h", true, false); 180 "g", "h", true, false);
170 EXPECT_EQ("abcdefghTF", nice_bar.str()); 181 EXPECT_EQ("abcdefghTF", nice_bar.str());
171 182
172 nice_bar.This(); 183 nice_bar.This();
173 nice_bar.That(5, true); 184 nice_bar.That(5, true);
174 } 185 }
175 186
176 #if !GTEST_OS_SYMBIAN 187 #if !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
177 // Tests that NiceMock<Mock> compiles where Mock is a user-defined 188 // Tests that NiceMock<Mock> compiles where Mock is a user-defined
178 // class (as opposed to ::testing::Mock). We had to workaround an 189 // class (as opposed to ::testing::Mock). We had to workaround an
179 // MSVC 8.0 bug that caused the symbol Mock used in the definition of 190 // MSVC 8.0 bug that caused the symbol Mock used in the definition of
180 // NiceMock to be looked up in the wrong context, and this test 191 // NiceMock to be looked up in the wrong context, and this test
181 // ensures that our fix works. 192 // ensures that our fix works.
182 // 193 //
183 // We have to skip this test on Symbian, as it causes the program to 194 // We have to skip this test on Symbian and Windows Mobile, as it
184 // crash there, for reasons unclear to us yet. 195 // causes the program to crash there, for reasons unclear to us yet.
185 TEST(NiceMockTest, AcceptsClassNamedMock) { 196 TEST(NiceMockTest, AcceptsClassNamedMock) {
186 NiceMock< ::Mock> nice; 197 NiceMock< ::Mock> nice;
187 EXPECT_CALL(nice, DoThis()); 198 EXPECT_CALL(nice, DoThis());
188 nice.DoThis(); 199 nice.DoThis();
189 } 200 }
190 #endif // !GTEST_OS_SYMBIAN 201 #endif // !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
191 202
192 // Tests that a strict mock allows expected calls. 203 // Tests that a strict mock allows expected calls.
193 TEST(StrictMockTest, AllowsExpectedCall) { 204 TEST(StrictMockTest, AllowsExpectedCall) {
194 StrictMock<MockFoo> strict_foo; 205 StrictMock<MockFoo> strict_foo;
195 206
196 EXPECT_CALL(strict_foo, DoThis()); 207 EXPECT_CALL(strict_foo, DoThis());
197 strict_foo.DoThis(); 208 strict_foo.DoThis();
198 } 209 }
199 210
200 // Tests that an unexpected call on a strict mock fails. 211 // Tests that an unexpected call on a strict mock fails.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 // non-default constructor. 251 // non-default constructor.
241 TEST(StrictMockTest, NonDefaultConstructor10) { 252 TEST(StrictMockTest, NonDefaultConstructor10) {
242 StrictMock<MockBar> strict_bar('a', 'b', "c", "d", 'e', 'f', 253 StrictMock<MockBar> strict_bar('a', 'b', "c", "d", 'e', 'f',
243 "g", "h", true, false); 254 "g", "h", true, false);
244 EXPECT_EQ("abcdefghTF", strict_bar.str()); 255 EXPECT_EQ("abcdefghTF", strict_bar.str());
245 256
246 EXPECT_NONFATAL_FAILURE(strict_bar.That(5, true), 257 EXPECT_NONFATAL_FAILURE(strict_bar.That(5, true),
247 "Uninteresting mock function call"); 258 "Uninteresting mock function call");
248 } 259 }
249 260
250 #if !GTEST_OS_SYMBIAN 261 #if !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
251 // Tests that StrictMock<Mock> compiles where Mock is a user-defined 262 // Tests that StrictMock<Mock> compiles where Mock is a user-defined
252 // class (as opposed to ::testing::Mock). We had to workaround an 263 // class (as opposed to ::testing::Mock). We had to workaround an
253 // MSVC 8.0 bug that caused the symbol Mock used in the definition of 264 // MSVC 8.0 bug that caused the symbol Mock used in the definition of
254 // StrictMock to be looked up in the wrong context, and this test 265 // StrictMock to be looked up in the wrong context, and this test
255 // ensures that our fix works. 266 // ensures that our fix works.
256 // 267 //
257 // We have to skip this test on Symbian, as it causes the program to 268 // We have to skip this test on Symbian and Windows Mobile, as it
258 // crash there, for reasons unclear to us yet. 269 // causes the program to crash there, for reasons unclear to us yet.
259 TEST(StrictMockTest, AcceptsClassNamedMock) { 270 TEST(StrictMockTest, AcceptsClassNamedMock) {
260 StrictMock< ::Mock> strict; 271 StrictMock< ::Mock> strict;
261 EXPECT_CALL(strict, DoThis()); 272 EXPECT_CALL(strict, DoThis());
262 strict.DoThis(); 273 strict.DoThis();
263 } 274 }
264 #endif // !GTEST_OS_SYMBIAN 275 #endif // !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
265 276
266 } // namespace gmock_nice_strict_test 277 } // namespace gmock_nice_strict_test
267 } // namespace testing 278 } // namespace testing
OLDNEW
« no previous file with comments | « testing/gmock/test/gmock-more-actions_test.cc ('k') | testing/gmock/test/gmock-port_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698