/src/mozilla-central/xpcom/tests/gtest/TestCOMPtrEq.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
3 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
4 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
5 | | |
6 | | /** |
7 | | * This attempts to test all the possible variations of |operator==| |
8 | | * used with |nsCOMPtr|s. |
9 | | */ |
10 | | |
11 | | #include "nsCOMPtr.h" |
12 | | #include "gtest/gtest.h" |
13 | | |
14 | | #define NS_ICOMPTREQTESTFOO_IID \ |
15 | | {0x8eb5bbef, 0xd1a3, 0x4659, \ |
16 | | {0x9c, 0xf6, 0xfd, 0xf3, 0xe4, 0xd2, 0x00, 0x0e}} |
17 | | |
18 | | class nsICOMPtrEqTestFoo : public nsISupports { |
19 | | public: |
20 | | NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICOMPTREQTESTFOO_IID) |
21 | | }; |
22 | | |
23 | | NS_DEFINE_STATIC_IID_ACCESSOR(nsICOMPtrEqTestFoo, NS_ICOMPTREQTESTFOO_IID) |
24 | | |
25 | | TEST(COMPtrEq, NullEquality) |
26 | 0 | { |
27 | 0 | nsCOMPtr<nsICOMPtrEqTestFoo> s; |
28 | 0 | nsICOMPtrEqTestFoo* r = nullptr; |
29 | 0 | const nsCOMPtr<nsICOMPtrEqTestFoo> sc; |
30 | 0 | const nsICOMPtrEqTestFoo* rc = nullptr; |
31 | 0 | nsICOMPtrEqTestFoo* const rk = nullptr; |
32 | 0 | const nsICOMPtrEqTestFoo* const rkc = nullptr; |
33 | 0 | nsICOMPtrEqTestFoo* d = s; |
34 | 0 |
|
35 | 0 | ASSERT_EQ(s, s); |
36 | 0 | ASSERT_EQ(s, r); |
37 | 0 | ASSERT_EQ(s, sc); |
38 | 0 | ASSERT_EQ(s, rc); |
39 | 0 | ASSERT_EQ(s, rk); |
40 | 0 | ASSERT_EQ(s, rkc); |
41 | 0 | ASSERT_EQ(s, d); |
42 | 0 | ASSERT_EQ(r, s); |
43 | 0 | ASSERT_EQ(r, sc); |
44 | 0 | ASSERT_EQ(r, rc); |
45 | 0 | ASSERT_EQ(r, rk); |
46 | 0 | ASSERT_EQ(r, rkc); |
47 | 0 | ASSERT_EQ(r, d); |
48 | 0 | ASSERT_EQ(sc, s); |
49 | 0 | ASSERT_EQ(sc, r); |
50 | 0 | ASSERT_EQ(sc, sc); |
51 | 0 | ASSERT_EQ(sc, rc); |
52 | 0 | ASSERT_EQ(sc, rk); |
53 | 0 | ASSERT_EQ(sc, rkc); |
54 | 0 | ASSERT_EQ(sc, d); |
55 | 0 | ASSERT_EQ(rc, s); |
56 | 0 | ASSERT_EQ(rc, r); |
57 | 0 | ASSERT_EQ(rc, sc); |
58 | 0 | ASSERT_EQ(rc, rk); |
59 | 0 | ASSERT_EQ(rc, rkc); |
60 | 0 | ASSERT_EQ(rc, d); |
61 | 0 | ASSERT_EQ(rk, s); |
62 | 0 | ASSERT_EQ(rk, r); |
63 | 0 | ASSERT_EQ(rk, sc); |
64 | 0 | ASSERT_EQ(rk, rc); |
65 | 0 | ASSERT_EQ(rk, rkc); |
66 | 0 | ASSERT_EQ(rk, d); |
67 | 0 | ASSERT_EQ(rkc, s); |
68 | 0 | ASSERT_EQ(rkc, r); |
69 | 0 | ASSERT_EQ(rkc, sc); |
70 | 0 | ASSERT_EQ(rkc, rc); |
71 | 0 | ASSERT_EQ(rkc, rk); |
72 | 0 | ASSERT_EQ(rkc, d); |
73 | 0 | ASSERT_EQ(d, s); |
74 | 0 | ASSERT_EQ(d, r); |
75 | 0 | ASSERT_EQ(d, sc); |
76 | 0 | ASSERT_EQ(d, rc); |
77 | 0 | ASSERT_EQ(d, rk); |
78 | 0 | ASSERT_EQ(d, rkc); |
79 | 0 | } |