| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // Copyright 2015 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- //go:build ignore
- // +build ignore
- @import ObjectiveC.message;
- @import Foundation;
- @import XCTest;
- @import Objcpkg;
- @interface TestNSObject : NSObject
- - (NSString *)description;
- - (NSString *)super_description;
- @end
- @implementation TestNSObject
- - (NSString *)description {
- return @"hej";
- }
- - (NSString *)super_description {
- return [super description];
- }
- @end
- @interface wrappers : XCTestCase
- @end
- @implementation wrappers
- - (void)setUp {
- [super setUp];
- // Put setup code here. This method is called before the invocation of each test method in the class.
- }
- - (void)tearDown {
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- [super tearDown];
- }
- - (void)testFunction {
- ObjcpkgFunc();
- }
- - (void)testMethod {
- ObjcpkgMethod();
- }
- - (void)testNew {
- ObjcpkgNew();
- }
- - (void)testError {
- ObjcpkgError();
- }
- - (void)testClass {
- ObjcpkgGoNSDate *d = [[ObjcpkgGoNSDate alloc] init];
- NSString *desc = [d description];
- XCTAssertEqual(d, [d getSelf], "GoNSDate self not identical");
- XCTAssertEqual(ObjcpkgHash, [d hash], "GoNSDate hash not identical");
- XCTAssertTrue([desc isEqualToString:ObjcpkgDescriptionStr], "GoNSDate description mismatch: %@", desc);
- ObjcpkgGoUIResponder *resp = [[ObjcpkgGoUIResponder alloc] init];
- [resp pressesBegan:nil withEvent:nil];
- XCTAssertTrue([resp called], "GoUIResponder.pressesBegan not called");
- }
- - (void)testSuper {
- ObjcpkgGoNSObject *o = [[ObjcpkgGoNSObject alloc] init];
- struct objc_super _super = {
- .receiver = o,
- .super_class = [NSObject class],
- };
- NSString *superDesc = ((NSString *(*)(struct objc_super*, SEL))objc_msgSendSuper)(&_super, @selector(description));
- XCTAssertTrue([superDesc isEqualToString:[o description]], "GoNSObject description mismatch");
- [o setUseSelf:TRUE];
- XCTAssertTrue([ObjcpkgDescriptionStr isEqualToString:[o description]], "GoNSObject description mismatch");
- }
- - (void)testIdentity {
- NSDate *d = [[NSDate alloc] init];
- NSDate *d2 = ObjcpkgDupNSDate(d);
- XCTAssertEqual(d, d2, @"ObjcpkgDupNSDate failed to duplicate ObjC instance");
- ObjcpkgGoNSDate *gd = [[ObjcpkgGoNSDate alloc] init];
- NSDate *gd2 = ObjcpkgDupNSDate(gd);
- XCTAssertEqual(gd, gd2, @"ObjcpkgDupNSDate failed to duplicate Go instance");
- NSDate *gd3 = ObjcpkgNewGoNSDate();
- NSDate *gd4 = ObjcpkgDupNSDate(gd3);
- XCTAssertEqual(gd4, gd3, @"ObjcpkgDupNSDate failed to duplicate instance created in Go");
- }
- @end
|