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