From efed4185e2dda85ea4570ca989a00b3173eda1e6 Mon Sep 17 00:00:00 2001 From: kabiroberai Date: Sun, 1 Aug 2021 11:02:05 +0530 Subject: [PATCH] SPM-related refactoring --- Supersign/.gitignore | 2 ++ Supersign/Package.swift | 14 ++++++++++++++ .../Tests/SupersignDeveloperServicesTests.swift | 6 ++++-- .../Tests/SupersignGrandSlamTests.swift | 2 ++ .../Tests/SupersignSigningTests.swift | 12 ++++++++++-- .../Tests/SupersignTests}/Utilities/Config.swift | 3 +-- .../DeveloperServicesClient+Testing.swift | 4 ++++ .../SupersignTests/Utilities/MockSigner.swift | 16 ++++++++++++++++ .../SupersignTests}/Utilities/ResultWaiter.swift | 0 .../SupersignTests}/config/config-template.json | 0 10 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 Supersign/.gitignore rename {SupersignTests => Supersign/Tests/SupersignTests}/Tests/SupersignDeveloperServicesTests.swift (90%) rename {SupersignTests => Supersign/Tests/SupersignTests}/Tests/SupersignGrandSlamTests.swift (97%) rename {SupersignTests => Supersign/Tests/SupersignTests}/Tests/SupersignSigningTests.swift (92%) rename {SupersignTests => Supersign/Tests/SupersignTests}/Utilities/Config.swift (85%) rename {SupersignTests => Supersign/Tests/SupersignTests}/Utilities/DeveloperServicesClient+Testing.swift (98%) create mode 100644 Supersign/Tests/SupersignTests/Utilities/MockSigner.swift rename {SupersignTests => Supersign/Tests/SupersignTests}/Utilities/ResultWaiter.swift (100%) rename {SupersignTests => Supersign/Tests/SupersignTests}/config/config-template.json (100%) diff --git a/Supersign/.gitignore b/Supersign/.gitignore new file mode 100644 index 0000000..a29df59 --- /dev/null +++ b/Supersign/.gitignore @@ -0,0 +1,2 @@ +/Tests/SupersignTests/config/* +!/Tests/SupersignTests/config/config-template.json diff --git a/Supersign/Package.swift b/Supersign/Package.swift index 0db6f59..4c35b13 100644 --- a/Supersign/Package.swift +++ b/Supersign/Package.swift @@ -58,6 +58,20 @@ let package = Package( ], cSettings: cSettings ), + .testTarget( + name: "SupersignTests", + dependencies: [ + "Supersign", + .product(name: "SuperutilsTestSupport", package: "SuperchargeCore") + ], + exclude: [ + "config/config-template.json", + ], + resources: [ + .copy("config/config.json"), + .copy("config/test.app"), + ] + ), .target( name: "SupersignCLI", dependencies: [ diff --git a/SupersignTests/Tests/SupersignDeveloperServicesTests.swift b/Supersign/Tests/SupersignTests/Tests/SupersignDeveloperServicesTests.swift similarity index 90% rename from SupersignTests/Tests/SupersignDeveloperServicesTests.swift rename to Supersign/Tests/SupersignTests/Tests/SupersignDeveloperServicesTests.swift index 375925f..51dbaed 100644 --- a/SupersignTests/Tests/SupersignDeveloperServicesTests.swift +++ b/Supersign/Tests/SupersignTests/Tests/SupersignDeveloperServicesTests.swift @@ -7,6 +7,7 @@ // import XCTest +import SuperutilsTestSupport import Supersign class SupersignDeveloperServicesTests: XCTestCase { @@ -15,6 +16,7 @@ class SupersignDeveloperServicesTests: XCTestCase { override func setUp() { super.setUp() + _ = addMockSigner client = .test() } @@ -29,11 +31,11 @@ class SupersignDeveloperServicesTests: XCTestCase { let teams = try XCTTry(client.sendTest(listTeams)) let team = teams.first { $0.status == "active" && $0.memberships.contains { $0.platform == .iOS } }! - let bundle = Bundle(for: Self.self) - let source = try XCTUnwrap(bundle.url(forResource: "test", withExtension: "app")) + let source = try XCTUnwrap(Bundle.module.url(forResource: "test", withExtension: "app")) let context = try XCTTry(SigningContext( udid: Config.current.udid, + deviceName: SigningContext.hostName, teamID: team.id, client: client, signingInfoManager: MemoryBackedSigningInfoManager() diff --git a/SupersignTests/Tests/SupersignGrandSlamTests.swift b/Supersign/Tests/SupersignTests/Tests/SupersignGrandSlamTests.swift similarity index 97% rename from SupersignTests/Tests/SupersignGrandSlamTests.swift rename to Supersign/Tests/SupersignTests/Tests/SupersignGrandSlamTests.swift index 4517635..2a1fad2 100644 --- a/SupersignTests/Tests/SupersignGrandSlamTests.swift +++ b/Supersign/Tests/SupersignTests/Tests/SupersignGrandSlamTests.swift @@ -7,6 +7,7 @@ // import XCTest +import SuperutilsTestSupport @testable import Supersign class TwoFactorAuthenticator: TwoFactorAuthDelegate { @@ -23,6 +24,7 @@ class SupersignGrandSlamTests: XCTestCase { override func setUp() { super.setUp() + _ = addMockSigner client = .test() authenticator = TwoFactorAuthenticator() } diff --git a/SupersignTests/Tests/SupersignSigningTests.swift b/Supersign/Tests/SupersignTests/Tests/SupersignSigningTests.swift similarity index 92% rename from SupersignTests/Tests/SupersignSigningTests.swift rename to Supersign/Tests/SupersignTests/Tests/SupersignSigningTests.swift index 4d0db38..6da3a70 100644 --- a/SupersignTests/Tests/SupersignSigningTests.swift +++ b/Supersign/Tests/SupersignTests/Tests/SupersignSigningTests.swift @@ -6,7 +6,12 @@ // Copyright © 2019 Kabir Oberai. All rights reserved. // +// TODO: Test using mock signer + +#if false + import XCTest +import SuperutilsTestSupport import Supersign class SupersignSigningTests: XCTestCase { @@ -18,11 +23,11 @@ class SupersignSigningTests: XCTestCase { // swiftlint:disable force_try override func setUp() { super.setUp() + _ = addMockSigner client = .test() signerImpl = try! SignerImpl.first() - let bundle = Bundle(for: Self.self) - let source = try! XCTUnwrap(bundle.url(forResource: "test", withExtension: "app")) + let source = try! XCTUnwrap(Bundle.module.url(forResource: "test", withExtension: "app")) let tmp = FileManager.default.temporaryDirectory app = tmp.appendingPathComponent(source.lastPathComponent) if FileManager.default.fileExists(atPath: app.path) { @@ -48,6 +53,7 @@ class SupersignSigningTests: XCTestCase { let context = try XCTTry(SigningContext( udid: Config.current.udid, + deviceName: SigningContext.hostName, teamID: team.id, client: client, signingInfoManager: MemoryBackedSigningInfoManager(), @@ -82,3 +88,5 @@ class SupersignSigningTests: XCTestCase { } } + +#endif diff --git a/SupersignTests/Utilities/Config.swift b/Supersign/Tests/SupersignTests/Utilities/Config.swift similarity index 85% rename from SupersignTests/Utilities/Config.swift rename to Supersign/Tests/SupersignTests/Utilities/Config.swift index 94c86f8..7bc753d 100644 --- a/SupersignTests/Utilities/Config.swift +++ b/Supersign/Tests/SupersignTests/Utilities/Config.swift @@ -23,8 +23,7 @@ struct Config: Decodable { let udid: String static let current: Config = { - class ConfigDummy {} - let url = Bundle(for: ConfigDummy.self).url(forResource: "config", withExtension: "json")! + let url = Bundle.module.url(forResource: "config", withExtension: "json")! // swiftlint:disable:next force_try let data = try! Data(contentsOf: url) // swiftlint:disable:next force_try diff --git a/SupersignTests/Utilities/DeveloperServicesClient+Testing.swift b/Supersign/Tests/SupersignTests/Utilities/DeveloperServicesClient+Testing.swift similarity index 98% rename from SupersignTests/Utilities/DeveloperServicesClient+Testing.swift rename to Supersign/Tests/SupersignTests/Utilities/DeveloperServicesClient+Testing.swift index 838a24d..e7c1821 100644 --- a/SupersignTests/Utilities/DeveloperServicesClient+Testing.swift +++ b/Supersign/Tests/SupersignTests/Utilities/DeveloperServicesClient+Testing.swift @@ -10,6 +10,8 @@ import Foundation import XCTest @testable import Supersign +#if false + extension TCPAnisetteDataProvider { static func test() -> TCPAnisetteDataProvider { @@ -26,6 +28,8 @@ extension NetcatAnisetteDataProvider { } +#endif + extension SupersetteDataProvider { static func test() -> SupersetteDataProvider { diff --git a/Supersign/Tests/SupersignTests/Utilities/MockSigner.swift b/Supersign/Tests/SupersignTests/Utilities/MockSigner.swift new file mode 100644 index 0000000..988a3df --- /dev/null +++ b/Supersign/Tests/SupersignTests/Utilities/MockSigner.swift @@ -0,0 +1,16 @@ +import Foundation +import SignerSupport + +let addMockSigner: () = { + add_signer( + "MockSigner", + { appDir, certData, certLen, privKeyData, privKeyLen, entitlements, numEntitlements, progress, exception in + exception.initialize(to: strdup("Mock signer not implemented")) + return 1 + }, + { path, outLen, exception in + exception.initialize(to: strdup("Mock analyzer not implemented")) + return nil + } + ) +}() diff --git a/SupersignTests/Utilities/ResultWaiter.swift b/Supersign/Tests/SupersignTests/Utilities/ResultWaiter.swift similarity index 100% rename from SupersignTests/Utilities/ResultWaiter.swift rename to Supersign/Tests/SupersignTests/Utilities/ResultWaiter.swift diff --git a/SupersignTests/config/config-template.json b/Supersign/Tests/SupersignTests/config/config-template.json similarity index 100% rename from SupersignTests/config/config-template.json rename to Supersign/Tests/SupersignTests/config/config-template.json