// RUN: rm -rf %t && mkdir %t // RUN: %target-build-swift %s -o %t/a.out3 -swift-version 3 && %target-run %t/a.out3 // RUN: %target-build-swift %s -o %t/a.out4 -swift-version 4 && %target-run %t/a.out4 // REQUIRES: executable_test // REQUIRES: objc_interop // UNSUPPORTED: OS=tvos import Intents import StdlibUnittest let IntentsTestSuite = TestSuite("Intents") #if swift(>=4) let swiftVersion = "4" #else let swiftVersion = "3" #endif if #available(OSX 10.12, iOS 10.0, watchOS 3.2, *) { IntentsTestSuite.test("ErrorDomain/\(swiftVersion)") { expectEqual("IntentsErrorDomain", INIntentErrorDomain) } IntentsTestSuite.test("extension/\(swiftVersion)") { expectEqual("IntentsErrorDomain", INIntentError._nsErrorDomain) } } #if os(iOS) if #available(iOS 11.0, *) { IntentsTestSuite.test("INParameter KeyPath/\(swiftVersion)") { let param = INParameter(keyPath: \INRequestRideIntent.pickupLocation) expectEqual("pickupLocation", param?.parameterKeyPath) if let typ = param?.parameterClass { expectEqual(INRequestRideIntent.self, typ) } else { expectUnreachable() } } IntentsTestSuite.test("INSetProfileInCarIntent/defaultProfile availability/\(swiftVersion)") { func f(profile: INSetProfileInCarIntent) { var isDefaultProfile = profile.isDefaultProfile expectType(Bool?.self, &isDefaultProfile) #if !swift(>=4) var defaultProfile = profile.defaultProfile expectType(Int?.self, &defaultProfile) #endif } } } #endif #if os(iOS) || os(watchOS) if #available(iOS 10.0, watchOS 3.2, *) { IntentsTestSuite.test("INRideOption usesMeteredFare/\(swiftVersion)") { func f(rideOption: inout INRideOption) { #if swift(>=4) rideOption.usesMeteredFare = true expectType(Bool?.self, &rideOption.usesMeteredFare) expectTrue(rideOption.usesMeteredFare ?? false) #else rideOption.usesMeteredFare = NSNumber(value: true) expectType(NSNumber?.self, &rideOption.usesMeteredFare) expectTrue(rideOption.usesMeteredFare?.boolValue ?? false) #endif } } } #endif #if os(iOS) if #available(iOS 11.0, *) { IntentsTestSuite.test("INSetProfileInCarIntent Initializers/\(swiftVersion)") { #if swift(>=4) _ = INSetProfileInCarIntent() _ = INSetProfileInCarIntent(isDefaultProfile: nil) _ = INSetProfileInCarIntent(profileName: nil) _ = INSetProfileInCarIntent(profileName: nil, isDefaultProfile: nil) _ = INSetProfileInCarIntent(profileNumber: nil) _ = INSetProfileInCarIntent(profileNumber: nil, isDefaultProfile: nil) _ = INSetProfileInCarIntent(profileNumber: nil, profileName: nil) _ = INSetProfileInCarIntent( profileNumber: nil, profileName: nil, isDefaultProfile: nil) #else _ = INSetProfileInCarIntent() _ = INSetProfileInCarIntent(defaultProfile: nil) _ = INSetProfileInCarIntent(profileName: nil) _ = INSetProfileInCarIntent(profileName: nil, defaultProfile: nil) _ = INSetProfileInCarIntent(profileNumber: nil) _ = INSetProfileInCarIntent(profileNumber: nil, defaultProfile: nil) _ = INSetProfileInCarIntent(profileNumber: nil, profileName: nil) _ = INSetProfileInCarIntent( profileNumber: nil, profileName: nil, defaultProfile: nil) #endif } } #endif runAllTests()