1 // Copyright 2015 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 "components/viz/test/mock_helper.h"
6 
7 #include "testing/gtest/include/gtest/gtest-spi.h"
8 
9 namespace {
10 class TestingMock {
11  public:
12   MOCK_METHOD0(Test, void(void));
13 };
14 
TEST(ExpectMockFailureTest,FailsWhenNoMock)15 TEST(ExpectMockFailureTest, FailsWhenNoMock) {
16   EXPECT_NONFATAL_FAILURE({ EXPECT_MOCK_FAILURE({ ; }); }, "");
17 }
18 
TEST(ExpectMockFailureTest,FailsWhenMockSucceeds)19 TEST(ExpectMockFailureTest, FailsWhenMockSucceeds) {
20   EXPECT_NONFATAL_FAILURE(
21       {
22         EXPECT_MOCK_FAILURE({
23           ::testing::NiceMock<TestingMock> t1;
24           EXPECT_CALL(t1, Test());
25 
26           t1.Test();
27         });
28       },
29       "");
30 }
31 
TEST(ExpectMockFailureTest,PassesWhenMockFailsForMissing)32 TEST(ExpectMockFailureTest, PassesWhenMockFailsForMissing) {
33   EXPECT_MOCK_FAILURE({
34     ::testing::NiceMock<TestingMock> t1;
35     EXPECT_CALL(t1, Test());
36   });
37 }
38 
TEST(ExpectMockFailureTest,PassesWhenMockFailsForUnexpected)39 TEST(ExpectMockFailureTest, PassesWhenMockFailsForUnexpected) {
40   EXPECT_MOCK_FAILURE({
41     ::testing::StrictMock<TestingMock> t1;
42     t1.Test();
43   });
44 }
45 
46 }  // namespace
47