Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get watchOS tests running locally #233

Merged
merged 2 commits into from
May 31, 2020
Merged

Conversation

dfed
Copy link
Collaborator

@dfed dfed commented May 30, 2020

This PR updates XCTest-watchOS to point at dfed/XCTest-watchOS#4, and adds all of our test files to the watchOS app. All tests pass:

Executing KeychainErrorTests.test_description_createsHumanReadableDescription
- PASSED: KeychainErrorTests.test_description_createsHumanReadableDescription
Executing KeychainErrorTests.test_initStatus_createsNotFoundErrorFrom_errSecItemNotFound
- PASSED: KeychainErrorTests.test_initStatus_createsNotFoundErrorFrom_errSecItemNotFound
Executing KeychainErrorTests.test_initStatus_createsUserCancelledFrom_errSecUserCanceled
- PASSED: KeychainErrorTests.test_initStatus_createsUserCancelledFrom_errSecUserCanceled
Executing KeychainErrorTests.test_initStatus_createsUserCancelledFrom_errSecAuthFailed
- PASSED: KeychainErrorTests.test_initStatus_createsUserCancelledFrom_errSecAuthFailed
Executing KeychainErrorTests.test_initStatus_createsMissingEntitlementFrom_errSecMissingEntitlement
- PASSED: KeychainErrorTests.test_initStatus_createsMissingEntitlementFrom_errSecMissingEntitlement
Executing KeychainErrorTests.test_initStatus_createsCouldNotAccessKeychainFrom_errSecNotAvailable
- PASSED: KeychainErrorTests.test_initStatus_createsCouldNotAccessKeychainFrom_errSecNotAvailable
Executing MigrationErrorTests.test_description_createsHumanReadableDescription
- PASSED: MigrationErrorTests.test_description_createsHumanReadableDescription
Executing ValetTests.test_init_createsCorrectBackingService
- PASSED: ValetTests.test_init_createsCorrectBackingService
Executing ValetTests.test_init_createsCorrectBackingService_sharedAccess
- PASSED: ValetTests.test_init_createsCorrectBackingService_sharedAccess
Executing ValetTests.test_init_createsCorrectBackingService_cloud
- PASSED: ValetTests.test_init_createsCorrectBackingService_cloud
Executing ValetTests.test_init_createsCorrectBackingService_cloudSharedAccess
- PASSED: ValetTests.test_init_createsCorrectBackingService_cloudSharedAccess
Executing ValetTests.test_valetsWithSameConfiguration_areEqual
- PASSED: ValetTests.test_valetsWithSameConfiguration_areEqual
Executing ValetTests.test_differentValetFlavorsWithEquivalentConfiguration_areNotEqual
- PASSED: ValetTests.test_differentValetFlavorsWithEquivalentConfiguration_areNotEqual
Executing ValetTests.test_valetsWithDifferingIdentifier_areNotEqual
- PASSED: ValetTests.test_valetsWithDifferingIdentifier_areNotEqual
Executing ValetTests.test_valetsWithDifferingAccessibility_areNotEqual
- PASSED: ValetTests.test_valetsWithDifferingAccessibility_areNotEqual
Executing ValetTests.test_migrateObjectsMatching_failsForBadQueries
- PASSED: ValetTests.test_migrateObjectsMatching_failsForBadQueries
Executing ConfigurationTests.test_description_valet_mirrorsLegacyName
- PASSED: ConfigurationTests.test_description_valet_mirrorsLegacyName
Executing ConfigurationTests.test_description_iCloud_mirrorsLegacyName
- PASSED: ConfigurationTests.test_description_iCloud_mirrorsLegacyName
Executing ConfigurationTests.test_description_secureEnclave_mirrorsLegacyName
- PASSED: ConfigurationTests.test_description_secureEnclave_mirrorsLegacyName
Executing ConfigurationTests.test_description_singlePromptSecureEnclave_mirrorsLegacyName
- PASSED: ConfigurationTests.test_description_singlePromptSecureEnclave_mirrorsLegacyName
Executing ConfigurationTests.test_accessibility_valet_returnsPassedInAccessibility
- PASSED: ConfigurationTests.test_accessibility_valet_returnsPassedInAccessibility
Executing ConfigurationTests.test_accessibility_iCloud_returnsPassedInAccessibility
- PASSED: ConfigurationTests.test_accessibility_iCloud_returnsPassedInAccessibility
Executing ConfigurationTests.test_accessibility_secureEnclave_returnsWhenPassCodeSetThisDeviceOnly
- PASSED: ConfigurationTests.test_accessibility_secureEnclave_returnsWhenPassCodeSetThisDeviceOnly
Executing ConfigurationTests.test_accessibility_singlePromptSecureEnclave_returnsWhenPassCodeSetThisDeviceOnly
- PASSED: ConfigurationTests.test_accessibility_singlePromptSecureEnclave_returnsWhenPassCodeSetThisDeviceOnly
Executing ConfigurationTests.test_prettyDescription_valet_isHumanReadable
- PASSED: ConfigurationTests.test_prettyDescription_valet_isHumanReadable
Executing ConfigurationTests.test_prettyDescription_iCloud_isHumanReadable
- PASSED: ConfigurationTests.test_prettyDescription_iCloud_isHumanReadable
Executing ConfigurationTests.test_prettyDescription_secureEnclave_isHumanReadable
- PASSED: ConfigurationTests.test_prettyDescription_secureEnclave_isHumanReadable
Executing ConfigurationTests.test_prettyDescription_singlePromptSecureEnclave_isHumanReadable
- PASSED: ConfigurationTests.test_prettyDescription_singlePromptSecureEnclave_isHumanReadable
Executing CloudTests.test_synchronizableValet_isDistinctFromVanillaValetWithEqualConfiguration
- PASSED: CloudTests.test_synchronizableValet_isDistinctFromVanillaValetWithEqualConfiguration
Executing CloudTests.test_synchronizableValets_withEquivalentConfigurationsAreEqual
- PASSED: CloudTests.test_synchronizableValets_withEquivalentConfigurationsAreEqual
Executing SecureEnclaveTests.test_init_createsCorrectBackingService
- PASSED: SecureEnclaveTests.test_init_createsCorrectBackingService
Executing SecureEnclaveTests.test_init_createsCorrectBackingService_sharedAccess
- PASSED: SecureEnclaveTests.test_init_createsCorrectBackingService_sharedAccess
Executing SecureEnclaveTests.test_secureEnclaveValetsWithEqualConfiguration_haveEqualPointers
- PASSED: SecureEnclaveTests.test_secureEnclaveValetsWithEqualConfiguration_haveEqualPointers
Executing CloudAccessibilityTests.test_description_mirrorsAccessibilityCounterpartDescription
- PASSED: CloudAccessibilityTests.test_description_mirrorsAccessibilityCounterpartDescription
Executing CloudAccessibilityTests.test_secAccessibilityAttribute_mirrorsAccessibilityCounterpartSecAccessibilityAttribute
- PASSED: CloudAccessibilityTests.test_secAccessibilityAttribute_mirrorsAccessibilityCounterpartSecAccessibilityAttribute
Executing SecureEnclaveIntegrationTests.test_canAccessKeychain
- PASSED: SecureEnclaveIntegrationTests.test_canAccessKeychain
Executing SecureEnclaveIntegrationTests.test_canAccessKeychain_sharedAccessGroup
- PASSED: SecureEnclaveIntegrationTests.test_canAccessKeychain_sharedAccessGroup
Executing SecureEnclaveIntegrationTests.test_canAccessKeychain_sharedAppGroup
- PASSED: SecureEnclaveIntegrationTests.test_canAccessKeychain_sharedAppGroup
Executing SecureEnclaveIntegrationTests.test_secureEnclaveValetsWithEqualConfiguration_canAccessSameDataAndReturnError:
- PASSED: SecureEnclaveIntegrationTests.test_secureEnclaveValetsWithEqualConfiguration_canAccessSameDataAndReturnError:
Executing SecureEnclaveIntegrationTests.test_secureEnclaveValetsWithDifferingAccessControl_canNotAccessSameDataAndReturnError:
- PASSED: SecureEnclaveIntegrationTests.test_secureEnclaveValetsWithDifferingAccessControl_canNotAccessSameDataAndReturnError:
Executing SecureEnclaveIntegrationTests.test_migrateObjectsMatchingQuery_failsForBadQuery
- PASSED: SecureEnclaveIntegrationTests.test_migrateObjectsMatchingQuery_failsForBadQuery
Executing SecureEnclaveIntegrationTests.test_migrateObjectsFromValet_migratesSuccessfullyToSecureEnclaveAndReturnError:
- PASSED: SecureEnclaveIntegrationTests.test_migrateObjectsFromValet_migratesSuccessfullyToSecureEnclaveAndReturnError:
Executing SecureEnclaveIntegrationTests.test_migrateObjectsFromValet_migratesSuccessfullyAfterCanAccessKeychainCallsAndReturnError:
- PASSED: SecureEnclaveIntegrationTests.test_migrateObjectsFromValet_migratesSuccessfullyAfterCanAccessKeychainCallsAndReturnError:
Executing ValetIntegrationTests.test_canAccessKeychain
- PASSED: ValetIntegrationTests.test_canAccessKeychain
Executing ValetIntegrationTests.test_init_createsCorrectBackingService
- PASSED: ValetIntegrationTests.test_init_createsCorrectBackingService
Executing ValetIntegrationTests.test_init_createsCorrectBackingService_sharedAccess
- PASSED: ValetIntegrationTests.test_init_createsCorrectBackingService_sharedAccess
Executing ValetIntegrationTests.test_init_createsCorrectBackingService_cloud
- PASSED: ValetIntegrationTests.test_init_createsCorrectBackingService_cloud
Executing ValetIntegrationTests.test_init_createsCorrectBackingService_cloudSharedAccess
- PASSED: ValetIntegrationTests.test_init_createsCorrectBackingService_cloudSharedAccess
Executing ValetIntegrationTests.test_canAccessKeychain_sharedAccessGroup
- PASSED: ValetIntegrationTests.test_canAccessKeychain_sharedAccessGroup
Executing ValetIntegrationTests.test_canAccessKeychain_sharedAppGroup
- PASSED: ValetIntegrationTests.test_canAccessKeychain_sharedAppGroup
Executing ValetIntegrationTests.test_canAccessKeychain_Performance
Test Case 'test_canAccessKeychain_Performance()' measured [Time, seconds] average: 0.001, relative standard deviation: 67.963%, values: [0.002179, 0.000587, 0.000577, 0.000573, 0.000587, 0.000582, 0.000575, 0.000577, 0.000605, 0.000585]
- PASSED: ValetIntegrationTests.test_canAccessKeychain_Performance
Executing ValetIntegrationTests.test_containsObjectForKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_containsObjectForKeyAndReturnError:
Executing ValetIntegrationTests.test_allKeysAndReturnError:
- PASSED: ValetIntegrationTests.test_allKeysAndReturnError:
Executing ValetIntegrationTests.test_allKeys_doesNotReflectValetImplementationDetailsAndReturnError:
- PASSED: ValetIntegrationTests.test_allKeys_doesNotReflectValetImplementationDetailsAndReturnError:
Executing ValetIntegrationTests.test_allKeys_remainsUntouchedForUnequalValetsAndReturnError:
- PASSED: ValetIntegrationTests.test_allKeys_remainsUntouchedForUnequalValetsAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_throwsItemNotFoundForKeyWithNoValueAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_throwsItemNotFoundForKeyWithNoValueAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_retrievesStringForValidKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_retrievesStringForValidKeyAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_equivalentValetsCanAccessSameDataAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_equivalentValetsCanAccessSameDataAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_withDifferingIdentifier_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_withDifferingIdentifier_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_withDifferingAccessibility_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_withDifferingAccessibility_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_withEquivalentConfigurationButDifferingFlavor_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_withEquivalentConfigurationButDifferingFlavor_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_canReadItemsWithout_kSecUseDataProtectionKeychain_when_kSecUseDataProtectionKeychain_isSetToTrueInKeychainQueryAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_canReadItemsWithout_kSecUseDataProtectionKeychain_when_kSecUseDataProtectionKeychain_isSetToTrueInKeychainQueryAndReturnError:
Executing ValetIntegrationTests.test_setStringForKey_successfullyUpdatesExistingKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_setStringForKey_successfullyUpdatesExistingKeyAndReturnError:
Executing ValetIntegrationTests.test_setStringForKey_throwsEmptyValueOnInvalidValueAndReturnError:
- PASSED: ValetIntegrationTests.test_setStringForKey_throwsEmptyValueOnInvalidValueAndReturnError:
Executing ValetIntegrationTests.test_setStringForKey_throwsEmptyKeyOnInvalidKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_setStringForKey_throwsEmptyKeyOnInvalidKeyAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_throwsItemNotFoundWhenNoObjectExistsAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_throwsItemNotFoundWhenNoObjectExistsAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_succeedsForValidKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_succeedsForValidKeyAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_equivalentValetsCanAccessSameDataAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_equivalentValetsCanAccessSameDataAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_withDifferingIdentifier_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_withDifferingIdentifier_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_withDifferingAccessibility_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_withDifferingAccessibility_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_withEquivalentConfigurationButDifferingFlavor_throwsItemNotFoundAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_withEquivalentConfigurationButDifferingFlavor_throwsItemNotFoundAndReturnError:
Executing ValetIntegrationTests.test_setObjectForKey_successfullyUpdatesExistingKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_setObjectForKey_successfullyUpdatesExistingKeyAndReturnError:
Executing ValetIntegrationTests.test_setObjectForKey_throwsEmptyKeyOnInvalidKeyAndReturnError:
- PASSED: ValetIntegrationTests.test_setObjectForKey_throwsEmptyKeyOnInvalidKeyAndReturnError:
Executing ValetIntegrationTests.test_setObjectForKey_throwsEmptyValueOnEmptyDataAndReturnError:
- PASSED: ValetIntegrationTests.test_setObjectForKey_throwsEmptyValueOnEmptyDataAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_succeedsForDataBackedByStringAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_succeedsForDataBackedByStringAndReturnError:
Executing ValetIntegrationTests.test_stringForKey_failsForDataNotBackedByStringAndReturnError:
- PASSED: ValetIntegrationTests.test_stringForKey_failsForDataNotBackedByStringAndReturnError:
Executing ValetIntegrationTests.test_objectForKey_succeedsForStringsAndReturnError:
- PASSED: ValetIntegrationTests.test_objectForKey_succeedsForStringsAndReturnError:
Executing ValetIntegrationTests.test_concurrentSetAndRemoveOperations
- PASSED: ValetIntegrationTests.test_concurrentSetAndRemoveOperations
Executing ValetIntegrationTests.test_stringForKey_canReadDataWrittenOnAnotherThread
- PASSED: ValetIntegrationTests.test_stringForKey_canReadDataWrittenOnAnotherThread
Executing ValetIntegrationTests.test_stringForKey_canReadDataWrittenToValetAllocatedOnDifferentThread
- PASSED: ValetIntegrationTests.test_stringForKey_canReadDataWrittenToValetAllocatedOnDifferentThread
Executing ValetIntegrationTests.test_removeObjectForKey_succeedsWhenKeyIsNotPresentAndReturnError:
- PASSED: ValetIntegrationTests.test_removeObjectForKey_succeedsWhenKeyIsNotPresentAndReturnError:
Executing ValetIntegrationTests.test_removeObjectForKey_succeedsWhenKeyIsPresentAndReturnError:
- PASSED: ValetIntegrationTests.test_removeObjectForKey_succeedsWhenKeyIsPresentAndReturnError:
Executing ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingAccessibilityAndReturnError:
- PASSED: ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingAccessibilityAndReturnError:
Executing ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingIdentifierAndReturnError:
- PASSED: ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingIdentifierAndReturnError:
Executing ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingClassesAndReturnError:
- PASSED: ValetIntegrationTests.test_removeObjectForKey_isDistinctForDifferingClassesAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsMatching_failsIfQueryHasNoInputClassAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsMatching_failsIfQueryHasNoInputClassAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsMatching_failsIfNoItemsMatchQueryAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsMatching_failsIfNoItemsMatchQueryAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsMatching_bailsOutIfConflictExistsToMigrateAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsMatching_bailsOutIfConflictExistsToMigrateAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsMatching_withAccountNameAsData_doesNotRaiseExceptionAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsMatching_withAccountNameAsData_doesNotRaiseExceptionAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsFromValet_migratesSingleKeyValuePairSuccessfullyAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsFromValet_migratesSingleKeyValuePairSuccessfullyAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsFromValet_migratesMultipleKeyValuePairsSuccessfullyAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsFromValet_migratesMultipleKeyValuePairsSuccessfullyAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsFromValet_removesOnCompletionWhenRequestedAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsFromValet_removesOnCompletionWhenRequestedAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsFromValet_leavesKeychainUntouchedWhenConflictsExistAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsFromValet_leavesKeychainUntouchedWhenConflictsExistAndReturnError:
Executing ValetIntegrationTests.test_migrateObjectsFromValetRemoveOnCompletion_migratesDataSuccessfullyWhenBothValetsHavePreviouslyCalled_canAccessKeychainAndReturnError:
- PASSED: ValetIntegrationTests.test_migrateObjectsFromValetRemoveOnCompletion_migratesDataSuccessfullyWhenBothValetsHavePreviouslyCalled_canAccessKeychainAndReturnError:
Executing CloudIntegrationTests.test_synchronizableValet_isDistinctFromVanillaValetWithEqualConfigurationAndReturnError:
- PASSED: CloudIntegrationTests.test_synchronizableValet_isDistinctFromVanillaValetWithEqualConfigurationAndReturnError:
Executing CloudIntegrationTests.test_setStringForKeyAndReturnError:
- PASSED: CloudIntegrationTests.test_setStringForKeyAndReturnError:
Executing CloudIntegrationTests.test_removeObjectForKeyAndReturnError:
- PASSED: CloudIntegrationTests.test_removeObjectForKeyAndReturnError:
Executing CloudIntegrationTests.test_canAccessKeychain
- PASSED: CloudIntegrationTests.test_canAccessKeychain
ALL TESTS PASSED

