Files
firebase-ios-sdk/FirebaseAppDistribution/Tests/Unit/FIRAppDistributionMachOTests.m
T
Ryan Wilson a60866383f Add AppDistribution to SwiftPM. (#7045)
* Add AppDistribution to SwiftPM.

Tests aren't ported yet due to an import OCMock issue.

* Embed public headers in correct directory

* Fix podspec

* Fixed new header imports.

* Add beta designation to SwiftPM name.

* Enable testing for AppDistro in SwiftPM

* Style

* Style

* Added changelog

* Add unit test scheme.
2020-12-02 11:51:29 -05:00

63 lines
2.3 KiB
Objective-C

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#import "FirebaseAppDistribution/Sources/FIRAppDistributionMachO.h"
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
@interface FIRAppDistributionMachOTests : XCTestCase
@end
@implementation FIRAppDistributionMachOTests
- (NSString*)resourcePath:(NSString*)path {
NSBundle* bundle = [NSBundle bundleForClass:[self class]];
// Swift Package Manager uses a different bundle structure for resources, so explicitly get the
// nested bundle. In Swift we could have used `Bundle.module` to access it, but that isn't
// surfaced in ObjC.
#if SWIFT_PACKAGE
NSString* nestedBundlePath = [bundle pathForResource:@"Firebase_AppDistributionUnit"
ofType:@"bundle"];
bundle = [NSBundle bundleWithPath:nestedBundlePath];
#endif // SWIFT_PACKAGE
NSString* resourcePath = [bundle resourcePath];
return [resourcePath stringByAppendingPathComponent:path];
}
- (void)testCodeHashForSingleArchIntelSimulator {
FIRAppDistributionMachO* macho;
macho = [[FIRAppDistributionMachO alloc] initWithPath:[self resourcePath:@"x86_64-executable"]];
XCTAssertEqualObjects([macho codeHash], @"442eb836efe1f56bf8a65b2a0a78b2f8d3e792e7");
}
- (void)testCodeHashForMultipleArch {
FIRAppDistributionMachO* macho;
macho =
[[FIRAppDistributionMachO alloc] initWithPath:[self resourcePath:@"armv7-armv7s-executable"]];
XCTAssertEqualObjects([macho codeHash], @"80cc0ec0af8a0169831abcc73177eb2b57990bc0");
}
- (void)testCodeHashForNonExistentBinary {
FIRAppDistributionMachO* macho;
macho = [[FIRAppDistributionMachO alloc] initWithPath:[self resourcePath:@"missing-file"]];
XCTAssertEqualObjects([macho codeHash], @"da39a3ee5e6b4b0d3255bfef95601890afd80709");
}
@end