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