@dfed dfed requested review from fdiaz and NickEntin May 30, 2020 22:43
@codecov-commenter
Copy link

Codecov Report

Merging #233 into develop--4.0 will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff              @@
##           develop--4.0     #233   +/-   ##
=============================================
  Coverage         85.30%   85.30%           
=============================================
  Files                15       15           
  Lines               966      966           
=============================================
  Hits                824      824           
  Misses              142      142           

@NickEntin
Copy link
Collaborator

NickEntin commented May 30, 2020

Should we point at master after dfed/XCTest-watchOS#4 is merged?

@dfed
Copy link
Collaborator Author

dfed commented May 30, 2020

Yeah I'll point this at master once it's merged.

@dfed dfed merged commit 8cea1ad into develop--4.0 May 31, 2020
@dfed dfed deleted the dfed--get-watch-tests-running branch May 31, 2020 00:22
dfed added a commit that referenced this pull request Jun 13, 2020
* Do not build branch build on every push on PR branches

* Update cocoapods

* Start validating podspec on Xcode 11

* Drop Xcode 9 and 10 support

* Swift version to 5.0

* Bump minor version of osx_image on .travis.yml in order to access simulators for older OSes

* Bump destination for iOS 11 to get CI working

* Update tests to reflext iOS 13 simulator's inability to store items that require a passcode to be set

