1// Copyright (c) 2012 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// Note that while this file is in testing/ and tests GTest macros, it is built
6// as part of Chromium's unit_tests target because the project does not build
7// or run GTest's internal test suite.
8
9#import "testing/gtest_mac.h"
10
11#import <Foundation/Foundation.h>
12
13#include "base/mac/scoped_nsautorelease_pool.h"
14#include "testing/gtest/include/gtest/internal/gtest-port.h"
15#include "testing/gtest/include/gtest/gtest.h"
16
17TEST(GTestMac, ExpectNSEQ) {
18  base::mac::ScopedNSAutoreleasePool pool;
19
20  EXPECT_NSEQ(@"a", @"a");
21
22  NSString* s1 = [NSString stringWithUTF8String:"a"];
23  NSString* s2 = @"a";
24  EXPECT_NE(s1, s2);
25  EXPECT_NSEQ(s1, s2);
26}
27
28TEST(GTestMac, AssertNSEQ) {
29  base::mac::ScopedNSAutoreleasePool pool;
30
31  NSString* s1 = [NSString stringWithUTF8String:"a"];
32  NSString* s2 = @"a";
33  EXPECT_NE(s1, s2);
34  ASSERT_NSEQ(s1, s2);
35}
36
37TEST(GTestMac, ExpectNSNE) {
38  base::mac::ScopedNSAutoreleasePool pool;
39
40  EXPECT_NSNE([NSNumber numberWithInt:2], [NSNumber numberWithInt:42]);
41}
42
43TEST(GTestMac, AssertNSNE) {
44  base::mac::ScopedNSAutoreleasePool pool;
45
46  ASSERT_NSNE(@"a", @"b");
47}
48
49TEST(GTestMac, ExpectNSNil) {
50  base::mac::ScopedNSAutoreleasePool pool;
51
52  EXPECT_NSEQ(nil, nil);
53  EXPECT_NSNE(nil, @"a");
54  EXPECT_NSNE(@"a", nil);
55
56  // TODO(shess): Test that EXPECT_NSNE(nil, nil) fails.
57}
58