| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2014 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 "remoting/host/mock_callback.h" | 
|  | 6 | 
|  | 7 #include "testing/gmock/include/gmock/gmock.h" | 
|  | 8 #include "testing/gtest/include/gtest/gtest-spi.h" | 
|  | 9 #include "testing/gtest/include/gtest/gtest.h" | 
|  | 10 | 
|  | 11 namespace remoting { | 
|  | 12 | 
|  | 13 TEST(MockCallbackTest, SimpleExampleFromHeader) { | 
|  | 14   EXPECT_NONFATAL_FAILURE({ | 
|  | 15                             MockCallback<void(int)> mock_callback; | 
|  | 16                             EXPECT_CALL(mock_callback, Run(123)).Times(2); | 
|  | 17                             base::Callback<void(int)> callback = | 
|  | 18                                 mock_callback.GetCallback(); | 
|  | 19 | 
|  | 20                             callback.Run(123); | 
|  | 21                             callback.Run(123); | 
|  | 22                             callback.Run(123);  // Called too many times. | 
|  | 23                           }, | 
|  | 24                           "Mock function called more times than expected"); | 
|  | 25 } | 
|  | 26 | 
|  | 27 TEST(MockCallbackTest, HasRemainingCallbacks) { | 
|  | 28   MockCallback<int()> mock_callback; | 
|  | 29   EXPECT_CALL(mock_callback, Run()).WillOnce(testing::Return(123)); | 
|  | 30 | 
|  | 31   { | 
|  | 32     base::Callback<int()> callback = mock_callback.GetCallback(); | 
|  | 33     EXPECT_TRUE(mock_callback.HasRemainingCallbacks()); | 
|  | 34     EXPECT_EQ(123, callback.Run()); | 
|  | 35   } | 
|  | 36 | 
|  | 37   EXPECT_FALSE(mock_callback.HasRemainingCallbacks()); | 
|  | 38 } | 
|  | 39 | 
|  | 40 TEST(MockCallbackTest, CallbackRunAfterMockAlreadyDestroyed) { | 
|  | 41   EXPECT_NONFATAL_FAILURE( | 
|  | 42       { | 
|  | 43         base::Callback<int(int)> long_lived_callback; | 
|  | 44         { | 
|  | 45           MockCallback<int(int)> short_lived_mock_callback; | 
|  | 46 | 
|  | 47           EXPECT_CALL(short_lived_mock_callback, Run(123)) | 
|  | 48               .WillOnce(testing::Return(456)); | 
|  | 49           long_lived_callback = short_lived_mock_callback.GetCallback(); | 
|  | 50 | 
|  | 51           int actual_result1 = long_lived_callback.Run(123); | 
|  | 52           ASSERT_EQ(456, actual_result1); | 
|  | 53         } | 
|  | 54 | 
|  | 55         // This |Run| invocation happens when short_lived_mock_callback is | 
|  | 56         // already | 
|  | 57         // destroyed.  Such |Run| invocation should cause a test failure (that | 
|  | 58         // we | 
|  | 59         // are verifying via the outer EXPECT_NONFATAL_FAILURE). | 
|  | 60         testing::DefaultValue<int>::Set(42); | 
|  | 61         int actual_result2 = long_lived_callback.Run(789); | 
|  | 62         ASSERT_EQ(42, actual_result2); | 
|  | 63       }, | 
|  | 64       "MockCallback should be alive when Callback::Run happens."); | 
|  | 65 } | 
|  | 66 | 
|  | 67 }  // namespace remoting | 
| OLD | NEW | 
|---|