* Enable running CI on iOS 10, tvOS 10, and watchOS 3

* Allow kSecAttrService to be a customer-friendly string on Mac

* Add a section to the README on choosing the best identifier on a Mac

* Update README documentation on choosing a user-friendly identifier

* Add ObjC compat layer for new initializers

* Remove Always accessibility specifier

* Ensure test environment is signed before testing shared access keychain

* Add migration helper methods

* Use throws rather than return types to indicate error.

* Get rid of ErrorHandler

* couldNotReadKeychain -> .couldNotAccessKeychain

* Make Objective-C bridging methods for accessing values with prompt redundant

* Swift 5 updates

* Bring API in line with Apple's naming guidelines

* Adopt Swift 5 syntax, and enable support for SinglePromptSecureEnclaveValet on tvOS

* Fix migrateObjectsFromAlwaysAccessible methods

* Fix warning introduced by merge

* Bump version to 4.0.0

* Get new migration methods working with Catalina

* Update README

* Set up code coverage

* Run more tests on a single machine

* Standardize method naming

* Run test coverage on every target

* Modernize doc comments

* Remove returns

* Use SeeAlso

* Modernize doc comments

* Add Warning

* Add objc example

* findOrCreate(explicitlySet must use a key that combines service, configuration, accessibility, and sharedAccessGroup to prevent returning the wrong Valet

* Utilize testEnvironmentIsSigned before using shared keychains

* Use explicitlySetSharedAccessGroupIdentifier when dealing with shared access groups

* removeAllObjects() to avoid collisions in tests

* Fail test on setup failure

* Update whitespace

* containsObject(forKey should throw in Swift

* Introduce Throws doc comment

* Catch closer to the source

* Add simple Objective-C compatibility layer tests

* Update copyright

* Fixup whitespace

* try? less in tests

* If deleting items throws, then we should surface the failure.

* Remove runtime assert, since we will throw the error anyways

* Update Mac tests to use try on containsObject

* Add description to KeychainError

* Fix macOS tests after throwing on removeAllObjects in setUp

* Increase test coverage of error files

* Use permutation valet rather than vanillaValet multiple times

* Indentation and test separation

* Add comment re why we're checking for errSecInteractionNotAllowed

* Better comment formatting

* Use Throws rather than Note

* Add final to test classes

* Rename internal containsObject methods to performCopy

* [Valet 4.0] Add explicit tests for CloudAccessibility (#210)

* [Valet 4.0] Get SinglePromptSecureEnclaveIntegrationTests running on tvOS (#209)

* Get SinglePromptSecureEnclaveIntegrationTests running on tvOS

* Make SinglePromptSecureEnclaveValet available on tvOS 11, not tvOS 10

* [Valet 4.0] Add explicit tests for Configuration (#211)

* Use CaseIterable instead of allValues where possible (#212)

* Get ValetTouchIDTest building again

* Require that App ID Prefix be explicitly passed into Shared Access Group Valets (#218)

* Require that App ID Prefix be explicitly passed into Shared Access Group Valets

* Add App ID prefix to tests

* Create and adopt SharedAccessGroupIdentifier

* Update documentation

* [Valet 4.0] Update migration guide (#221)

* Update migration guide for Valet 4.0

* NickEntin feedback

Co-Authored-By: Nick Entin <nckentn@gmail.com>

* Remove version from Package.swift (#223)

* Add headerdoc comment for removing an object from the keychain

* Update headerdoc comments for parameters of type SharedAccessGroupIdentifier

* Update headerdoc comment for migration method

* Update headerdoc comments for objc compatibility methods

* Rename MigrationError cases with `InQueryResult` to `ToMigrate` (#227)

* Rename InQueryResult -> ToMigrate

* Update comments

* Fix typo in README (#229)

* Create 'Changing an Accessibility Value After Persisting Data' section in README (#232)

* Use correct Valet name in README example

* Create Changing an Accessibility Value After Persisting Data section

* Get watchOS tests running locally (#233)

* Support sharing keychain items using App Groups (#230)

* Add App Group group.valet.test

* Update syntax for Swift 5

* Enable SharedAccessGroup code to semantically handle AppGroups. Rename SharedAccessGroup -> SharedGroup

* README updates

* Add sharedAppGroupIdentifier tests to Valet

* Add sharedAppGroupIdentifier test to SecureEnclave

* Add sharedAppGroupIdentifier test to SinglePromptSecureEnclave

* Add objective-c compatibility layer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants