xref: /aosp_15_r20/external/cronet/testing/gtest_mac_unittest.mm (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker// Copyright 2012 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker// Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker// found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker// Note that while this file is in testing/ and tests GTest macros, it is built
6*6777b538SAndroid Build Coastguard Worker// as part of Chromium's unit_tests target because the project does not build
7*6777b538SAndroid Build Coastguard Worker// or run GTest's internal test suite.
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Worker#import "testing/gtest_mac.h"
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Worker#import <Foundation/Foundation.h>
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker#include "testing/gtest/include/gtest/gtest.h"
14*6777b538SAndroid Build Coastguard Worker#include "third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h"
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Workernamespace testing {
17*6777b538SAndroid Build Coastguard Workernamespace internal {
18*6777b538SAndroid Build Coastguard Worker// This function is tested within this file, but it's not part of the public
19*6777b538SAndroid Build Coastguard Worker// API, and since it's a free function there's no way to friend the test for it.
20*6777b538SAndroid Build Coastguard Workerextern std::string StringDescription(id<NSObject> obj);
21*6777b538SAndroid Build Coastguard Worker}
22*6777b538SAndroid Build Coastguard Worker}
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, NSStringComparators) {
25*6777b538SAndroid Build Coastguard Worker  // This test wants to really guarantee that s1 and s2 aren't the same address,
26*6777b538SAndroid Build Coastguard Worker  // so it constructs a string this way. In theory this could be done via
27*6777b538SAndroid Build Coastguard Worker  // [NSString stringWithString:] but that causes an error about using a
28*6777b538SAndroid Build Coastguard Worker  // redundant literal :)
29*6777b538SAndroid Build Coastguard Worker  NSString* s1 = [NSString stringWithFormat:@"%@", @"a"];
30*6777b538SAndroid Build Coastguard Worker  NSString* s2 = @"a";
31*6777b538SAndroid Build Coastguard Worker
32*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(@"a", @"a");
33*6777b538SAndroid Build Coastguard Worker  EXPECT_NE(s1, s2);
34*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(s1, s2);
35*6777b538SAndroid Build Coastguard Worker  ASSERT_NE(s1, s2);
36*6777b538SAndroid Build Coastguard Worker  ASSERT_NSEQ(s1, s2);
37*6777b538SAndroid Build Coastguard Worker
38*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(@"a", @"b");
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(nil, nil);
41*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(nil, @"a");
42*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(@"a", nil);
43*6777b538SAndroid Build Coastguard Worker}
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, NSNumberComparators) {
46*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(@2, @42);
47*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(@42, @42);
48*6777b538SAndroid Build Coastguard Worker}
49*6777b538SAndroid Build Coastguard Worker
50*6777b538SAndroid Build Coastguard Worker#if !defined(GTEST_OS_IOS)
51*6777b538SAndroid Build Coastguard Worker
52*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, NSRectComparators) {
53*6777b538SAndroid Build Coastguard Worker  ASSERT_NSEQ(NSMakeRect(1, 2, 3, 4), NSMakeRect(1, 2, 3, 4));
54*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(NSMakeRect(1, 2, 3, 4), NSMakeRect(5, 6, 7, 8));
55*6777b538SAndroid Build Coastguard Worker
56*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(NSMakeRect(1, 2, 3, 4), NSMakeRect(1, 2, 3, 4));
57*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(NSMakeRect(1, 2, 3, 4), NSMakeRect(5, 6, 7, 8));
58*6777b538SAndroid Build Coastguard Worker}
59*6777b538SAndroid Build Coastguard Worker
60*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, NSPointComparators) {
61*6777b538SAndroid Build Coastguard Worker  ASSERT_NSEQ(NSMakePoint(1, 2), NSMakePoint(1, 2));
62*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(NSMakePoint(1, 2), NSMakePoint(1, 3));
63*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(NSMakePoint(1, 2), NSMakePoint(2, 2));
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(NSMakePoint(3, 4), NSMakePoint(3, 4));
66*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(NSMakePoint(3, 4), NSMakePoint(3, 3));
67*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(NSMakePoint(3, 4), NSMakePoint(4, 3));
68*6777b538SAndroid Build Coastguard Worker}
69*6777b538SAndroid Build Coastguard Worker
70*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, NSRangeComparators) {
71*6777b538SAndroid Build Coastguard Worker  ASSERT_NSEQ(NSMakeRange(1, 2), NSMakeRange(1, 2));
72*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(NSMakeRange(1, 2), NSMakeRange(1, 3));
73*6777b538SAndroid Build Coastguard Worker  ASSERT_NSNE(NSMakeRange(1, 2), NSMakeRange(2, 2));
74*6777b538SAndroid Build Coastguard Worker
75*6777b538SAndroid Build Coastguard Worker  EXPECT_NSEQ(NSMakeRange(3, 4), NSMakeRange(3, 4));
76*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(NSMakeRange(3, 4), NSMakeRange(3, 3));
77*6777b538SAndroid Build Coastguard Worker  EXPECT_NSNE(NSMakeRange(3, 4), NSMakeRange(4, 4));
78*6777b538SAndroid Build Coastguard Worker}
79*6777b538SAndroid Build Coastguard Worker
80*6777b538SAndroid Build Coastguard WorkerTEST(GTestMac, StringDescription) {
81*6777b538SAndroid Build Coastguard Worker  using testing::internal::StringDescription;
82*6777b538SAndroid Build Coastguard Worker  EXPECT_EQ(StringDescription(@4), "4");
83*6777b538SAndroid Build Coastguard Worker  EXPECT_EQ(StringDescription(@"foo"), "foo");
84*6777b538SAndroid Build Coastguard Worker  EXPECT_EQ(StringDescription(nil), "(null)");
85*6777b538SAndroid Build Coastguard Worker}
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Worker#endif  // !GTEST_OS_IOS
88