๐Ÿงช Palace iOS Test Report

Generated: 2026-03-06 16:08:20 UTC | Commit: fde227c24b6f | Branch: feature/PP-3474-oidc-patron-auth

โœ… ALL TESTS PASSED

2966 tests completed in 2m 55s

2966
Total Tests
2965
Passed
0
Failed
1
Skipped
2m 55s
Duration
N/A
Coverage

๐Ÿ“Š Tests by Class

Class Total Passed Failed Duration
โœ… AccessLintComplianceTests 11 11 0 86ms
โœ… AccessibilityAnnouncementCenterTests 21 21 0 1.13s
โœ… AccessibilityLabelTests 9 9 0 28ms
โœ… AccountAuthDocCarryoverTests 5 5 0 550ms
โœ… AccountAwareNetworkTests 10 10 0 560ms
โœ… AccountDetailCredentialStateTests 8 8 0 450ms
โœ… AccountDetailPINVisibilityTests 3 3 0 28ms
โœ… AccountDetailViewModelGapTests 1 1 0 164ms
โœ… AccountDetailViewModelTests 19 19 0 73ms
โœ… AccountDetailsURLTests 17 17 0 303ms
โœ… AccountModelGapTests 9 9 0 682ms
โœ… AccountModelTests 16 16 0 63ms
โœ… AccountProfileDocumentTests 2 2 0 16ms
โœ… AccountSwitchCleanupTests 8 8 0 384ms
โœ… AccountsManagerCacheTests 15 15 0 223ms
โœ… AccountsManagerGapTests 3 3 0 23ms
โœ… AccountsManagerTests 52 52 0 6.03s
โœ… AdobeCertificateGapTests 7 7 0 21ms
โœ… AdobeDRMErrorGapTests 3 3 0 36ms
โœ… AdobeDRMServiceGapTests 2 2 0 6ms
โœ… AlertModelRetryTests 15 15 0 90ms
โœ… AlertModelTests 2 2 0 4ms
โœ… AnnouncementTests 3 3 0 14ms
โœ… AppRouteTests 5 5 0 16ms
โœ… AppTabRouterGapTests 4 4 0 38ms
โœ… AudioBookmarkGapTests 6 6 0 28ms
โœ… AudioInterruptionLogicTests 6 6 0 12ms
โœ… AudiobookAccessibilityTests 7 7 0 19ms
โœ… AudiobookBookmarkBusinessLogicTests 17 17 0 4.51s
โœ… AudiobookDataManagerEmptyQueueTests 1 1 0 322ms
โœ… AudiobookDataManagerErrorHandlingTests 5 5 0 3.37s
โœ… AudiobookDataManagerModelsTests 20 20 0 85ms
โœ… AudiobookDataManagerNetworkSyncTests 5 5 0 2.67s
โœ… AudiobookDataManagerStoreRecoveryTests 5 5 0 1.09s
โœ… AudiobookFileLoggerTests 9 9 0 57ms
โœ… AudiobookPlaybackTests 26 26 0 744ms
โœ… AudiobookSessionErrorTests 8 8 0 20ms
โœ… AudiobookSessionManagerTests 3 3 0 523ms
โœ… AudiobookSleepTimerIntegrationTests 5 5 0 3.41s
โœ… AudiobookStorageLocationTests 3 3 0 34ms
โœ… AudiobookTOCTests 18 18 0 316ms
โœ… AudiobookTimeTrackerLifecycleTests 5 5 0 366ms
โœ… AudiobookTimeTrackerTests 9 9 0 220ms
โœ… AudiobookmarkTests 4 4 0 33ms
โœ… AuthErrorCategoryTests 12 12 0 1.68s
โœ… BackgroundListenerTests 2 2 0 411ms
โœ… BearerTokenRefreshTests 4 4 0 11ms
โœ… BookButtonMapperHoldReadyTests 12 12 0 64ms
โœ… BookButtonMapperTests 14 14 0 30ms
โœ… BookCellModelCacheInvalidationTests 8 8 0 79ms
โœ… BookCellModelCachePrefetchSafetyTests 9 9 0 761ms
โœ… BookCellModelCacheTests 25 25 0 797ms
โœ… BookCellModelStateTests 16 16 0 4.67s
โœ… BookDetailViewModelTests 54 54 0 3.56s
โœ… BookPreviewTests 4 4 0 26ms
โœ… BookmarkBusinessLogicExtendedTests 10 10 0 1.27s
โœ… BookmarkDeletionLogTests 3 3 0 260ms
โœ… BookmarkDeviceIdMatchingTests 3 3 0 321ms
โœ… BookmarkExistenceTests 4 4 0 471ms
โœ… BookmarkReauthenticationTests 1 1 0 86ms
โœ… BookmarkSortingTests 1 1 0 173ms
โœ… BookmarkSyncTests 3 3 0 266ms
โœ… BorrowErrorMessageTests 13 13 0 49ms
โœ… ButtonStateTests 22 22 0 3.95s
โœ… C64ConversionTests 6 6 0 92ms
โœ… CarPlayChapterListTests 3 3 0 54ms
โœ… CarPlayIntegrationTests 2 2 0 28ms
โœ… CarPlayLibraryRefreshTests 3 3 0 9ms
โœ… CarPlayNowPlayingTemplateTests 4 4 0 530ms
โœ… CarPlayOpenAppAlertTests 4 4 0 7ms
โœ… CarPlayPlaybackErrorTests 5 5 0 174ms
โœ… CarPlayTests 12 12 0 46ms
โœ… CarPlayTimeTrackingTests 3 3 0 170ms
โœ… CatalogAccessibilityTests 8 8 0 22ms
โœ… CatalogCacheMetadataTests 20 20 0 38ms
โœ… CatalogFilterGroupModelTests 17 17 0 82ms
โœ… CatalogFilterGroupTests 3 3 0 14ms
โœ… CatalogFilterModelTests 17 17 0 64ms
โœ… CatalogFilterTests 3 3 0 28ms
โœ… CatalogLaneModelStructTests 18 18 0 272ms
โœ… CatalogLaneModelTests 4 4 0 23ms
โœ… CatalogLaneMoreViewModelTests 33 33 0 159ms
โœ… CatalogLaneRowViewAccessibilityTests 6 6 0 28ms
โœ… CatalogLaneSortingTests 4 4 0 138ms
โœ… CatalogRepositoryTests 20 20 0 874ms
โœ… CatalogSearchViewModelRegistryUpdateTests 5 5 0 147ms
โœ… CatalogSearchViewModelTests 47 47 0 7.77s
โœ… CatalogSortServiceTests 14 14 0 84ms
โœ… CatalogViewModelIntegrationTests 11 11 0 78ms
โœ… CatalogViewModelOptimisticLoadingTests 5 5 0 61ms
โœ… ConcurrentBookStateTests 3 3 0 38ms
โœ… ConcurrentDownloadStateTests 3 3 0 24ms
โœ… ContinuousPlaybackTrackingTests 3 3 0 268ms
โœ… CrossDomain401Tests 8 8 0 29ms
โœ… DRMFulfilledPublicationTests 6 6 0 19ms
โœ… DateExtensionTests 9 9 0 29ms
โœ… DateFormattingTests 4 4 0 8ms
โœ… Date_NYPLAdditionsTests 7 7 0 544ms
โœ… DefaultCatalogAPITests 20 20 0 141ms
โœ… DeriveInitialStateTests 4 4 0 26ms
โœ… DeviceLogCollectorGapTests 2 2 0 4.57s
โœ… DeviceLogCollectorTests 9 9 0 15.41s
โœ… DeviceOrientationTests 7 7 0 34ms
โœ… DeviceSpecificErrorMonitorTests 11 11 0 49ms
โœ… DiskBudgetTests 2 2 0 151ms
โœ… DownloadCoordinatorIntegrationTests 10 10 0 88ms
โœ… DownloadCoordinatorTests 11 11 0 46ms
โœ… DownloadDiskSpaceTests 2 2 0 4ms
โœ… DownloadErrorInfoTests 3 3 0 13ms
โœ… DownloadErrorRecoveryPolicyTests 10 10 0 143ms
โœ… DownloadErrorRecoveryTests 3 3 0 16ms
โœ… DownloadInfoTests 5 5 0 15ms
โœ… DownloadPersistenceStoreTests 5 5 0 992ms
โœ… DownloadProgressPublisherTests 2 2 0 22ms
โœ… DownloadQueueIntegrationTests 3 3 0 102ms
โœ… DownloadRedirectTests 7 7 0 16ms
โœ… DownloadSlotManagementTests 5 5 0 25ms
โœ… DownloadStateMachineIntegrationTests 9 9 0 56ms
โœ… DownloadStateMachineTests 5 5 0 39ms
โœ… DownloadWatchdogTests 3 3 0 121ms
โœ… EPUBModuleTests 4 4 0 19ms
โœ… EPUBPositionTests 8 8 0 13ms
โœ… EPUBSearchViewModelTests 18 18 0 108ms
โœ… EPUBToolbarToggleTests 14 14 0 54ms
โœ… EmailAddressTests 16 16 0 282ms
โœ… EpubSampleFactoryTests 11 11 0 226ms
โœ… ErrorActivityTrackerTests 12 12 0 55ms
โœ… ErrorDetailTests 12 12 0 591ms
โœ… ErrorDetailViewControllerGapTests 3 3 0 49ms
โœ… ErrorDetailViewControllerTests 18 18 0 284ms
โœ… ErrorLogExporterTests 5 5 0 1.99s
โœ… FacetEnumTests 3 3 0 16ms
โœ… FacetToolbarAccessibilityTests 5 5 0 10ms
โœ… FacetViewModelTests 18 18 0 54ms
โœ… FileURLGenerationTests 3 3 0 60ms
โœ… FocusIndicationTests 7 7 0 45ms
โœ… GeneralCacheTests 18 18 0 92ms
โœ… GroupEnumTests 1 1 0 2ms
โœ… HTMLTextViewTests 70 70 0 11.64s
โœ… HoldsBadgeCountTests 9 9 0 396ms
โœ… HoldsBookViewModelTests 8 8 0 50ms
โœ… HoldsViewModelTests 23 23 0 1.16s
โœ… KeyboardNavigationHandlerTests 16 16 0 65ms
โœ… KeyboardVoiceOverTests 7 7 0 466ms
โœ… LCPAudiobookURLSchemeTests 4 4 0 471ms
โœ… LCPAudiobooksTests 18 18 0 96ms
โœ… LCPLibraryServiceTests 20 20 0 187ms
โœ… LCPPDFManifestTests 3 3 0 12ms
โœ… LCPPDFsTests 13 13 0 200ms
โœ… LicensesServiceTests 10 10 0 55ms
โœ… LogTests 14 14 0 2.59s
โœ… MappedCatalogModelTests 11 11 0 563ms
โœ… MappedCatalogTests 3 3 0 40ms
โœ… MyBooksDownloadCenterAdeptGapTests 3 3 0 11ms
โœ… MyBooksSimplifiedBearerTokenTests 17 17 0 42ms
โœ… MyBooksViewModelBooksPublisherTests 3 3 0 48ms
โœ… MyBooksViewModelConcurrencyTests 4 4 0 21ms
โœ… MyBooksViewModelDownloadStateTests 3 3 0 5ms
โœ… MyBooksViewModelEmptyArrayTests 3 3 0 9ms
โœ… MyBooksViewModelEmptyStateTests 4 4 0 46ms
โœ… MyBooksViewModelExtendedTests 15 15 0 2.05s
โœ… MyBooksViewModelFacetIntegrationTests 4 4 0 10ms
โœ… MyBooksViewModelFacetPublisherTests 3 3 0 16ms
โœ… MyBooksViewModelFilterSortInteractionTests 2 2 0 20ms
โœ… MyBooksViewModelFilterTests 9 9 0 76ms
โœ… MyBooksViewModelGuardConditionsTests 2 2 0 9ms
โœ… MyBooksViewModelLargeDatasetTests 2 2 0 559ms
โœ… MyBooksViewModelLoadAccountTests 2 2 0 36ms
โœ… MyBooksViewModelLoginStateTests 4 4 0 62ms
โœ… MyBooksViewModelMultipleAuthorSortingTests 3 3 0 44ms
โœ… MyBooksViewModelNotificationTests 4 4 0 34ms
โœ… MyBooksViewModelOfflineFilteringTests 3 3 0 21ms
โœ… MyBooksViewModelPublisherTests 7 7 0 47ms
โœ… MyBooksViewModelSearchEdgeCaseTests 6 6 0 611ms
โœ… MyBooksViewModelSearchQueryTests 3 3 0 34ms
โœ… MyBooksViewModelSortPersistenceTests 3 3 0 60ms
โœ… MyBooksViewModelSortingIntegrationTests 5 5 0 42ms
โœ… MyBooksViewModelSortingTests 6 6 0 52ms
โœ… MyBooksViewModelStateTransitionTests 3 3 0 9ms
โœ… MyBooksViewModelUIBindingTests 3 3 0 10ms
โœ… NSErrorAdditionsTests 7 7 0 49ms
โœ… NavigationCoordinatorTests 17 17 0 72ms
โœ… NetworkOfflineDetectionTests 3 3 0 12ms
โœ… NetworkRequestQueueTests 2 2 0 581ms
โœ… NetworkRetryLogicTests 7 7 0 54ms
โœ… NetworkTimeoutTests 3 3 0 6ms
โœ… OAuthSAMLRedirectRegressionTests 4 4 0 364ms
โœ… OIDCAuthDocumentParsingTests 4 4 0 301ms
โœ… OIDCAuthTypeTests 5 5 0 12ms
โœ… OIDCAuthenticationPropertyTests 8 8 0 697ms
โœ… OIDCCallbackEdgeCaseTests 9 9 0 775ms
โœ… OIDCCallbackHandlingTests 5 5 0 642ms
โœ… OIDCCallbackSchemeTests 3 3 0 7ms
โœ… OIDCIsolationRegressionTests 6 6 0 554ms
โœ… OIDCLoginRoutingTests 3 3 0 487ms
โœ… OIDCMakeRequestTests 3 3 0 451ms
โœ… OIDCNSCodingTests 1 1 0 5.07s
โœ… OIDCNetworkLayer401Tests 5 5 0 455ms
โœ… OIDCReauthOnExpiredTokenTests 5 5 0 480ms
โœ… OIDCRedirectURIConstructionTests 6 6 0 2.81s
โœ… OIDCRegressionTests 9 9 0 776ms
โœ… OIDCSelectedAuthenticationTests 2 2 0 226ms
โœ… OIDCSignOutRegressionTests 5 5 0 495ms
โœ… OIDCTokenRefreshRegressionTests 6 6 0 812ms
โœ… OIDCUpdateUserAccountTests 5 5 0 555ms
โœ… OIDCViewModelRegressionTests 1 1 0 233ms
โœ… OIDCViewModelSignInTests 2 2 0 3ms
โœ… OPDS2AuthenticationDocumentTests 18 18 0 110ms
โœ… OPDS2CatalogsFeedTests 3 3 0 467ms
โœ… OPDS2FeedParsingTests 11 11 0 544ms
โœ… OPDS2FeedTests 13 13 0 102ms
โœ… OPDS2LinkRelTests 1 1 0 4ms
โœ… OPDS2LinkTests 2 2 0 243ms
โœ… OPDS2PublicationTests 2 2 0 155ms
โœ… OPDS2SamlIDPTests 6 6 0 14ms
โœ… OPDSFeedCacheTests 14 14 0 136ms
โœ… OPDSFeedParsingTests 2 2 0 75ms
โœ… OPDSFeedServiceTests 5 5 0 25ms
โœ… OPDSParsingTests 44 44 0 3.37s
โœ… PDFReaderTests 12 12 0 33ms
โœ… Palace 2 2 0 <1ms
โœ… PalaceErrorCategoryTests 17 17 0 49ms
โœ… PalaceErrorTests 11 11 0 46ms
โœ… PersistentLoggerTests 7 7 0 127ms
โœ… PlaybackBootstrapperTests 12 12 0 281ms
โœ… PlaybackTrackingRegressionTests 5 5 0 765ms
โœ… PositionPersistenceLogicTests 6 6 0 17ms
โœ… PositionPersistenceTests 2 2 0 11ms
โœ… PositionSyncTests 5 5 0 15ms
โœ… PositionThrottlingTests 1 1 0 137ms
โœ… PostUpdateMigrationTests 5 5 0 361ms
โœ… ProblemDocumentTests 12 12 0 42ms
โœ… ProblemReportEmailTests 16 16 0 62ms
โœ… ReachabilityTests 6 6 0 27ms
โœ… ReaderAccessibilityTests 7 7 0 16ms
โœ… ReaderServiceSyncTests 3 3 0 57ms
โœ… RedirectHandlingIntegrationTests 4 4 0 17ms
โœ… RemoteFeatureFlagsGapTests 4 4 0 56ms
โœ… RemoteFeatureFlagsTests 9 9 0 301ms
โœ… RetryClassificationTests 17 17 0 60ms
โœ… ReturnFlowTests 1 1 0 6ms
โœ… RightsManagementDetectionTests 5 5 0 9ms
โœ… SAMLPlusBiblioBoardExpirationTests 8 8 0 697ms
โœ… SEMigrationsTests 6 6 0 114ms
โœ… SafeDictionaryTests 21 21 0 268ms
โœ… SceneDelegateTests 1 1 0 2ms
โœ… SearchAccessibilityTests 6 6 0 13ms
โœ… SettingsViewModelEdgeCaseTests 7 7 0 50ms
โœ… SettingsViewModelGapTests 1 1 0 19ms
โœ… SettingsViewModelSyncTests 14 14 0 194ms
โœ… SettingsViewModelTests 33 33 0 275ms
โœ… StatusAnnouncementTests 22 22 0 2.13s
โœ… StringExtensionTests 8 8 0 56ms
โœ… StringNYPLAdditionsTests 4 4 0 72ms
โœ… String_NYPLAdditionsTests 5 5 0 17ms
โœ… SyncConflictResolutionTests 3 3 0 5ms
โœ… SyncDeletionGuardTests 5 5 0 64ms
โœ… SyncDeletionRatioTests 6 6 0 46ms
โœ… SyncPermissionTests 5 5 0 194ms
โœ… TPPAccountAuthStateEnumTests 5 5 0 65ms
โœ… TPPAccountListDataSourceTests 3 3 0 34ms
โœ… TPPAdobeActivationSkipTests 6 6 0 574ms
โœ… TPPAgeCheckTests 6 6 0 2.81s
โœ… TPPAlertUtilsTests 21 21 0 562ms
โœ… TPPAnnotationsTests 29 29 0 4.85s
โœ… TPPAnnouncementManagerTests 3 3 0 35ms
โœ… TPPBadgeImageGapTests 2 2 0 6ms
โœ… TPPBasicAuthTests 11 11 0 26ms
โœ… TPPBookBearerTokenTests 9 8 0 125ms
โœ… TPPBookContentMetadataFilesHelperTests 9 9 0 27ms
โœ… TPPBookCreationTests 3 3 0 50ms
โœ… TPPBookLocationTests 11 11 0 49ms
โœ… TPPBookModelGapTests 4 4 0 56ms
โœ… TPPBookRegistryBookRetrievalTests 7 7 0 844ms
โœ… TPPBookRegistryBookmarkTests 7 7 0 2.02s
โœ… TPPBookRegistryCorruptedDataTests 5 5 0 25ms
โœ… TPPBookRegistryDataTests 4 4 0 8ms
โœ… TPPBookRegistryFulfillmentIdTests 4 4 0 236ms
โœ… TPPBookRegistryLoadReentrancyTests 2 2 0 8ms
โœ… TPPBookRegistryLocationTests 4 4 0 545ms
โœ… TPPBookRegistryProcessingTests 2 2 0 318ms
โœ… TPPBookRegistryPublisherTests 6 6 0 1.11s
โœ… TPPBookRegistryRecordPersistenceTests 3 3 0 32ms
โœ… TPPBookRegistryRecordTests 10 10 0 54ms
โœ… TPPBookRegistryStateManagementTests 11 11 0 1.42s
โœ… TPPBookRegistryThreadSafetyTests 3 3 0 3.81s
โœ… TPPBookRegistryUpdateAndRemoveTests 1 1 0 331ms
โœ… TPPBookRequiresAdobeDRMTests 6 6 0 56ms
โœ… TPPBookStateInitializationTests 4 4 0 8ms
โœ… TPPBookStateTests 4 4 0 9ms
โœ… TPPBookmarkDeletionLogTests 11 11 0 2.60s
โœ… TPPBookmarkFactoryInitTests 2 2 0 11ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests 5 5 0 58ms
โœ… TPPBookmarkFactoryTests 15 15 0 180ms
โœ… TPPBookmarkR3ConversionTests 5 5 0 154ms
โœ… TPPBookmarkR3LocationTests 13 13 0 67ms
โœ… TPPBookmarkSpecTests 1 1 0 2ms
โœ… TPPCachingTests 3 3 0 15ms
โœ… TPPCapturedCredentialsTests 5 5 0 457ms
โœ… TPPCredentialConcurrencyTests 3 3 0 6ms
โœ… TPPCredentialPersistenceTests 6 6 0 600ms
โœ… TPPCredentialSnapshotTests 8 8 0 27ms
โœ… TPPCredentialsTests 26 26 0 146ms
โœ… TPPCrossLibrarySignOutTests 6 6 0 569ms
โœ… TPPDRMFailureCredentialPreservationTests 4 4 0 515ms
โœ… TPPIdleSignOutRegressionTests 13 13 0 1.41s
โœ… TPPJWKConversionTest 1 1 0 25ms
โœ… TPPKeychainStoredVariableTests 9 9 0 52ms
โœ… TPPLastReadPositionPosterTests 6 6 0 25ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests 5 5 0 23ms
โœ… TPPLastReadPositionSynchronizerTests 23 23 0 75ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests 5 5 0 20ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests 9 9 0 31ms
โœ… TPPLastReadPositionSynchronizer_ConcurrencyTests 3 3 0 33ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests 9 9 0 496ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests 10 10 0 42ms
โœ… TPPLoginNoActivationTests 3 3 0 320ms
โœ… TPPNetworkExecutorAPITests 8 8 0 37ms
โœ… TPPNetworkExecutorTests 3 3 0 12ms
โœ… TPPOPDSAcquisitionPathTests 2 2 0 14ms
โœ… TPPOpenSearchDescriptionTests 1 1 0 2ms
โœ… TPPPDFDocumentMetadataTests 15 15 0 159ms
โœ… TPPProblemDocumentCacheManagerTests 9 9 0 35ms
โœ… TPPReaderAppearanceTests 4 4 0 56ms
โœ… TPPReaderBookmarksBusinessLogicTests 15 15 0 1.45s
โœ… TPPReaderFontTests 4 4 0 10ms
โœ… TPPReaderPreferencesLoadTests 3 3 0 95ms
โœ… TPPReaderSettingsTests 28 28 0 346ms
โœ… TPPReaderTOCBusinessLogicTests 15 15 0 472ms
โœ… TPPReaderTOCFlattenTests 2 2 0 363ms
โœ… TPPReadiumBookmarkLocationMatchingTests 5 5 0 31ms
โœ… TPPReadiumBookmarkTests 18 18 0 59ms
โœ… TPPReauthenticatorMockTests 2 2 0 4ms
โœ… TPPReauthenticatorTests 4 4 0 11ms
โœ… TPPSAMLReauthFlowTests 2 2 0 793ms
โœ… TPPSettingsTests 14 14 0 76ms
โœ… TPPSignInAuthStateTransitionTests 3 3 0 429ms
โœ… TPPSignInBusinessLogicExtendedTests 42 42 0 4.13s
โœ… TPPSignInBusinessLogicTests 6 6 0 582ms
โœ… TPPSignInErrorHandlingTests 2 2 0 198ms
โœ… TPPSignInProfileDocEdgeCaseTests 3 3 0 514ms
โœ… TPPSignedInStateProviderTests 3 3 0 8ms
โœ… TPPUserAccountAuthStateTests 7 7 0 14ms
โœ… TPPUserAccountGapTests 4 4 0 33ms
โœ… TPPUserFriendlyErrorTests 11 11 0 29ms
โœ… TPPUserNotificationsTests 10 10 0 68ms
โœ… TPPXMLTests 3 3 0 9ms
โœ… TokenRefreshTests 25 25 0 100ms
โœ… TokenResponseTests 21 21 0 56ms
โœ… UIColor_NYPLAdditionsTests 1 1 0 2ms
โœ… URLExtensionTests 16 16 0 237ms
โœ… URLRequest_NYPLTests 1 1 0 4ms
โœ… URLResponseAuthenticationTests 10 10 0 25ms
โœ… URLValidationTests 5 5 0 13ms
โœ… UserAccountPublisherAuthStateTests 6 6 0 58ms
โœ… UserProfileDocumentTests 7 7 0 47ms
โœ… UserRetryTrackerTests 10 10 0 25ms

๐Ÿ“‹ All Tests

Class Test Duration
โœ… AccessLintComplianceTests testAudiobookLabel_isDescriptive 7ms
โœ… AccessLintComplianceTests testBorrowAnnouncementStrings_areMeaningful 4ms
โœ… AccessLintComplianceTests testDownloadAnnouncementStrings_areMeaningful 5ms
โœ… AccessLintComplianceTests testExpandCollapseButton_hasDistinctLabelsForBothStates 18ms
โœ… AccessLintComplianceTests testPDFToolbarButton_fallbackLabel_isNotEmpty 6ms
โœ… AccessLintComplianceTests testRetryAnnouncementStrings_areMeaningful 9ms
โœ… AccessLintComplianceTests testReturnAnnouncementStrings_areMeaningful 14ms
โœ… AccessLintComplianceTests testSearchAnnouncementStrings_areMeaningful 4ms
โœ… AccessLintComplianceTests testSortFilterLabels_areDescriptive 10ms
โœ… AccessLintComplianceTests testStatusAnnouncement_actionFailed_combinesTitleAndMessage 6ms
โœ… AccessLintComplianceTests testStatusAnnouncement_errorOccurred_passesThrough 3ms
โœ… AccessibilityAnnouncementCenterTests testPP3594_borrowAndReturnAnnouncements_postMessages 6ms
โœ… AccessibilityAnnouncementCenterTests testPP3594_downloadAnnouncements_respectVoiceOverDisabled 119ms
โœ… AccessibilityAnnouncementCenterTests testPP3594_downloadProgress_throttlesAnnouncements 5ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_additionalResultsLoaded_announcesCount 3ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_additionalResultsLoaded_zeroCount_doesNotAnnounce 105ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_allAnnouncements_useAnnouncementNotificationType 7ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_announceError_postsMessage 6ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_announceMessage_postsArbitraryMessage 3ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_announceStatus_combinesTitleAndMessage 3ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_deduplication_allowsDifferentMessages 106ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_deduplication_allowsRepeatAfterWindowExpires 106ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_deduplication_crossMethod_sameText 103ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_deduplication_rapidFireSameMessage_onlyOneAnnouncement 107ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_deduplication_suppressesDuplicateWithinWindow 105ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_emptyMessage_isNotPosted 103ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_errorAnnouncements_respectVoiceOverDisabled 105ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_searchAnnouncements_respectVoiceOverDisabled 107ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_searchFailed_announcesFailure 5ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_searchNoResults_announcesNoResults 17ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_searchRerun_announcesUpdatedResults 3ms
โœ… AccessibilityAnnouncementCenterTests testPP3673_searchResults_announcesResultCountAndQuery 8ms
โœ… AccessibilityLabelTests testAccessibilityStrings_areNotEmpty 4ms
โœ… AccessibilityLabelTests testAccessibilityStrings_formatStringsWork 2ms
โœ… AccessibilityLabelTests testBookmarkLabels_existAndAreDifferent 5ms
โœ… AccessibilityLabelTests testChapterNavigationLabels_exist 5ms
โœ… AccessibilityLabelTests testExistingAccessibilityStrings_areNotEmpty 3ms
โœ… AccessibilityLabelTests testExpandCollapseLabels_areDifferent 2ms
โœ… AccessibilityLabelTests testFilterButtonLabel_changesWithCount 2ms
โœ… AccessibilityLabelTests testPlayPauseLabels_areDifferent 2ms
โœ… AccessibilityLabelTests testSortButtonLabel_changesWithSortOption 3ms
โœ… AccountAuthDocCarryoverTests testAccount_authenticationDocumentDidSet_createsDetails 93ms
โœ… AccountAuthDocCarryoverTests testAccount_detailsPreserved_whenAuthDocCopiedToNewAccount 83ms
โœ… AccountAuthDocCarryoverTests testAccount_detailsSyncPermission_defaultsToTrue 80ms
โœ… AccountAuthDocCarryoverTests testAccount_multipleAccountsCarryover_matchesByUUID 218ms
โœ… AccountAuthDocCarryoverTests testAccount_replacementWithoutCarryover_losesDetails 76ms
โœ… AccountAwareNetworkTests testCancelNonEssentialTasks_CancelsActiveTasks 5ms
โœ… AccountAwareNetworkTests testCancelNonEssentialTasks_DoesNotCrash 6ms
โœ… AccountAwareNetworkTests testExecuteTokenRefresh_AcceptsAccountId 485ms
โœ… AccountAwareNetworkTests testExecuteTokenRefresh_NilAccountId_BackwardCompatible 9ms
โœ… AccountAwareNetworkTests testRefreshTokenAndResume_AcceptsAccountIdParameter 9ms
โœ… AccountAwareNetworkTests testRefreshTokenAndResume_DefaultAccountId_BackwardCompatible 28ms
โœ… AccountAwareNetworkTests testRefreshTokenAndResume_NilAccountId_DoesNotCrash 4ms
โœ… AccountAwareNetworkTests testRequest_AccountIdParameter_AcceptsNil 7ms
โœ… AccountAwareNetworkTests testRequest_AccountIdParameter_AcceptsSpecificId 3ms
โœ… AccountAwareNetworkTests testRequest_CapturesCurrentAccountToken 5ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_OAuthRemainsSignedInWhenStateBecomesStale 388ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_SAMLUpdatesWhenStateBecomesStale 3ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_falseWhenLoggedOut 21ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_falseWhenSAMLCredentialsStale 3ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_trueWhenLoggedIn 12ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_trueWhenOAuthCredentialsStale 3ms
โœ… AccountDetailCredentialStateTests testIsSignedIn_updatesAfterSAMLReauthentication 11ms
โœ… AccountDetailCredentialStateTests testNeedsReauthentication_trueWhenCredentialsStale 9ms
โœ… AccountDetailPINVisibilityTests testPINVisibility_DefaultsToHidden 14ms
โœ… AccountDetailPINVisibilityTests testPINVisibility_IndependentOfCredentialChanges 9ms
โœ… AccountDetailPINVisibilityTests testPINVisibility_ToggleMultipleTimes 5ms
โœ… AccountDetailViewModelGapTests testAccountDetailViewModel_updateSync_setsPermission 164ms
โœ… AccountDetailViewModelTests testAlertPropertiesUpdate 2ms
โœ… AccountDetailViewModelTests testBusinessLogic_IsInitialized 3ms
โœ… AccountDetailViewModelTests testCanSignInWithBothCredentials 2ms
โœ… AccountDetailViewModelTests testCanSignInWithEmptyCredentials 2ms
โœ… AccountDetailViewModelTests testCanSignInWithOnlyUsername 2ms
โœ… AccountDetailViewModelTests testCanSignIn_WithSpecialCharacters 3ms
โœ… AccountDetailViewModelTests testCanSignIn_WithWhitespaceOnlyUsername 6ms
โœ… AccountDetailViewModelTests testClearCredentials_WorksIndependently 2ms
โœ… AccountDetailViewModelTests testCredentialFields_AreIndependent 4ms
โœ… AccountDetailViewModelTests testInitialPublishedPropertiesState 3ms
โœ… AccountDetailViewModelTests testIsPINHiddenDefaultsToTrue 3ms
โœ… AccountDetailViewModelTests testIsSyncEnabledToggle 4ms
โœ… AccountDetailViewModelTests testLibraryNameReturnsAccountName 2ms
โœ… AccountDetailViewModelTests testMultipleAlerts_CanBeShown 21ms
โœ… AccountDetailViewModelTests testPinTextUpdate 3ms
โœ… AccountDetailViewModelTests testSelectedAccountMatchesInitialized 3ms
โœ… AccountDetailViewModelTests testShowBarcodeToggle 3ms
โœ… AccountDetailViewModelTests testTogglePINVisibility 3ms
โœ… AccountDetailViewModelTests testUsernameTextUpdate 2ms
โœ… AccountDetailsURLTests testDebugDescription_ContainsSyncInfo 4ms
โœ… AccountDetailsURLTests testDefaultAuth_WithSingleAuth_ReturnsThatAuth 3ms
โœ… AccountDetailsURLTests testEulaIsAccepted_CanBeSetToTrue 4ms
โœ… AccountDetailsURLTests testEulaIsAccepted_DefaultIsFalse 16ms
โœ… AccountDetailsURLTests testGetLicenseURL_AfterSettingMultipleTypes_ReturnsCorrectURLs 25ms
โœ… AccountDetailsURLTests testGetLicenseURL_WhenNotSet_ReturnsNil 6ms
โœ… AccountDetailsURLTests testSetURL_ForAcknowledgements_StoresURL 4ms
โœ… AccountDetailsURLTests testSetURL_ForAnnotations_StoresURL 4ms
โœ… AccountDetailsURLTests testSetURL_ForContentLicenses_StoresURL 9ms
โœ… AccountDetailsURLTests testSetURL_ForEULA_StoresURL 181ms
โœ… AccountDetailsURLTests testSetURL_ForPrivacyPolicy_StoresURL 4ms
โœ… AccountDetailsURLTests testSetURL_OverwritesPreviousURL 10ms
โœ… AccountDetailsURLTests testSetURL_PersistsToUserDefaults 10ms
โœ… AccountDetailsURLTests testSyncPermissionGranted_CanBeSetToFalse 7ms
โœ… AccountDetailsURLTests testSyncPermissionGranted_DefaultIsTrue 3ms
โœ… AccountDetailsURLTests testUserAboveAgeLimit_CanBeSetToTrue 10ms
โœ… AccountDetailsURLTests testUserAboveAgeLimit_DefaultIsFalse 2ms
โœ… AccountModelGapTests testAccountDetails_defaultAuth_prefersNonOAuth 73ms
โœ… AccountModelGapTests testAccountDetails_eulaIsAccepted_defaultsToFalse 79ms
โœ… AccountModelGapTests testAccountDetails_initFromAuthDoc_populatesAuthMethods 74ms
โœ… AccountModelGapTests testAccountDetails_setAndGetLicenseURL_roundTrips 75ms
โœ… AccountModelGapTests testAccountDetails_syncPermissionGranted_defaultBehavior 83ms
โœ… AccountModelGapTests testAccount_hasSupportOption_reflectsSupportAvailability 74ms
โœ… AccountModelGapTests testAccount_initFromPublication_mapsPropertiesCorrectly 79ms
โœ… AccountModelGapTests testAccount_loansUrl_delegatesToDetails 73ms
โœ… AccountModelGapTests testAuthentication_NSCoding_roundTrip 73ms
โœ… AccountModelTests testAccount_DebugDescription_ContainsName 2ms
โœ… AccountModelTests testAccount_InitFromPublication_DefaultLogo_IsNotNil 2ms
โœ… AccountModelTests testAccount_InitFromPublication_DetailsAreNil 2ms
โœ… AccountModelTests testAccount_InitFromPublication_HasUpdatedToken_IsFalse 2ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsAuthDocUrl 2ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsCatalogUrl 2ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsHomePageUrl 2ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsName 2ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsSubtitle 3ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsSupportEmail 6ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsSupportURL 3ms
โœ… AccountModelTests testAccount_InitFromPublication_SetsUUID 2ms
โœ… AccountModelTests testLoadAuthenticationDocument_WithNilUrl_CompletesWithFalse 4ms
โœ… AccountModelTests testLoadLogo_WithCachedImage_UsesCachedImage 27ms
โœ… AccountModelTests testLoadLogo_WithNilLogoUrl_DoesNotCrash 3ms
โœ… AccountModelTests testLoansUrl_WhenDetailsNil_ReturnsNil 2ms
โœ… AccountProfileDocumentTests testGetProfileDocument_WithDetailsButNilProfileUrl_CompletesWithNil 13ms
โœ… AccountProfileDocumentTests testGetProfileDocument_WithNilDetails_CompletesWithNil 3ms
โœ… AccountSwitchCleanupTests testBookCellModelCache_ClearsOnAccountChange 174ms
โœ… AccountSwitchCleanupTests testCancelNonEssentialTasks_CalledMultipleTimes_DoesNotCrash 5ms
โœ… AccountSwitchCleanupTests testCancelNonEssentialTasks_WithNoActiveTasks_DoesNotCrash 2ms
โœ… AccountSwitchCleanupTests testPauseAllTasks_AfterCancel_DoesNotCrash 3ms
โœ… AccountSwitchCleanupTests testSharedAccount_RapidSwitching_DoesNotCrash 7ms
โœ… AccountSwitchCleanupTests testSharedAccount_SwitchingUUIDs_DoesNotCrash 3ms
โœ… AccountSwitchCleanupTests testSharedAccount_WithNilUUID_DoesNotCrash 4ms
โœ… AccountSwitchCleanupTests testSharedAccount_WithSpecificUUID_DoesNotCrash 187ms
โœ… AccountsManagerCacheTests testCacheDataAndMetadata_AreWrittenTogether 15ms
โœ… AccountsManagerCacheTests testCacheExpiry_OldCacheIsNotUsed 5ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_Codable_EncodesAndDecodes 3ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsExpired_ReturnsFalseJustUnder24Hours 2ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsExpired_ReturnsFalseWhenRecent 2ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsExpired_ReturnsTrueAfter24Hours 2ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsStale_ReturnsFalseJustUnder5Minutes 3ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsStale_ReturnsFalseWhenFresh 2ms
โœ… AccountsManagerCacheTests testCatalogCacheMetadata_IsStale_ReturnsTrueAfter5Minutes 36ms
โœ… AccountsManagerCacheTests testLoadCatalogs_WhenCacheExists_CompletesWithCachedData 83ms
โœ… AccountsManagerCacheTests testLoadCatalogs_WhenCacheExpired_ReturnsNil 55ms
โœ… AccountsManagerCacheTests testLoadCatalogs_WhenCacheStale_ReturnsDataButMarkedStale 5ms
โœ… AccountsManagerCacheTests testNotification_TPPCatalogDidLoad_ConstantExists 3ms
โœ… AccountsManagerCacheTests testReadCacheMetadata_ReturnsNilWhenNotExists 3ms
โœ… AccountsManagerCacheTests testWriteAndReadCacheMetadata 3ms
โœ… AccountsManagerGapTests testAccountsManager_accountByUUID_returnsNilForUnknownUUID 15ms
โœ… AccountsManagerGapTests testAccountsManager_currentAccountId_persistsToUserDefaults 4ms
โœ… AccountsManagerGapTests testAccountsManager_tppAccountUUID_isNotEmpty 5ms
โœ… AccountsManagerTests testAccountChangeNotification_HasCorrectName 98ms
โœ… AccountsManagerTests testAccountDetails_DefaultAuth_ReturnsNonOAuthFirst 139ms
โœ… AccountsManagerTests testAccountDetails_NeedsAgeCheck_WhenCOPPAAuthExists 131ms
โœ… AccountsManagerTests testAccountDetails_SupportsReservations 107ms
โœ… AccountsManagerTests testAccountDetails_SupportsSimplyESync 87ms
โœ… AccountsManagerTests testAccountLookup_FromMultipleThreads_DoesNotCrash 197ms
โœ… AccountsManagerTests testAccount_AuthenticationDocumentUrl_IsValid 101ms
โœ… AccountsManagerTests testAccount_BarcodeAuthentication_IsBasic 111ms
โœ… AccountsManagerTests testAccount_CatalogUrl_IsValid 128ms
โœ… AccountsManagerTests testAccount_HasAuthenticationTypes 110ms
โœ… AccountsManagerTests testAccount_HasRequiredProperties 108ms
โœ… AccountsManagerTests testAccount_OAuthAuthentication_IsOAuth 120ms
โœ… AccountsManagerTests testAccount_SAMLAuthentication_IsSAML 110ms
โœ… AccountsManagerTests testAccount_WithEmptyUUID_ReturnsNil 122ms
โœ… AccountsManagerTests testAccount_WithExistingUUID_ReturnsAccount 111ms
โœ… AccountsManagerTests testAccount_WithNonExistentUUID_CreatesNewAccount 83ms
โœ… AccountsManagerTests testAccount_WithNonExistentUUID_ReturnsNil 105ms
โœ… AccountsManagerTests testAccount_WithValidUUID_ReturnsAccount 124ms
โœ… AccountsManagerTests testAccountsHaveLoaded_WhenEmpty_ReturnsFalse 95ms
โœ… AccountsManagerTests testAccountsManager_ConformsToTPPLibraryAccountsProvider 167ms
โœ… AccountsManagerTests testAccountsManager_HasAgeCheck 109ms
โœ… AccountsManagerTests testAccountsManager_HasNYPLAccountUUID 100ms
โœ… AccountsManagerTests testAccountsManager_WithEmptyUUID_ReturnsNil 86ms
โœ… AccountsManagerTests testAccounts_FromMultipleThreads_DoesNotCrash 88ms
โœ… AccountsManagerTests testAccounts_WithNilKey_ReturnsCurrentAccountSet 100ms
โœ… AccountsManagerTests testAccounts_WithNonExistentKey_ReturnsEmptyArray 95ms
โœ… AccountsManagerTests testAuthenticationType_Basic_DoesNotRequireCatalogAuthentication 103ms
โœ… AccountsManagerTests testAuthenticationType_Basic_NeedsAuth 131ms
โœ… AccountsManagerTests testAuthenticationType_OAuth_NeedsAuth 86ms
โœ… AccountsManagerTests testAuthenticationType_OAuth_RequiresCatalogAuthentication 94ms
โœ… AccountsManagerTests testAuthenticationType_SAML_NeedsAuth 87ms
โœ… AccountsManagerTests testCatalogDidLoadNotification_CanBeObservedWithCombine 112ms
โœ… AccountsManagerTests testCatalogDidLoad_NotificationExists 95ms
โœ… AccountsManagerTests testClearCache_DoesNotThrow 84ms
โœ… AccountsManagerTests testCreateOPDS2Publication_ReturnsValidPublication 109ms
โœ… AccountsManagerTests testCurrentAccountId_PersistsToUserDefaults 110ms
โœ… AccountsManagerTests testCurrentAccountId_WhenNotSet_ReturnsNil 97ms
โœ… AccountsManagerTests testCurrentAccount_WhenChanged_PostsNotification 205ms
โœ… AccountsManagerTests testLoadCatalogs_PostsCatalogDidLoadNotification 313ms
โœ… AccountsManagerTests testMockLibraryAccountProvider_CurrentAccountId_MatchesUUID 112ms
โœ… AccountsManagerTests testMockLibraryAccountProvider_CurrentAccount_ReturnsTPPAccount 100ms
โœ… AccountsManagerTests testMultipleNotificationObservers_AllReceiveAccountChange 120ms
โœ… AccountsManagerTests testNotificationObserver_ForAccountChange_CanBeAdded 113ms
โœ… AccountsManagerTests testNotification_CanBeObservedWithCombine 146ms
โœ… AccountsManagerTests testSharedInstance_ReturnsSameAsShared 128ms
โœ… AccountsManagerTests testShared_ReturnsSameInstance 136ms
โœ… AccountsManagerTests testTPPAccountUUIDs_ContainsExpectedAccounts 109ms
โœ… AccountsManagerTests testTPPNationalAccountUUIDs_ContainsPalaceBookshelf 91ms
โœ… AccountsManagerTests testUpdateAccountSet_WithCompletion_CallsCompletion 101ms
โœ… AccountsManagerTests testUpdateAccountSet_WithNilCompletion_DoesNotCrash 92ms
โœ… AccountsManagerTests testUseBetaDidChange_NotificationExists 122ms
โœ… AccountsManagerTests testUseBetaDidChange_PostsNotificationWhenSettingChanges 98ms
โœ… AdobeCertificateGapTests testAdobeCertificate_expirationDate_computesFromTimestamp 2ms
โœ… AdobeCertificateGapTests testAdobeCertificate_expirationDate_nilWhenNoTimestamp 2ms
โœ… AdobeCertificateGapTests testAdobeCertificate_hasExpired_falseForFutureDate 2ms
โœ… AdobeCertificateGapTests testAdobeCertificate_hasExpired_falseWhenNoExpiration 4ms
โœ… AdobeCertificateGapTests testAdobeCertificate_hasExpired_trueForPastDate 2ms
โœ… AdobeCertificateGapTests testAdobeCertificate_initFromData_decodesValidJSON 6ms
โœ… AdobeCertificateGapTests testAdobeCertificate_initFromData_returnsNilForInvalidJSON 2ms
โœ… AdobeDRMErrorGapTests testAdobeDRMError_conformsToLocalizedError 16ms
โœ… AdobeDRMErrorGapTests testAdobeDRMError_errorDescription_isNotEmpty 3ms
โœ… AdobeDRMErrorGapTests testAdobeDRMError_expiredCase_exists 18ms
โœ… AdobeDRMServiceGapTests testAdobeDRMService_isReady_returnsBoolean 3ms
โœ… AdobeDRMServiceGapTests testAdobeDRMService_shared_isAccessible 3ms
โœ… AlertModelRetryTests testAlertModel_isIdentifiable 2ms
โœ… AlertModelRetryTests testDefaultAlertModel_hasExpectedDefaults 2ms
โœ… AlertModelRetryTests testDefaultModel_triggersOKBranch 2ms
โœ… AlertModelRetryTests testMaxRetriesExceeded_hasNoSecondaryButton 23ms
โœ… AlertModelRetryTests testMaxRetriesExceeded_preservesTitle 2ms
โœ… AlertModelRetryTests testMaxRetriesExceeded_setsOKButton 2ms
โœ… AlertModelRetryTests testMaxRetriesExceeded_showsTryAgainLaterMessage 43ms
โœ… AlertModelRetryTests testMaxRetriesExceeded_triggersOKBranch 2ms
โœ… AlertModelRetryTests testRetryable_executesCancelAction 2ms
โœ… AlertModelRetryTests testRetryable_executesRetryAction 2ms
โœ… AlertModelRetryTests testRetryable_hasNonNilSecondaryButtonTitle 2ms
โœ… AlertModelRetryTests testRetryable_preservesTitleAndMessage 2ms
โœ… AlertModelRetryTests testRetryable_setsCancelAsSecondaryButton 3ms
โœ… AlertModelRetryTests testRetryable_setsRetryButtonTitle 2ms
โœ… AlertModelRetryTests testRetryable_triggersRetryBranch 2ms
โœ… AlertModelTests testAlertModel_StoresProvidedValues 2ms
โœ… AlertModelTests testAlertModel_SyncingAlertStrings_AreNotEmpty 2ms
โœ… AnnouncementTests testAnnouncement_decodesValidJSON 9ms
โœ… AnnouncementTests testAnnouncement_withMissingContent_throwsError 3ms
โœ… AnnouncementTests testAnnouncement_withMissingId_throwsError 2ms
โœ… AppRouteTests testAppRoute_Audio_IsHashable 2ms
โœ… AppRouteTests testAppRoute_BookDetail_IsHashable 7ms
โœ… AppRouteTests testAppRoute_DifferentTypes_NotEqual 2ms
โœ… AppRouteTests testBookRoute_IsHashable 3ms
โœ… AppRouteTests testSearchRoute_IsHashable 2ms
โœ… AppTabRouterGapTests testAppTabRouterHub_shared_singletonExists 14ms
โœ… AppTabRouterGapTests testAppTabRouter_defaultSelected_isCatalog 12ms
โœ… AppTabRouterGapTests testAppTabRouter_selected_canBeChanged 7ms
โœ… AppTabRouterGapTests testAppTab_allCasesExistAndAreHashable 5ms
โœ… AudioBookmarkGapTests testAudioBookmark_copy_createsIndependentCopy 2ms
โœ… AudioBookmarkGapTests testAudioBookmark_creation_storesBasicProperties 2ms
โœ… AudioBookmarkGapTests testAudioBookmark_isSimilar_returnsFalseForDifferentChapter 3ms
โœ… AudioBookmarkGapTests testAudioBookmark_isSimilar_returnsTrueForSameChapterPosition 3ms
โœ… AudioBookmarkGapTests testAudioBookmark_toData_producesRoundTripData 15ms
โœ… AudioBookmarkGapTests testAudioBookmark_toTPPBookLocation_producesValidLocation 2ms
โœ… AudioInterruptionLogicTests testNoResume_whenNoShouldResume_andWasNotPlaying 2ms
โœ… AudioInterruptionLogicTests testResume_phoneCallDeclinedScenario 2ms
โœ… AudioInterruptionLogicTests testResume_siriInterruptionScenario 2ms
โœ… AudioInterruptionLogicTests testResume_whenNoShouldResume_butWasPlaying 2ms
โœ… AudioInterruptionLogicTests testResume_whenShouldResumeSet_andWasPlaying 3ms
โœ… AudioInterruptionLogicTests testResume_whenShouldResumeSet_butWasNotPlaying 1ms
โœ… AudiobookAccessibilityTests testAudiobookIndicator_labelExists 5ms
โœ… AudiobookAccessibilityTests testPauseLabel_isDescriptive 4ms
โœ… AudiobookAccessibilityTests testPlayLabel_isDescriptive 2ms
โœ… AudiobookAccessibilityTests testPlayPauseLabel_changesWithState 2ms
โœ… AudiobookAccessibilityTests testPlayPauseLabels_areDifferent 2ms
โœ… AudiobookAccessibilityTests testSkipBackLabel_indicatesTimeUnit 2ms
โœ… AudiobookAccessibilityTests testSkipBackLabel_isDescriptiveWithDuration 2ms
โœ… AudiobookBookmarkBusinessLogicTests testBusinessLogic_canBeInitialized 18ms
โœ… AudiobookBookmarkBusinessLogicTests testBusinessLogic_hasBookReference 4ms
โœ… AudiobookBookmarkBusinessLogicTests testDeleteBookmark_CallsAnnotationsManager 38ms
โœ… AudiobookBookmarkBusinessLogicTests testFlushPendingOperations_ExecutesPendingWork 2ms
โœ… AudiobookBookmarkBusinessLogicTests testLoadTracks_succeeds 29ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_BothNil_ReturnsNil 4ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_LocalNewerThanRemote_UsesLocal 23ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_OnlyLocalExists_UsesLocal 18ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_OnlyRemoteExists_UsesRemote 21ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_RemoteNewerThanLocal_UsesRemote 34ms
โœ… AudiobookBookmarkBusinessLogicTests testPositionRestoration_SameTimestamp_UsesLocal 22ms
โœ… AudiobookBookmarkBusinessLogicTests testSaveBookmark_AddsToRegistry 1.06s
โœ… AudiobookBookmarkBusinessLogicTests testSaveBookmark_CreatesBookmark 1.08s
โœ… AudiobookBookmarkBusinessLogicTests testSaveListeningPositionSync_SavesImmediately 17ms
โœ… AudiobookBookmarkBusinessLogicTests testSaveListeningPosition_SavesLocallyImmediately 1.05s
โœ… AudiobookBookmarkBusinessLogicTests testSaveListeningPosition_SyncsToServer 1.07s
โœ… AudiobookBookmarkBusinessLogicTests testSyncBookmarks_MergesLocalAndRemote 23ms
โœ… AudiobookDataManagerEmptyQueueTests testSyncValues_withEmptyQueue_makesNoRequests 322ms
โœ… AudiobookDataManagerErrorHandlingTests testSyncValues_with404Response_removesEntriesAndURL 912ms
โœ… AudiobookDataManagerErrorHandlingTests testSyncValues_with500Response_keepsEntriesForRetry 615ms
โœ… AudiobookDataManagerErrorHandlingTests testSyncValues_with503Response_keepsEntriesForRetry 612ms
โœ… AudiobookDataManagerErrorHandlingTests testSyncValues_withNetworkError_keepsEntries 610ms
โœ… AudiobookDataManagerErrorHandlingTests testSyncValues_withPartialSuccess_removesOnlySuccessfulEntries 623ms
โœ… AudiobookDataManagerModelsTests testAudiobookDataManagerStoreInit_empty 2ms
โœ… AudiobookDataManagerModelsTests testAudiobookDataManagerStoreInit_fromData_invalidJson_returnsNil 2ms
โœ… AudiobookDataManagerModelsTests testAudiobookDataManagerStoreInit_fromData_validJson 23ms
โœ… AudiobookDataManagerModelsTests testAudiobookDataManagerStoreJsonRepresentation 4ms
โœ… AudiobookDataManagerModelsTests testAudiobookDataManagerStoreRoundTrip 2ms
โœ… AudiobookDataManagerModelsTests testAudiobookTimeEntryCodable 3ms
โœ… AudiobookDataManagerModelsTests testAudiobookTimeEntryEquality 2ms
โœ… AudiobookDataManagerModelsTests testLibraryBookCodable 2ms
โœ… AudiobookDataManagerModelsTests testLibraryBookEquality 2ms
โœ… AudiobookDataManagerModelsTests testLibraryBookHashable 4ms
โœ… AudiobookDataManagerModelsTests testLibraryBookInit_directInit 2ms
โœ… AudiobookDataManagerModelsTests testLibraryBookInit_fromTimeEntry 2ms
โœ… AudiobookDataManagerModelsTests testRequestDataInit_direct 4ms
โœ… AudiobookDataManagerModelsTests testRequestDataInit_fromLibraryBookAndEntries 2ms
โœ… AudiobookDataManagerModelsTests testRequestDataJsonRepresentation 2ms
โœ… AudiobookDataManagerModelsTests testRequestDataTimeEntryDescription 1ms
โœ… AudiobookDataManagerModelsTests testResponseDataInit_direct 2ms
โœ… AudiobookDataManagerModelsTests testResponseDataInit_fromData_emptyResponses 2ms
โœ… AudiobookDataManagerModelsTests testResponseDataInit_fromData_invalidJson_returnsNil 2ms
โœ… AudiobookDataManagerModelsTests testResponseDataInit_fromData_validJson 20ms
โœ… AudiobookDataManagerNetworkSyncTests testAudiobookDataManager_Sync_InitializesCorrectly 11ms
โœ… AudiobookDataManagerNetworkSyncTests testSyncValues_requestBodyContainsCorrectFormat 1.02s
โœ… AudiobookDataManagerNetworkSyncTests testSyncValues_withMultipleBooks_makesRequestForEach 511ms
โœ… AudiobookDataManagerNetworkSyncTests testSyncValues_withQueuedEntries_postsToCorrectURL 520ms
โœ… AudiobookDataManagerNetworkSyncTests testSyncValues_withSuccessfulResponse_removesEntriesFromQueue 611ms
โœ… AudiobookDataManagerStoreRecoveryTests testAudiobookDataManagerStoreInit_withInvalidData_returnsNil 14ms
โœ… AudiobookDataManagerStoreRecoveryTests testAudiobookDataManagerStoreInit_withPartialData_returnsNil 7ms
โœ… AudiobookDataManagerStoreRecoveryTests testLoadStore_withCorruptedJSON_doesNotCrash 21ms
โœ… AudiobookDataManagerStoreRecoveryTests testLoadStore_withEmptyFile_doesNotCrash 10ms
โœ… AudiobookDataManagerStoreRecoveryTests testSaveAndLoadStore_preservesData 1.04s
โœ… AudiobookFileLoggerTests testGetLogsDirectoryUrl_directoryExists 4ms
โœ… AudiobookFileLoggerTests testGetLogsDirectoryUrl_returnsURL 2ms
โœ… AudiobookFileLoggerTests testLogEvent_containsTimestamp 12ms
โœ… AudiobookFileLoggerTests testLogEvent_createsLogFile 7ms
โœ… AudiobookFileLoggerTests testLogEvent_multipleEvents_allAppear 7ms
โœ… AudiobookFileLoggerTests testRetrieveLog_nonexistentBook_returnsNil 2ms
โœ… AudiobookFileLoggerTests testRetrieveLogs_emptyBookIds_returnsEmptyDict 5ms
โœ… AudiobookFileLoggerTests testRetrieveLogs_multipleBooks 11ms
โœ… AudiobookFileLoggerTests testShared_isNotNil 7ms
โœ… AudiobookPlaybackTests testAudiobookTimeEntry_DurationCappedAt60 16ms
โœ… AudiobookPlaybackTests testAudiobookTimeEntry_ValidDuration 20ms
โœ… AudiobookPlaybackTests testChapterIndex_ValidTrack 28ms
โœ… AudiobookPlaybackTests testChapterNavigation_NextChapter 15ms
โœ… AudiobookPlaybackTests testChapterNavigation_NextChapter_AtEnd 17ms
โœ… AudiobookPlaybackTests testChapterNavigation_PreviousChapter 23ms
โœ… AudiobookPlaybackTests testChapterNavigation_PreviousChapter_ClampsToZero 23ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_0_75x_CalculatesCorrectDuration 22ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_1_0x_CalculatesCorrectDuration 24ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_1_25x_CalculatesCorrectDuration 132ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_1_5x_CalculatesCorrectDuration 18ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_2_0x_CalculatesCorrectDuration 14ms
โœ… AudiobookPlaybackTests testPlaybackSpeed_ContentPlayedCalculation 19ms
โœ… AudiobookPlaybackTests testSkipAhead_Adds30Seconds 13ms
โœ… AudiobookPlaybackTests testSkipAhead_ClampsToTrackEnd 85ms
โœ… AudiobookPlaybackTests testSkipAhead_WithinTrackDuration 12ms
โœ… AudiobookPlaybackTests testSkipBehind_ClampsToZero 19ms
โœ… AudiobookPlaybackTests testSkipBehind_Subtracts30Seconds 21ms
โœ… AudiobookPlaybackTests testSleepTimer_15Minutes 29ms
โœ… AudiobookPlaybackTests testSleepTimer_30Minutes 17ms
โœ… AudiobookPlaybackTests testSleepTimer_60Minutes 20ms
โœ… AudiobookPlaybackTests testSleepTimer_Expired 19ms
โœ… AudiobookPlaybackTests testSleepTimer_RemainingTime 32ms
โœ… AudiobookPlaybackTests testTrackPosition_Creation 20ms
โœ… AudiobookPlaybackTests testTrackPosition_ToAudioBookmark 26ms
โœ… AudiobookPlaybackTests testTrackPosition_ToTPPBookLocation 61ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_AlreadyLoading_HasDescription 1ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_Equatable 4ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_ManifestLoadFailed_HasDescription 2ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_NetworkUnavailable_HasDescription 2ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_NotAuthenticated_HasDescription 3ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_NotDownloaded_HasDescription 2ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_PlayerCreationFailed_HasDescription 2ms
โœ… AudiobookSessionErrorTests testAudiobookSessionError_Unknown_PreservesMessage 4ms
โœ… AudiobookSessionManagerTests testBackgroundCompletionHandlerRegistration 207ms
โœ… AudiobookSessionManagerTests testRegisterActiveDownload 104ms
โœ… AudiobookSessionManagerTests testUpdateDownloadProgress 212ms
โœ… AudiobookSleepTimerIntegrationTests testEndOfChapterSleepTimer_savesPartialTime 256ms
โœ… AudiobookSleepTimerIntegrationTests testSleepTimer30Minutes_savesAllPlayedTime 2.10s
โœ… AudiobookSleepTimerIntegrationTests testSleepTimerCancelResume_preservesAllTime 942ms
โœ… AudiobookSleepTimerIntegrationTests testSleepTimerMultipleMinutes_createsSeparateEntries 34ms
โœ… AudiobookSleepTimerIntegrationTests testSleepTimerScenario_savesAllPlayedTime 80ms
โœ… AudiobookStorageLocationTests testApplicationSupportDirectoryExists 3ms
โœ… AudiobookStorageLocationTests testAudiobooksDirectoryPath 29ms
โœ… AudiobookStorageLocationTests testOverdriveDirectoryPath 2ms
โœ… AudiobookTOCTests testChapterName_MatchesAfterNavigation 14ms
โœ… AudiobookTOCTests testChapterName_SavedCorrectly 18ms
โœ… AudiobookTOCTests testChapter_AutoAdvanceToNext 24ms
โœ… AudiobookTOCTests testChapter_HasDuration 11ms
โœ… AudiobookTOCTests testChapter_PositionAtStart 12ms
โœ… AudiobookTOCTests testChapter_PositionInMiddle 17ms
โœ… AudiobookTOCTests testChapter_PositionPersistsAfterRestart 21ms
โœ… AudiobookTOCTests testChapter_SelectionPersistsAfterReturn 12ms
โœ… AudiobookTOCTests testChapter_TotalDuration 12ms
โœ… AudiobookTOCTests testTOC_ChaptersAreOrdered 14ms
โœ… AudiobookTOCTests testTOC_ChaptersHaveTitles 40ms
โœ… AudiobookTOCTests testTOC_ContentsAndBookmarksTabs 22ms
โœ… AudiobookTOCTests testTOC_HasChapters 13ms
โœ… AudiobookTOCTests testTOC_OpenFirstChapter 12ms
โœ… AudiobookTOCTests testTOC_OpenRandomChapter 27ms
โœ… AudiobookTOCTests testTOC_OpenSpecificChapter 19ms
โœ… AudiobookTOCTests testTOC_SwitchToBookmarks 11ms
โœ… AudiobookTOCTests testTOC_SwitchToChapters 16ms
โœ… AudiobookTimeTrackerLifecycleTests testAppTerminationNotification_savesData 250ms
โœ… AudiobookTimeTrackerLifecycleTests testStopAndSave_canBeCalledMultipleTimes 24ms
โœ… AudiobookTimeTrackerLifecycleTests testStopAndSave_savesAllAccumulatedTime 19ms
โœ… AudiobookTimeTrackerLifecycleTests testTimeEntryProperty_isThreadSafe 17ms
โœ… AudiobookTimeTrackerLifecycleTests testTrackerDeallocation_savesAccumulatedTime 56ms
โœ… AudiobookTimeTrackerTests testExactMinuteOfPlayback_savesCorrectTimeEntry 17ms
โœ… AudiobookTimeTrackerTests testMultipleMinuteBoundaries_createsMultipleEntries 12ms
โœ… AudiobookTimeTrackerTests testNoPlayback_savesNoTimeEntry 13ms
โœ… AudiobookTimeTrackerTests testPlaybackStarted_savesCorrectAggregateTime 12ms
โœ… AudiobookTimeTrackerTests testPlaybackStopped_stopsTimer 19ms
โœ… AudiobookTimeTrackerTests testSaveCurrentDuration_savesTimeEntryCorrectly 48ms
โœ… AudiobookTimeTrackerTests testTimeEntries_areInUTC 33ms
โœ… AudiobookTimeTrackerTests testTimeEntries_areLimitedTo60Seconds 17ms
โœ… AudiobookTimeTrackerTests testTimeEntry_hasCorrectMetadata 49ms
โœ… AudiobookmarkTests testDecodeEarlyBookmark 15ms
โœ… AudiobookmarkTests testDecodeLocatorAudioBookTime2 3ms
โœ… AudiobookmarkTests testDecodeNewerBookmark 3ms
โœ… AudiobookmarkTests testEncodeAndDecodeBookmark 12ms
โœ… AuthErrorCategoryTests testHTTPURLResponse_bare401WithoutProblemDoc_shouldIndicateAuthRefresh 3ms
โœ… AuthErrorCategoryTests testHTTPURLResponse_withOldCredentialsInvalidType_shouldIndicateAuthRefresh 11ms
โœ… AuthErrorCategoryTests testHTTPURLResponse_withRecoverableError_shouldIndicateAuthRefresh 10ms
โœ… AuthErrorCategoryTests testHTTPURLResponse_withUnrecoverableError_shouldNotIndicateAuthRefresh 4ms
โœ… AuthErrorCategoryTests testHTTPURLResponse_withUnrecoverableNoAccess_shouldNotIndicateAuthRefresh 29ms
โœ… AuthErrorCategoryTests testProblemDocument_nilType_isNeitherCategory 3ms
โœ… AuthErrorCategoryTests testProblemDocument_nonAuthType_isNeitherCategory 19ms
โœ… AuthErrorCategoryTests testProblemDocument_recoverableSAMLBearerTokenInvalid_isRecoverable 8ms
โœ… AuthErrorCategoryTests testProblemDocument_recoverableSAMLSessionExpired_isRecoverable 6ms
โœ… AuthErrorCategoryTests testProblemDocument_recoverableTokenExpired_isRecoverable 8ms
โœ… AuthErrorCategoryTests testProblemDocument_unrecoverableInvalidCredentials_isUnrecoverable 8ms
โœ… AuthErrorCategoryTests testProblemDocument_unrecoverableNoAccess_isUnrecoverable 1.57s
โœ… BackgroundListenerTests testOpenAccessListenerIdentifiesCorrectSessions 7ms
โœ… BackgroundListenerTests testOverdriveListenerIdentifiesCorrectSessions 405ms
โœ… BearerTokenRefreshTests testRefreshRequest_includesAuthHeader 2ms
โœ… BearerTokenRefreshTests testRefreshRequest_withoutToken_noAuthHeader 2ms
โœ… BearerTokenRefreshTests testSimplifiedBearerToken_isExpired_withPastDate 6ms
โœ… BearerTokenRefreshTests testSimplifiedBearerToken_isNotExpired_withFutureDate 2ms
โœ… BookButtonMapperHoldReadyTests testMap_DownloadingState_Unaffected 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_LimitedNoCopiesAvailability_ReturnsHolding 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_LimitedWithCopiesAvailability_ReturnsHolding 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_NilAvailability_ReturnsHolding 14ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_ReadyAvailability_ReturnsCanBorrow 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_ReservedAvailability_ReturnsHolding 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_UnavailableAvailability_ReturnsHolding 2ms
โœ… BookButtonMapperHoldReadyTests testMap_HoldingState_UnlimitedAvailability_ReturnsHolding 2ms
โœ… BookButtonMapperHoldReadyTests testMap_ProcessingDownload_Unaffected 2ms
โœ… BookButtonMapperHoldReadyTests testStateForAvailability_Nil_ReturnsNil 30ms
โœ… BookButtonMapperHoldReadyTests testStateForAvailability_Ready_ReturnsCanBorrow 2ms
โœ… BookButtonMapperHoldReadyTests testStateForAvailability_Reserved_ReturnsHoldingFrontOfQueue 3ms
โœ… BookButtonMapperTests testAllRegistryStatesAreMapped 7ms
โœ… BookButtonMapperTests testMapDownloadFailed 2ms
โœ… BookButtonMapperTests testMapDownloadNeeded 2ms
โœ… BookButtonMapperTests testMapDownloadSuccessful 2ms
โœ… BookButtonMapperTests testMapDownloading 2ms
โœ… BookButtonMapperTests testMapHolding 2ms
โœ… BookButtonMapperTests testMapReturning 2ms
โœ… BookButtonMapperTests testMapSAMLStarted 2ms
โœ… BookButtonMapperTests testMapUsed 2ms
โœ… BookButtonMapperTests testMappingIsDeterministic 2ms
โœ… BookButtonMapperTests testProcessingDownloadOverridesDownloadSuccessful 2ms
โœ… BookButtonMapperTests testProcessingDownloadOverridesState 1ms
โœ… BookButtonMapperTests testStateForNilAvailability 2ms
โœ… BookButtonMapperTests testUnregisteredWithNilAvailability 2ms
โœ… BookCellModelCacheInvalidationTests testCacheInvalidatesDownloadingToFailed 7ms
โœ… BookCellModelCacheInvalidationTests testCacheInvalidatesDownloadingToSuccessful 7ms
โœ… BookCellModelCacheInvalidationTests testCacheInvalidatesFailedToSuccessful 17ms
โœ… BookCellModelCacheInvalidationTests testCacheInvalidatesOnDirectInvalidation 12ms
โœ… BookCellModelCacheInvalidationTests testCacheReturnsDifferentModelsForDifferentBooks 8ms
โœ… BookCellModelCacheInvalidationTests testCacheReturnsSameModel 5ms
โœ… BookCellModelCacheInvalidationTests testClearAllRemovesAllModels 13ms
โœ… BookCellModelCacheInvalidationTests testInvalidateForSpecificBook 10ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_EmptyBooksArray_DoesNotCrash 7ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_EmptyBooksArray_WithNonZeroRange_DoesNotCrash 4ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_EndOfList_DoesNotAccessBeyondBounds 22ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_LargeBuffer_ClampsToArraySize 518ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_NegativeBufferRange_ClampsToZero 15ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_NormalRange_PreloadsModels 130ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_RangeExceedsArraySize_DoesNotCrash 29ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_SingleElementArray_DoesNotCrash 11ms
โœ… BookCellModelCachePrefetchSafetyTests testPrefetch_StartOfList_DoesNotAccessNegativeIndex 23ms
โœ… BookCellModelCacheTests testAggressiveConfiguration_HasLargerValues 2ms
โœ… BookCellModelCacheTests testCacheWithSameIdentifierDifferentUpdatedDate 112ms
โœ… BookCellModelCacheTests testClear 12ms
โœ… BookCellModelCacheTests testClearEmptyCache_DoesNotCrash 2ms
โœ… BookCellModelCacheTests testConcurrentAccess_DoesNotCrash 69ms
โœ… BookCellModelCacheTests testDefaultConfiguration_HasReasonableValues 2ms
โœ… BookCellModelCacheTests testDifferentBooksGetDifferentModels 11ms
โœ… BookCellModelCacheTests testDirectInvalidation_RefreshesModel 9ms
โœ… BookCellModelCacheTests testDirectInvalidation_WorksForHoldingState 9ms
โœ… BookCellModelCacheTests testDirectInvalidation_WorksForStateTransitions 10ms
โœ… BookCellModelCacheTests testInvalidate 8ms
โœ… BookCellModelCacheTests testInvalidateMultiple 13ms
โœ… BookCellModelCacheTests testInvalidateNonExistentKey_DoesNotCrash 2ms
โœ… BookCellModelCacheTests testLRUEviction 65ms
โœ… BookCellModelCacheTests testMemoryWarning 52ms
โœ… BookCellModelCacheTests testMemoryWarningOnEmptyCache_DoesNotCrash 2ms
โœ… BookCellModelCacheTests testModelCreation 8ms
โœ… BookCellModelCacheTests testModelReuse 6ms
โœ… BookCellModelCacheTests testModelUpdate_WithNewerBook_DefersUpdateToTask 129ms
โœ… BookCellModelCacheTests testModelUpdate_WithOlderBook_DoesNotUpdate 112ms
โœ… BookCellModelCacheTests testModelUpdate_WithSameBook_DoesNotUpdate 6ms
โœ… BookCellModelCacheTests testModelUpdatesWhenBookChanges 118ms
โœ… BookCellModelCacheTests testPrefetchWithEmptyRange_DoesNotCrash 4ms
โœ… BookCellModelCacheTests testPreload 33ms
โœ… BookCellModelCacheTests testPreloadEmptyArray_DoesNotCrash 2ms
โœ… BookCellModelStateTests testBookCellStateButtonState 2ms
โœ… BookCellModelStateTests testBookCellStateForDownloadFailed 4ms
โœ… BookCellModelStateTests testBookCellStateForDownloadInProgress 3ms
โœ… BookCellModelStateTests testBookCellStateForDownloadSuccessful 2ms
โœ… BookCellModelStateTests testDownloadErrorRoutesToCellAlertWhenHalfSheetHidden 17ms
โœ… BookCellModelStateTests testDownloadErrorRoutesToHalfSheetAlertWhenHalfSheetVisible 68ms
โœ… BookCellModelStateTests testInitialStateForDownloadFailed 8ms
โœ… BookCellModelStateTests testInitialStateForDownloadNeeded 19ms
โœ… BookCellModelStateTests testInitialStateForDownloading 7ms
โœ… BookCellModelStateTests testInitialStateForHolding 18ms
โœ… BookCellModelStateTests testInitialStateForUnregisteredBook 2.18s
โœ… BookCellModelStateTests testInitialStateMatchesRegistry 6ms
โœ… BookCellModelStateTests testIsLoadingCanBeSet 6ms
โœ… BookCellModelStateTests testIsLoadingDefaultsFalse 31ms
โœ… BookCellModelStateTests testValidateStateConsistencyDetectsMismatch 2.29s
โœ… BookCellModelStateTests testValidateStateConsistencyPasses 11ms
โœ… BookDetailViewModelTests testAllBookStates_HaveValidMapping 2ms
โœ… BookDetailViewModelTests testAllButtonStates_HaveValidButtonTypes 13ms
โœ… BookDetailViewModelTests testAvailability_Nil_ReturnsNil 2ms
โœ… BookDetailViewModelTests testAvailability_Unlimited_MapsToCanBorrow 3ms
โœ… BookDetailViewModelTests testBookContentType_Audiobook 4ms
โœ… BookDetailViewModelTests testBookContentType_EPUB 4ms
โœ… BookDetailViewModelTests testBookContentType_PDF 5ms
โœ… BookDetailViewModelTests testBookLane_Creation 388ms
โœ… BookDetailViewModelTests testBookLane_EmptyBooks 2ms
โœ… BookDetailViewModelTests testBookLane_WithNilURL 4ms
โœ… BookDetailViewModelTests testBook_GetExpirationDate_ReturnsDate_WhenLimitedAvailability 13ms
โœ… BookDetailViewModelTests testBook_GetExpirationDate_ReturnsNilForUnborrowed 4ms
โœ… BookDetailViewModelTests testButtonState_DownloadFailed_MapsToDownloadFailed 2ms
โœ… BookDetailViewModelTests testButtonState_DownloadNeeded_MapsToDownloadNeeded 2ms
โœ… BookDetailViewModelTests testButtonState_DownloadSuccessful_MapsToDownloadSuccessful 2ms
โœ… BookDetailViewModelTests testButtonState_Downloading_MapsToDownloadInProgress 2ms
โœ… BookDetailViewModelTests testButtonState_Holding_MapsToHolding 2ms
โœ… BookDetailViewModelTests testButtonState_IsProcessingDownload_MapsToDownloadInProgress 2ms
โœ… BookDetailViewModelTests testButtonState_Returning_MapsToReturning 3ms
โœ… BookDetailViewModelTests testButtonState_Unregistered_MapsToCanBorrow 4ms
โœ… BookDetailViewModelTests testButtonState_Used_MapsToUsed 6ms
โœ… BookDetailViewModelTests testButtonTypes_CanBorrowAudiobookWithSample_IncludesAudiobookSample 70ms
โœ… BookDetailViewModelTests testButtonTypes_CanBorrowWithSample_IncludesSampleButton 6ms
โœ… BookDetailViewModelTests testButtonTypes_CanBorrow_ReturnsGetButton 5ms
โœ… BookDetailViewModelTests testButtonTypes_CanHold_ReturnsReserveButton 6ms
โœ… BookDetailViewModelTests testButtonTypes_DownloadFailed_ReturnsCancelAndRetry 5ms
โœ… BookDetailViewModelTests testButtonTypes_DownloadInProgress_ReturnsCancelButton 5ms
โœ… BookDetailViewModelTests testButtonTypes_DownloadSuccessful_AudiobookReturnsListen 4ms
โœ… BookDetailViewModelTests testButtonTypes_DownloadSuccessful_EpubReturnsRead 4ms
โœ… BookDetailViewModelTests testButtonTypes_PreviewDisabled_ExcludesSampleButton 12ms
โœ… BookDetailViewModelTests testButtonTypes_Returning_ReturnsReturningButton 4ms
โœ… BookDetailViewModelTests testButtonTypes_Unsupported_ReturnsEmpty 5ms
โœ… BookDetailViewModelTests testCredentialCheck_AllowsActionWhenLoggedIn 2ms
โœ… BookDetailViewModelTests testCredentialCheck_PreventsActionWhenNotLoggedIn 2ms
โœ… BookDetailViewModelTests testDownloadProgress_IgnoresDifferentBook 684ms
โœ… BookDetailViewModelTests testDownloadProgress_NeverGoesBackwards 114ms
โœ… BookDetailViewModelTests testEnsureAuthPattern_ChecksCredentialsAfterModalDismiss 2ms
โœ… BookDetailViewModelTests testHalfSheet_DismissedOnHoldPlaced 2ms
โœ… BookDetailViewModelTests testHalfSheet_DismissedOnUnregistered 34ms
โœ… BookDetailViewModelTests testHalfSheet_StaysOpenDuringDownload 2ms
โœ… BookDetailViewModelTests testHalfSheet_StaysOpenOnDownloadFailed 2ms
โœ… BookDetailViewModelTests testHalfSheet_StaysOpenOnDownloadSuccess 3ms
โœ… BookDetailViewModelTests testHalfSheet_StaysOpenOnUsedState 3ms
โœ… BookDetailViewModelTests testHoldingState_ButtonTypesIncludeHoldManagement 10ms
โœ… BookDetailViewModelTests testHoldingState_MapsFromBorrowAttempt 3ms
โœ… BookDetailViewModelTests testManagedHoldState_ButtonTypes 8ms
โœ… BookDetailViewModelTests testProcessingButtonTypes_DownloadRelated 2ms
โœ… BookDetailViewModelTests testProcessingButtons_ClearedWhenLoginCancelled 27ms
โœ… BookDetailViewModelTests testRelatedBooks_ClearedWhenNavigatingToDifferentBook 11ms
โœ… BookDetailViewModelTests testRelatedBooks_PersistAfterViewReappears 13ms
โœ… BookDetailViewModelTests testRelatedBooks_PreservedDuringRefetchForSameBook 1.50s
โœ… BookDetailViewModelTests testViewModel_BookStatePublisher_TriggersBookUpdate 313ms
โœ… BookDetailViewModelTests testViewModel_ReceivesBookFromRegistry_NotCachedVersion 111ms
โœ… BookDetailViewModelTests testViewModel_UpdatesBookWhenRegistryChanges 114ms
โœ… BookPreviewTests testEpubBookPreviewExtraction 3ms
โœ… BookPreviewTests testOverdriveMPEGAudiobookExtraction 15ms
โœ… BookPreviewTests testOverdriveWaveAudiobookExtraction 4ms
โœ… BookPreviewTests testOverdriveWebAudiobookExtraction 4ms
โœ… BookmarkBusinessLogicExtendedTests testBookmarkAtIndex_negativeIndex_returnsNil 135ms
โœ… BookmarkBusinessLogicExtendedTests testBookmarkAtIndex_outOfBoundsIndex_returnsNil 134ms
โœ… BookmarkBusinessLogicExtendedTests testBookmarkAtIndex_validIndex_returnsBookmark 129ms
โœ… BookmarkBusinessLogicExtendedTests testDeleteBookmarkAtIndex_invalidIndex_returnsNil 122ms
โœ… BookmarkBusinessLogicExtendedTests testDeleteBookmarkAtIndex_outOfBounds_returnsNil 150ms
โœ… BookmarkBusinessLogicExtendedTests testDeleteBookmarkAtIndex_validIndex_removesAndReturns 111ms
โœ… BookmarkBusinessLogicExtendedTests testDeleteBookmark_existingBookmark_removes 135ms
โœ… BookmarkBusinessLogicExtendedTests testNoBookmarksText_returnsLocalizedString 142ms
โœ… BookmarkBusinessLogicExtendedTests testShouldAllowRefresh_checksSyncPermission 94ms
โœ… BookmarkBusinessLogicExtendedTests testShouldSelectBookmark_returnsTrue 118ms
โœ… BookmarkDeletionLogTests testUpdateLocalBookmarks_matchingLocalBookmark_preservesLocal 78ms
โœ… BookmarkDeletionLogTests testUpdateLocalBookmarks_serverBookmarkNotDeleted_addsLocally 100ms
โœ… BookmarkDeletionLogTests testUpdateLocalBookmarks_withPendingDeletion_deletesFromServer 83ms
โœ… BookmarkDeviceIdMatchingTests testUpdateLocalBookmarks_ServerBookmarkFromDifferentDevice_AddedLocally 109ms
โœ… BookmarkDeviceIdMatchingTests testUpdateLocalBookmarks_ServerBookmarkFromSameDevice_NotLocallyPresent_MarkedForDeletion 87ms
โœ… BookmarkDeviceIdMatchingTests testUpdateLocalBookmarks_ServerBookmarkWithNilDevice_AddedLocally 125ms
โœ… BookmarkExistenceTests testIsBookmarkExisting_differentProgress_returnsNil 92ms
โœ… BookmarkExistenceTests testIsBookmarkExisting_matchingBookmark_returnsBookmark 111ms
โœ… BookmarkExistenceTests testIsBookmarkExisting_noBookmarks_returnsNil 165ms
โœ… BookmarkExistenceTests testIsBookmarkExisting_withNilLocation_returnsNil 103ms
โœ… BookmarkReauthenticationTests testReauthenticator_UsedInBusinessLogic 86ms
โœ… BookmarkSortingTests testBookmarks_sortedByProgressWithinBook 173ms
โœ… BookmarkSyncTests testUpdateLocalBookmarks_addsServerBookmarks 77ms
โœ… BookmarkSyncTests testUpdateLocalBookmarks_handlesEmptyServerList 75ms
โœ… BookmarkSyncTests testUpdateLocalBookmarks_preservesFailedUploads 114ms
โœ… BorrowErrorMessageTests testAllRetryableParsingErrors_showUserFriendlyBaseMessage 2ms
โœ… BorrowErrorMessageTests testBookTitle_isIncludedInMessage 27ms
โœ… BorrowErrorMessageTests testDifferentBookTitles_produceDistinctMessages 2ms
โœ… BorrowErrorMessageTests testMessageFormat_matchesLegacyPattern_noProblemDoc 2ms
โœ… BorrowErrorMessageTests testMessageFormat_matchesLegacyPattern_withProblemDoc 2ms
โœ… BorrowErrorMessageTests testNetworkErrors_showUserFriendlyBaseMessage 2ms
โœ… BorrowErrorMessageTests testNilProblemDocument_usesRecoverySuggestion 2ms
โœ… BorrowErrorMessageTests testNoTechnicalErrorString_appearsAsMessage 3ms
โœ… BorrowErrorMessageTests testOPDSFeedInvalid_showsUserFriendlyMessage_notTechnicalError 2ms
โœ… BorrowErrorMessageTests testProblemDocument_takesPriorityOverRecoverySuggestion 2ms
โœ… BorrowErrorMessageTests testWithProblemDocument_appendsServerDetail 2ms
โœ… BorrowErrorMessageTests testWithProblemDocument_emptyDetail_fallsBackToBaseMessage 2ms
โœ… BorrowErrorMessageTests testWithProblemDocument_nilDetail_fallsBackToBaseMessage 2ms
โœ… ButtonStateTests testCanBorrowAudiobookWithPreview 60ms
โœ… ButtonStateTests testCanBorrowAudiobookWithoutPreview 25ms
โœ… ButtonStateTests testCanBorrowEpubWithPreview 8ms
โœ… ButtonStateTests testCanBorrowEpubWithoutPreview 4ms
โœ… ButtonStateTests testCanHoldAudiobookWithPreview 8ms
โœ… ButtonStateTests testCanHoldAudiobookWithoutPreview 11ms
โœ… ButtonStateTests testCanHoldEpubWithPreview 6ms
โœ… ButtonStateTests testCanHoldEpubWithoutPreview 7ms
โœ… ButtonStateTests testDownloadFailed 5ms
โœ… ButtonStateTests testDownloadInProgress 6ms
โœ… ButtonStateTests testDownloadNeededAudiobook 4ms
โœ… ButtonStateTests testDownloadNeededEpub 7ms
โœ… ButtonStateTests testDownloadSuccessfulAudiobook 6ms
โœ… ButtonStateTests testDownloadSuccessfulEpub 9ms
โœ… ButtonStateTests testDownloadSuccessfulPDF 3.74s
โœ… ButtonStateTests testHoldingAudiobookWithPreview 4ms
โœ… ButtonStateTests testHoldingAudiobookWithoutPreview 10ms
โœ… ButtonStateTests testHoldingEpubWithPreview 4ms
โœ… ButtonStateTests testHoldingEpubWithoutPreview 5ms
โœ… ButtonStateTests testHoldingFrontOfQueue 9ms
โœ… ButtonStateTests testUnsupported 8ms
โœ… ButtonStateTests testUsedEpub 7ms
โœ… C64ConversionTests testC64ConverionWithAccentedString 79ms
โœ… C64ConversionTests testC64ConverionWithEmptyString 2ms
โœ… C64ConversionTests testC64ConverionWithNilString 2ms
โœ… C64ConversionTests testC64ConverionWithRegularString 2ms
โœ… C64ConversionTests testC64ConverionWithSpecialCharacters 3ms
โœ… C64ConversionTests testC64ConverionWithUnicodeCharecters 4ms
โœ… CarPlayChapterListTests testCarPlayBridge_NoChaptersAvailable_ReturnsNil 5ms
โœ… CarPlayChapterListTests testCarPlayBridge_NoPlayback_CurrentChapterIsNil 38ms
โœ… CarPlayChapterListTests testCarPlayBridge_SkipToChapter_WithoutPlayback_DoesNotCrash 11ms
โœ… CarPlayIntegrationTests testCarPlayTemplateIntegration_BookSelectionHandling 12ms
โœ… CarPlayIntegrationTests testCarPlay_ImageProvider_CachesBehavior 16ms
โœ… CarPlayLibraryRefreshTests testCarPlay_BookRegistry_IsAccessible 2ms
โœ… CarPlayLibraryRefreshTests testCarPlay_DownloadedAudiobooks_CanBeFiltered 2ms
โœ… CarPlayLibraryRefreshTests testCarPlay_LibraryName_CanBeUpdated 6ms
โœ… CarPlayNowPlayingTemplateTests testCarPlayBridge_DoesNotConfigureNowPlayingOnInit 4ms
โœ… CarPlayNowPlayingTemplateTests testCarPlayBridge_HasPlaybackStatePublisher 506ms
โœ… CarPlayNowPlayingTemplateTests testCarPlayBridge_NowPlayingConfigurationIsIdempotent 2ms
โœ… CarPlayNowPlayingTemplateTests testCarPlayImageProvider_InitializesIndependently 17ms
โœ… CarPlayOpenAppAlertTests testCarPlay_OpenAppMessage_MentionsPalace 2ms
โœ… CarPlayOpenAppAlertTests testCarPlay_OpenAppMessage_MentionsPhone 2ms
โœ… CarPlayOpenAppAlertTests testCarPlay_OpenAppStrings_AreConfigured 3ms
โœ… CarPlayOpenAppAlertTests testSceneDelegate_HasMainSceneConnected_Flag 2ms
โœ… CarPlayPlaybackErrorTests testAudiobookSessionError_MapsToCarPlayAlert 160ms
โœ… CarPlayPlaybackErrorTests testCarPlay_ErrorStrings_AuthRequired 4ms
โœ… CarPlayPlaybackErrorTests testCarPlay_ErrorStrings_NotDownloaded 4ms
โœ… CarPlayPlaybackErrorTests testCarPlay_ErrorStrings_Offline 4ms
โœ… CarPlayPlaybackErrorTests testCarPlay_ErrorStrings_PlaybackFailed 2ms
โœ… CarPlayTests testAudiobookSessionManager_Initialization 4ms
โœ… CarPlayTests testCarPlayBridge_Initialization 6ms
โœ… CarPlayTests testCarPlayImageProvider_GeneratesPlaceholder 6ms
โœ… CarPlayTests testCarPlay_BookDownloadedState 4ms
โœ… CarPlayTests testCarPlay_ChapterListFormatting 2ms
โœ… CarPlayTests testCarPlay_ChapterNumber_Formatting 2ms
โœ… CarPlayTests testCarPlay_ErrorStrings_NotEmpty 3ms
โœ… CarPlayTests testCarPlay_FiltersOnlyAudiobooks 7ms
โœ… CarPlayTests testCarPlay_NoEbooksInLibrary 6ms
โœ… CarPlayTests testCarPlay_ShortDurationFormatting 2ms
โœ… CarPlayTests testCarPlay_UIStrings_NotEmpty 3ms
โœ… CarPlayTests testCarPlay_ZeroDurationFormatting 2ms
โœ… CarPlayTimeTrackingTests testCarPlayChapterSkip_properlyTracksTime 33ms
โœ… CarPlayTimeTrackingTests testCarPlayDisconnect_trackerContinuesIndependently 116ms
โœ… CarPlayTimeTrackingTests testCarPlayPlayback_usesStandardTrackerDelegateMethods 21ms
โœ… CatalogAccessibilityTests testCollapseSectionLabel_isDescriptive 2ms
โœ… CatalogAccessibilityTests testExpandCollapseLabel_changesWithState 3ms
โœ… CatalogAccessibilityTests testExpandCollapseLabels_areDifferent 2ms
โœ… CatalogAccessibilityTests testExpandSectionLabel_isDescriptive 2ms
โœ… CatalogAccessibilityTests testMoreBooksInLaneLabel_includesLaneTitle 3ms
โœ… CatalogAccessibilityTests testMoreBooksLabel_differsForDifferentLanes 5ms
โœ… CatalogAccessibilityTests testMoreBooksLabel_indicatesNavigation 3ms
โœ… CatalogAccessibilityTests testSwitchLibraryLabel_isDescriptive 2ms
โœ… CatalogCacheMetadataTests testDecode_FromValidJSON 2ms
โœ… CatalogCacheMetadataTests testEncodeDecode_PreservesAllProperties 2ms
โœ… CatalogCacheMetadataTests testEncodeDecode_WithEmptyHash 2ms
โœ… CatalogCacheMetadataTests testEncodeDecode_WithSpecialCharactersInHash 3ms
โœ… CatalogCacheMetadataTests testHash_IsCaseSensitive 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithCacheExactly24Hours_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithCacheJustOver24Hours_ReturnsTrue 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithCacheOver24Hours_ReturnsTrue 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithCacheUnder24Hours_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithFreshCache_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsExpired_WithVeryOldTimestamp 1ms
โœ… CatalogCacheMetadataTests testIsStale_WithCacheExactly5Minutes_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsStale_WithCacheJustOver5Minutes_ReturnsTrue 2ms
โœ… CatalogCacheMetadataTests testIsStale_WithCacheOver5Minutes_ReturnsTrue 2ms
โœ… CatalogCacheMetadataTests testIsStale_WithCacheUnder5Minutes_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsStale_WithFreshCache_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testIsStale_WithFutureTimestamp_ReturnsFalse 2ms
โœ… CatalogCacheMetadataTests testStaleAndExpired_ExpiredCacheIsAlsoStale 2ms
โœ… CatalogCacheMetadataTests testStaleAndExpired_FreshCache_NeitherStaleNorExpired 3ms
โœ… CatalogCacheMetadataTests testStaleAndExpired_StaleButNotExpired 2ms
โœ… CatalogFilterGroupModelTests testEdgeCase_EmptyGroupName 2ms
โœ… CatalogFilterGroupModelTests testEdgeCase_SpecialCharactersInName 2ms
โœ… CatalogFilterGroupModelTests testEquality_DifferentFiltersMakesGroupsUnequal 2ms
โœ… CatalogFilterGroupModelTests testEquality_DifferentIdsMakesGroupsUnequal 2ms
โœ… CatalogFilterGroupModelTests testEquality_DifferentNamesMakesGroupsUnequal 2ms
โœ… CatalogFilterGroupModelTests testEquality_IdenticalGroupsAreEqual 2ms
โœ… CatalogFilterGroupModelTests testFilters_FilterByHrefPresence 2ms
โœ… CatalogFilterGroupModelTests testFilters_FindActiveFilter 6ms
โœ… CatalogFilterGroupModelTests testFilters_MultipleActiveFilters 2ms
โœ… CatalogFilterGroupModelTests testFilters_NoActiveFilter 30ms
โœ… CatalogFilterGroupModelTests testHashable_EqualGroupsHaveSameHash 2ms
โœ… CatalogFilterGroupModelTests testHashable_GroupsCanBeUsedInSet 2ms
โœ… CatalogFilterGroupModelTests testIdentifiable_UsesIdProperty 2ms
โœ… CatalogFilterGroupModelTests testInit_StoresAllProperties 2ms
โœ… CatalogFilterGroupModelTests testInit_WithEmptyFilters 21ms
โœ… CatalogFilterGroupModelTests testInit_WithManyFilters 2ms
โœ… CatalogFilterGroupModelTests testInit_WithSingleFilter 2ms
โœ… CatalogFilterGroupTests testCatalogFilterGroup_ActiveFilter 6ms
โœ… CatalogFilterGroupTests testCatalogFilterGroup_EmptyFilters 2ms
โœ… CatalogFilterGroupTests testCatalogFilterGroup_StoresProvidedValues 6ms
โœ… CatalogFilterModelTests testEdgeCase_ComplexURL 2ms
โœ… CatalogFilterModelTests testEdgeCase_EmptyStringId 2ms
โœ… CatalogFilterModelTests testEdgeCase_EmptyStringTitle 2ms
โœ… CatalogFilterModelTests testEdgeCase_SpecialCharactersInTitle 3ms
โœ… CatalogFilterModelTests testEdgeCase_UnicodeInTitle 2ms
โœ… CatalogFilterModelTests testEquality_DifferentActiveStateMakesFiltersUnequal 3ms
โœ… CatalogFilterModelTests testEquality_DifferentHrefMakesFiltersUnequal 34ms
โœ… CatalogFilterModelTests testEquality_DifferentIdsMakesFiltersUnequal 2ms
โœ… CatalogFilterModelTests testEquality_DifferentTitlesMakesFiltersUnequal 2ms
โœ… CatalogFilterModelTests testEquality_IdenticalFiltersAreEqual 2ms
โœ… CatalogFilterModelTests testEquality_NilAndNonNilHrefMakesFiltersUnequal 1ms
โœ… CatalogFilterModelTests testHashable_DifferentFiltersCanBeUsedInSet 2ms
โœ… CatalogFilterModelTests testHashable_EqualFiltersHaveSameHash 2ms
โœ… CatalogFilterModelTests testIdentifiable_UsesIdProperty 1ms
โœ… CatalogFilterModelTests testInit_StoresAllProperties 3ms
โœ… CatalogFilterModelTests testInit_WithInactiveState 1ms
โœ… CatalogFilterModelTests testInit_WithNilHref 2ms
โœ… CatalogFilterTests testCatalogFilter_ActiveState 5ms
โœ… CatalogFilterTests testCatalogFilter_StoresProvidedValues 21ms
โœ… CatalogFilterTests testCatalogFilter_WithNilHref 2ms
โœ… CatalogLaneModelStructTests testBooks_EmptyCollection 2ms
โœ… CatalogLaneModelStructTests testBooks_LargeCollection 187ms
โœ… CatalogLaneModelStructTests testBooks_MixedContentTypes 8ms
โœ… CatalogLaneModelStructTests testBooks_MultipleBooks 21ms
โœ… CatalogLaneModelStructTests testBooks_OrderPreserved 12ms
โœ… CatalogLaneModelStructTests testBooks_SingleBook 6ms
โœ… CatalogLaneModelStructTests testEdgeCase_ComplexMoreURL 2ms
โœ… CatalogLaneModelStructTests testEdgeCase_EmptyTitle 2ms
โœ… CatalogLaneModelStructTests testEdgeCase_LongTitle 4ms
โœ… CatalogLaneModelStructTests testEdgeCase_SpecialCharactersInTitle 2ms
โœ… CatalogLaneModelStructTests testEdgeCase_UnicodeInTitle 2ms
โœ… CatalogLaneModelStructTests testIdentifiable_HasUniqueId 2ms
โœ… CatalogLaneModelStructTests testIdentifiable_IdIsUUID 2ms
โœ… CatalogLaneModelStructTests testInit_StoresAllProperties 6ms
โœ… CatalogLaneModelStructTests testInit_WithDefaultIsLoading 2ms
โœ… CatalogLaneModelStructTests testInit_WithLoadingState 3ms
โœ… CatalogLaneModelStructTests testInit_WithNilMoreURL 2ms
โœ… CatalogLaneModelStructTests testSnapshotBooks_WithDeterministicData 6ms
โœ… CatalogLaneModelTests testCatalogLaneModel_HasUniqueId 7ms
โœ… CatalogLaneModelTests testCatalogLaneModel_LoadingState 4ms
โœ… CatalogLaneModelTests testCatalogLaneModel_StoresProvidedValues 3ms
โœ… CatalogLaneModelTests testCatalogLaneModel_WithBooks 10ms
โœ… CatalogLaneMoreViewModelTests testActiveFiltersCount_AfterClearingSelections 2ms
โœ… CatalogLaneMoreViewModelTests testActiveFiltersCount_FiltersOutAllDefaults 2ms
โœ… CatalogLaneMoreViewModelTests testActiveFiltersCount_WhenEmpty 2ms
โœ… CatalogLaneMoreViewModelTests testActiveFiltersCount_WithAppliedSelections 2ms
โœ… CatalogLaneMoreViewModelTests testActiveSortTitle_WhenActiveFacetExists_ReturnsTitle 2ms
โœ… CatalogLaneMoreViewModelTests testActiveSortTitle_WhenNoActiveFacet_ReturnsNil 2ms
โœ… CatalogLaneMoreViewModelTests testAllBooks_CombinesMultipleLanes 7ms
โœ… CatalogLaneMoreViewModelTests testAllBooks_EmptyWhenNoData 4ms
โœ… CatalogLaneMoreViewModelTests testAllBooks_WhenLanesEmpty_ReturnsUngroupedBooks 7ms
โœ… CatalogLaneMoreViewModelTests testAllBooks_WhenLanesHaveBooks_ReturnsLaneBooks 18ms
โœ… CatalogLaneMoreViewModelTests testAppliedSelectionsUpdate 2ms
โœ… CatalogLaneMoreViewModelTests testErrorPublishes 3ms
โœ… CatalogLaneMoreViewModelTests testError_CanBeCleared 2ms
โœ… CatalogLaneMoreViewModelTests testError_CanBeSet 2ms
โœ… CatalogLaneMoreViewModelTests testFacetGroups_MultipleGroups 2ms
โœ… CatalogLaneMoreViewModelTests testFilterStateInitialValues 2ms
โœ… CatalogLaneMoreViewModelTests testInitialState 20ms
โœ… CatalogLaneMoreViewModelTests testIsApplyingFiltersInitiallyFalse 2ms
โœ… CatalogLaneMoreViewModelTests testIsLoadingMoreInitiallyFalse 2ms
โœ… CatalogLaneMoreViewModelTests testIsLoadingPublishes 3ms
โœ… CatalogLaneMoreViewModelTests testLanesPublishes 3ms
โœ… CatalogLaneMoreViewModelTests testPagination_ClearedWhenNil 4ms
โœ… CatalogLaneMoreViewModelTests testPagination_NextPageURLCanBeSet 4ms
โœ… CatalogLaneMoreViewModelTests testPendingSelectionsUpdate 2ms
โœ… CatalogLaneMoreViewModelTests testShouldShowPagination_WhenNextPageURLExists 3ms
โœ… CatalogLaneMoreViewModelTests testShowSearchToggle 2ms
โœ… CatalogLaneMoreViewModelTests testShowingFiltersSheetToggle 2ms
โœ… CatalogLaneMoreViewModelTests testShowingSortSheetToggle 4ms
โœ… CatalogLaneMoreViewModelTests testSortFacets_WhenNoSortGroup_ReturnsEmpty 2ms
โœ… CatalogLaneMoreViewModelTests testSortFacets_WhenSortGroupExists_ReturnsFacets 3ms
โœ… CatalogLaneMoreViewModelTests testTitle_Empty 37ms
โœ… CatalogLaneMoreViewModelTests testTitle_WithSpecialCharacters 5ms
โœ… CatalogLaneMoreViewModelTests testUIStateInitialValues 2ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_audiobookFormat 4ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_audiobookIncludesAudiobookDesignation 4ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_bookWithoutAuthor 5ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_ebookDoesNotIncludeAudiobookDesignation 4ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_includesTitleAndAuthor 5ms
โœ… CatalogLaneRowViewAccessibilityTests testAccessibilityLabel_usesCommaSeparatedFormat 6ms
โœ… CatalogLaneSortingTests testExtractFacets_ActiveSortFacet_IsMarkedActive 17ms
โœ… CatalogLaneSortingTests testExtractFacets_GroupedFeedWithSortFacets_ExtractsSortGroup 41ms
โœ… CatalogLaneSortingTests testLaneMoreViewModel_ActiveSortTitle_ReturnsActiveFacetTitle 37ms
โœ… CatalogLaneSortingTests testLaneMoreViewModel_GroupedFeedWithSortFacets_ExposesSortFacets 42ms
โœ… CatalogRepositoryTests testFetchFeed_DoesNotCache_AlwaysFetchesFresh 5ms
โœ… CatalogRepositoryTests testFetchFeed_NetworkError_ThrowsError 4ms
โœ… CatalogRepositoryTests testFetchFeed_Success_ReturnsFeed 5ms
โœ… CatalogRepositoryTests testIntegration_ErrorPropagation 7ms
โœ… CatalogRepositoryTests testIntegration_FullFetchFlow 6ms
โœ… CatalogRepositoryTests testInvalidateCache_ClearsSpecificURL 114ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_401Unauthorized_ThrowsError 4ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_500ServerError_ThrowsError 4ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_CachesFeed_ReturnsFromCache 5ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_ConcurrentRequests_DeduplicatesNetworkCalls 525ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_EmptyFeed_ReturnsEmptyEntries 12ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_InvalidXML_ThrowsParsingError 4ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_MultipleURLs_CachesIndependently 10ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_NetworkError_FallsBackToStaleCache 110ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_NetworkError_ThrowsError 5ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_PreservesQueryParameters 6ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_ProblemDocument_ParsesErrorDetails 18ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_SpecialCharactersInTitle_ParsesCorrectly 6ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_Success_ReturnsFeed 16ms
โœ… CatalogRepositoryTests testLoadTopLevelCatalog_UsesGETMethod 10ms
โœ… CatalogSearchViewModelRegistryUpdateTests testApplyRegistryUpdates_EmptyFilteredBooks_DoesNotCrash 3ms
โœ… CatalogSearchViewModelRegistryUpdateTests testApplyRegistryUpdates_MultipleRapidCalls_DoesNotCrash 124ms
โœ… CatalogSearchViewModelRegistryUpdateTests testApplyRegistryUpdates_NilChangedIdentifier_UpdatesAllBooks 10ms
โœ… CatalogSearchViewModelRegistryUpdateTests testApplyRegistryUpdates_UnknownIdentifier_NoChanges 5ms
โœ… CatalogSearchViewModelRegistryUpdateTests testApplyRegistryUpdates_WithBooks_UpdatesMatchingBook 7ms
โœ… CatalogSearchViewModelTests testApplyRegistryUpdates_DoesNotChangeSearchId 4ms
โœ… CatalogSearchViewModelTests testApplyRegistryUpdates_WithEmptyFilteredBooks_DoesNothing 4ms
โœ… CatalogSearchViewModelTests testClearSearch_CancelsPendingOperations 307ms
โœ… CatalogSearchViewModelTests testClearSearch_ChangesSearchId 3ms
โœ… CatalogSearchViewModelTests testClearSearch_ResetsState 9ms
โœ… CatalogSearchViewModelTests testClearSearch_RestoresAllBooks 8ms
โœ… CatalogSearchViewModelTests testConcurrentUpdates_DoNotCrash 12ms
โœ… CatalogSearchViewModelTests testInit_HasCorrectDefaults 3ms
โœ… CatalogSearchViewModelTests testLoadNextPage_DoesNotChangeSearchId 5ms
โœ… CatalogSearchViewModelTests testLoadNextPage_SetsIsLoadingMore 10ms
โœ… CatalogSearchViewModelTests testLoadNextPage_WhenAlreadyLoading_DoesNothing 7ms
โœ… CatalogSearchViewModelTests testLoadNextPage_WithNoNextURL_DoesNothing 3ms
โœ… CatalogSearchViewModelTests testPP3605_ApplyRegistryUpdates_DoesNotChangeSearchId 6ms
โœ… CatalogSearchViewModelTests testPP3605_ClearSearch_ChangesSearchId 7ms
โœ… CatalogSearchViewModelTests testPP3605_DifferentSearches_EachHaveUniqueSearchId 308ms
โœ… CatalogSearchViewModelTests testPP3605_LoadNextPage_DoesNotChangeSearchId 157ms
โœ… CatalogSearchViewModelTests testPP3605_NewSearch_ChangesSearchId 157ms
โœ… CatalogSearchViewModelTests testPP3673_clearSearch_doesNotAnnounce 363ms
โœ… CatalogSearchViewModelTests testPP3673_search_emptyQuery_doesNotAnnounce 254ms
โœ… CatalogSearchViewModelTests testPP3673_search_error_announcesFailure 254ms
โœ… CatalogSearchViewModelTests testPP3673_search_noResults_announcesNoResults 259ms
โœ… CatalogSearchViewModelTests testPP3673_search_rerun_announcesUpdatedResults 519ms
โœ… CatalogSearchViewModelTests testSearch_CancelsDebounce_OnNewQuery 364ms
โœ… CatalogSearchViewModelTests testSearch_CancelsInFlight_OnNewQuery 418ms
โœ… CatalogSearchViewModelTests testSearch_Debounces_DoesNotSearchDuringDebounceWindow 377ms
โœ… CatalogSearchViewModelTests testSearch_Debounces_MultipleQueries 209ms
โœ… CatalogSearchViewModelTests testSearch_DifferentQueries_HaveDifferentSearchIds 429ms
โœ… CatalogSearchViewModelTests testSearch_NewSearch_ChangesSearchId 209ms
โœ… CatalogSearchViewModelTests testSearch_SpecialCharacters_DoesNotCrash 216ms
โœ… CatalogSearchViewModelTests testSearch_UnicodeCharacters_Works 209ms
โœ… CatalogSearchViewModelTests testSearch_VeryLongQuery_Works 263ms
โœ… CatalogSearchViewModelTests testSearch_WithEmptyQuery_DoesNotCallRepository 104ms
โœ… CatalogSearchViewModelTests testSearch_WithEmptyQuery_ShowsAllBooks 114ms
โœ… CatalogSearchViewModelTests testSearch_WithError_ClearsNextPageURL 207ms
โœ… CatalogSearchViewModelTests testSearch_WithError_SetsErrorMessage 223ms
โœ… CatalogSearchViewModelTests testSearch_WithNilBaseURL_ClearsNextPageURL 207ms
โœ… CatalogSearchViewModelTests testSearch_WithNilBaseURL_DoesNotSearch 208ms
โœ… CatalogSearchViewModelTests testSearch_WithNilResult_SetsEmptyResults 220ms
โœ… CatalogSearchViewModelTests testSearch_WithResults_UpdatesResults 213ms
โœ… CatalogSearchViewModelTests testSearch_WithValidQuery_CallsRepository 258ms
โœ… CatalogSearchViewModelTests testSearch_WithValidQuery_ClearsIsLoadingAfterCompletion 206ms
โœ… CatalogSearchViewModelTests testSearch_WithValidQuery_SetsIsSearching 57ms
โœ… CatalogSearchViewModelTests testSearch_WithWhitespaceOnlyQuery_DoesNotCallRepository 111ms
โœ… CatalogSearchViewModelTests testUpdateBooks_DoesNotChangeFilteredBooks_WhenQueryNotEmpty 6ms
โœ… CatalogSearchViewModelTests testUpdateBooks_EmptyArray_Works 2ms
โœ… CatalogSearchViewModelTests testUpdateBooks_LargeArray_Works 271ms
โœ… CatalogSearchViewModelTests testUpdateBooks_SetsFilteredBooks_WhenQueryEmpty 6ms
โœ… CatalogSortServiceTests testAllCases 3ms
โœ… CatalogSortServiceTests testSortByAuthorAZ 8ms
โœ… CatalogSortServiceTests testSortByAuthorZA 13ms
โœ… CatalogSortServiceTests testSortByRecentlyAddedAZ 8ms
โœ… CatalogSortServiceTests testSortByRecentlyAddedZA 8ms
โœ… CatalogSortServiceTests testSortByTitleAZ 7ms
โœ… CatalogSortServiceTests testSortByTitleZA 10ms
โœ… CatalogSortServiceTests testSortEmptyArray 2ms
โœ… CatalogSortServiceTests testSortOptionFromLocalizedString_invalidString_returnsNil 2ms
โœ… CatalogSortServiceTests testSortOptionFromLocalizedString_validStrings 2ms
โœ… CatalogSortServiceTests testSortOptionLocalizedStrings 2ms
โœ… CatalogSortServiceTests testSortSingleBook 6ms
โœ… CatalogSortServiceTests testSortWithNilAuthors 6ms
โœ… CatalogSortServiceTests testSortedReturnsNewArray 7ms
โœ… CatalogViewModelIntegrationTests testForceRefresh_SetsIsLoadingTrue 30ms
โœ… CatalogViewModelIntegrationTests testHandleAccountChange_SetsIsLoadingTrue 3ms
โœ… CatalogViewModelIntegrationTests testIsContentReloading_PublishesChanges 7ms
โœ… CatalogViewModelIntegrationTests testLoad_SetsIsLoadingTrue 3ms
โœ… CatalogViewModelIntegrationTests testLoad_WithError_SetsErrorMessage 22ms
โœ… CatalogViewModelIntegrationTests testLoad_WithNilResult_SetsErrorMessage 3ms
โœ… CatalogViewModelIntegrationTests testLoad_WithNilURL_DoesNotLoad 3ms
โœ… CatalogViewModelIntegrationTests testResetScrollTrigger_SetsFalse 2ms
โœ… CatalogViewModelIntegrationTests testSearchBaseURL_ReturnsCorrectURL 2ms
โœ… CatalogViewModelIntegrationTests testSearchRepository_ReturnsSameRepository 2ms
โœ… CatalogViewModelIntegrationTests testViewModel_InitialState_HasCorrectDefaults 2ms
โœ… CatalogViewModelOptimisticLoadingTests testApplyEntryPoint_WithNilHref_DoesNothing 35ms
โœ… CatalogViewModelOptimisticLoadingTests testApplyEntryPoint_WithValidHref_CallsRepository 7ms
โœ… CatalogViewModelOptimisticLoadingTests testApplyFacet_WithError_RestoresPreviousState 10ms
โœ… CatalogViewModelOptimisticLoadingTests testApplyFacet_WithNilHref_DoesNothing 5ms
โœ… CatalogViewModelOptimisticLoadingTests testApplyFacet_WithValidHref_CallsRepository 4ms
โœ… ConcurrentBookStateTests testConcurrent_differentContentTypes_supportedSimultaneously 12ms
โœ… ConcurrentBookStateTests testConcurrent_drmTypes_supportedSimultaneously 14ms
โœ… ConcurrentBookStateTests testConcurrent_multipleDownloads_independentStates 12ms
โœ… ConcurrentDownloadStateTests testMultipleBooks_canBeRegisteredSimultaneously 8ms
โœ… ConcurrentDownloadStateTests testMultipleBooks_canHaveDifferentStates 10ms
โœ… ConcurrentDownloadStateTests testMultipleBooks_stateChangesAreIndependent 6ms
โœ… ContinuousPlaybackTrackingTests testBiblioBoardScenario_61MinutesWithTrackChanges 126ms
โœ… ContinuousPlaybackTrackingTests testRapidTrackChanges_noTimeLoss 127ms
โœ… ContinuousPlaybackTrackingTests testTrackTransition_savesTimeBeforeNextTrackStarts 16ms
โœ… CrossDomain401Tests test200FromDifferentDomain_shouldNotIndicateAuthRefreshNeeded 3ms
โœ… CrossDomain401Tests test401FromDifferentDomain_shouldNotIndicateAuthRefreshNeeded 2ms
โœ… CrossDomain401Tests test401FromDifferentSubdomain_shouldIndicateAuthRefreshNeeded 2ms
โœ… CrossDomain401Tests test401FromSameDomain_shouldIndicateAuthRefreshNeeded 4ms
โœ… CrossDomain401Tests test401FromSameSubdomain_shouldIndicateAuthRefreshNeeded 3ms
โœ… CrossDomain401Tests test401WithNilOriginalURL_shouldIndicateAuthRefreshNeeded 4ms
โœ… CrossDomain401Tests test403FromDifferentDomain_shouldNotIndicateAuthRefreshNeeded 3ms
โœ… CrossDomain401Tests testProblemDocFromDifferentDomain_shouldNotIndicateAuthRefreshNeeded 7ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_localURLIsCorrect 3ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_storesLocalURL 2ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_storesSuggestedFilename 3ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_withEmptyFilename 7ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_withLongFilename 2ms
โœ… DRMFulfilledPublicationTests testDRMFulfilledPublication_withSpecialCharacters 2ms
โœ… DateExtensionTests testAddingDays_increasesDate 3ms
โœ… DateExtensionTests testDateComparison_differentDay 4ms
โœ… DateExtensionTests testDateComparison_sameDay 6ms
โœ… DateExtensionTests testISO8601_roundTrip 6ms
โœ… DateExtensionTests testRfc339String_includesTimezone 2ms
โœ… DateExtensionTests testRfc339String_producesValidFormat 2ms
โœ… DateExtensionTests testSubtractingDays_decreasesDate 2ms
โœ… DateExtensionTests testTimeIntervalSinceNow_negative 3ms
โœ… DateExtensionTests testTimeIntervalSinceNow_positive 2ms
โœ… DateFormattingTests testCustomFormat 2ms
โœ… DateFormattingTests testLongDateFormat 2ms
โœ… DateFormattingTests testShortDateFormat 2ms
โœ… DateFormattingTests testTimeFormat 2ms
โœ… Date_NYPLAdditionsTests testISO8601FullDateParsing 11ms
โœ… Date_NYPLAdditionsTests testInvalidRFC3339Date 2ms
โœ… Date_NYPLAdditionsTests testParsesRFC3339DateCorrectly 3ms
โœ… Date_NYPLAdditionsTests testParsesRFC3339DateWithFractionalSecondsCorrectly 18ms
โœ… Date_NYPLAdditionsTests testRFC1123 2ms
โœ… Date_NYPLAdditionsTests testRFC1123Performance 505ms
โœ… Date_NYPLAdditionsTests testRFC3339RoundTrip 3ms
โœ… DefaultCatalogAPITests testCatalogAPI_IntegrationWithRepository_HandlesErrors 5ms
โœ… DefaultCatalogAPITests testCatalogAPI_IntegrationWithRepository_WorksCorrectly 5ms
โœ… DefaultCatalogAPITests testFetchFeed_AfterReset_CallCountResetsToZero 3ms
โœ… DefaultCatalogAPITests testFetchFeed_DefaultResponse_UsedWhenNoStubSet 31ms
โœ… DefaultCatalogAPITests testFetchFeed_DifferentURLs_ReturnDifferentStubs 4ms
โœ… DefaultCatalogAPITests testFetchFeed_EmptyFeed_ReturnsEmptyEntries 4ms
โœ… DefaultCatalogAPITests testFetchFeed_EmptyResponseData_ThrowsParsingError 4ms
โœ… DefaultCatalogAPITests testFetchFeed_FailAfterMultipleCalls_SimulatesIntermittentFailure 26ms
โœ… DefaultCatalogAPITests testFetchFeed_GlobalError_AffectsAllRequests 4ms
โœ… DefaultCatalogAPITests testFetchFeed_InvalidXML_ThrowsParsingError 2ms
โœ… DefaultCatalogAPITests testFetchFeed_MultipleCalls_TracksAllRequests 3ms
โœ… DefaultCatalogAPITests testFetchFeed_NetworkError_ThrowsError 2ms
โœ… DefaultCatalogAPITests testFetchFeed_ServerError500_ThrowsError 3ms
โœ… DefaultCatalogAPITests testFetchFeed_SpecialCharactersInFeedTitle_ParsesCorrectly 3ms
โœ… DefaultCatalogAPITests testFetchFeed_Timeout_ThrowsError 4ms
โœ… DefaultCatalogAPITests testFetchFeed_TracksRequestDetails 18ms
โœ… DefaultCatalogAPITests testFetchFeed_URLWithQueryParameters_PreservesParameters 3ms
โœ… DefaultCatalogAPITests testFetchFeed_UnauthorizedError_ThrowsError 4ms
โœ… DefaultCatalogAPITests testFetchFeed_UsesGETMethod 3ms
โœ… DefaultCatalogAPITests testFetchFeed_ValidOPDSResponse_ReturnsParsedFeed 12ms
โœ… DeriveInitialStateTests testDeriveInitialState_ForBookWithoutAcquisition_ReturnsUnsupported 3ms
โœ… DeriveInitialStateTests testDeriveInitialState_ForReadyBook_ReturnsHolding 7ms
โœ… DeriveInitialStateTests testDeriveInitialState_ForReservedBook_ReturnsHolding 5ms
โœ… DeriveInitialStateTests testDeriveInitialState_ForStandardBook_ReturnsDownloadNeeded 11ms
โœ… DeviceLogCollectorGapTests testDeviceLogCollector_collectLogs_exercisesFormattingMethods 2.32s
โœ… DeviceLogCollectorGapTests testDeviceLogCollector_collectLogs_outputContainsFormattedStructure 2.25s
โœ… DeviceLogCollectorTests testCollectLogs_capturesRecentOSLogEntries 2.21s
โœ… DeviceLogCollectorTests testCollectLogs_containsEndMarker 1.53s
โœ… DeviceLogCollectorTests testCollectLogs_containsExpectedHeader 1.75s
โœ… DeviceLogCollectorTests testCollectLogs_defaultParameterIs7Days 1.65s
โœ… DeviceLogCollectorTests testCollectLogs_formattedEntriesContainExpectedFields 2.07s
โœ… DeviceLogCollectorTests testCollectLogs_outputIsValidUTF8 1.61s
โœ… DeviceLogCollectorTests testCollectLogs_reportsEntryCount 1.51s
โœ… DeviceLogCollectorTests testCollectLogs_returnsNonEmptyData 1.53s
โœ… DeviceLogCollectorTests testCollectLogs_withCustomDayRange_reflectsInOutput 1.55s
โœ… DeviceOrientationTests testDeviceOrientation_isObservableObject 8ms
โœ… DeviceOrientationTests testInitialIsLandscape_basedOnScreenDimensions 3ms
โœ… DeviceOrientationTests testIsLandscape_isPublished 5ms
โœ… DeviceOrientationTests testStartAndStopTracking_multipleTimesDoesNotCrash 5ms
โœ… DeviceOrientationTests testStartTracking_doesNotCrash 4ms
โœ… DeviceOrientationTests testStopTracking_beforeStartTracking_doesNotCrash 3ms
โœ… DeviceOrientationTests testStopTracking_doesNotCrash 6ms
โœ… DeviceSpecificErrorMonitorTests testGetDeviceID_isConsistent 2ms
โœ… DeviceSpecificErrorMonitorTests testGetDeviceID_looksLikeUUID 6ms
โœ… DeviceSpecificErrorMonitorTests testGetDeviceID_returnsNonEmptyString 2ms
โœ… DeviceSpecificErrorMonitorTests testGetDeviceInfo_containsExpectedKeys 2ms
โœ… DeviceSpecificErrorMonitorTests testGetDeviceInfo_valuesAreNonEmpty 2ms
โœ… DeviceSpecificErrorMonitorTests testIsEnhancedLoggingEnabled_returnsBool 3ms
โœ… DeviceSpecificErrorMonitorTests testLogError_doesNotCrash 3ms
โœ… DeviceSpecificErrorMonitorTests testLogError_withMetadata_doesNotCrash 2ms
โœ… DeviceSpecificErrorMonitorTests testLogNetworkFailure_doesNotCrash 18ms
โœ… DeviceSpecificErrorMonitorTests testShared_isNotNil 7ms
โœ… DeviceSpecificErrorMonitorTests testShared_returnsSameInstance 2ms
โœ… DiskBudgetTests testContentDirectory_createdOnAccess 148ms
โœ… DiskBudgetTests testDiskSpace_available_returnsPositiveValue 3ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_concurrentCompletions_maintainsConsistency 14ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_concurrentRegistrations_maintainsConsistency 9ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_downloadInfoCache_storesMultipleEntries 7ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_downloadInfoCache_updatesExistingEntry 3ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_mixedOperations_maintainsConsistency 15ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_partialDequeue_leavesRemainder 16ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_queueFIFO_maintainsOrder 8ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_throttling_returnsDelayAfterRecentStart 2ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_throttling_returnsZeroAfterDelay 6ms
โœ… DownloadCoordinatorIntegrationTests testCoordinator_zeroCapacityDequeue_returnsEmpty 8ms
โœ… DownloadCoordinatorTests testCoordinator_cacheDownloadInfo_storesAndRetrieves 3ms
โœ… DownloadCoordinatorTests testCoordinator_canStartDownload_respectsMaxConcurrent 2ms
โœ… DownloadCoordinatorTests testCoordinator_canStartDownload_withinLimit 3ms
โœ… DownloadCoordinatorTests testCoordinator_dequeuePending_returnsBooks 6ms
โœ… DownloadCoordinatorTests testCoordinator_enqueuePending_addsToQueue 5ms
โœ… DownloadCoordinatorTests testCoordinator_enqueuePending_preventsDuplicates 13ms
โœ… DownloadCoordinatorTests testCoordinator_redirectAttempts_tracksCorrectly 2ms
โœ… DownloadCoordinatorTests testCoordinator_registerCompletion_decrementsActiveCount 3ms
โœ… DownloadCoordinatorTests testCoordinator_registerStart_incrementsActiveCount 2ms
โœ… DownloadCoordinatorTests testCoordinator_removeCachedDownloadInfo_removesEntry 2ms
โœ… DownloadCoordinatorTests testCoordinator_reset_clearsAllState 4ms
โœ… DownloadDiskSpaceTests testAvailableDiskSpace_isPositive 2ms
โœ… DownloadDiskSpaceTests testDocumentsDirectory_exists 2ms
โœ… DownloadErrorInfoTests testConvenienceInit_setsFieldsCorrectly 2ms
โœ… DownloadErrorInfoTests testFullInit_withNilRetryAction 9ms
โœ… DownloadErrorInfoTests testFullInit_withRetryAction 2ms
โœ… DownloadErrorRecoveryPolicyTests testAggressivePolicy_hasMoreAttempts 6ms
โœ… DownloadErrorRecoveryPolicyTests testBorrowOperationPolicy_exists 13ms
โœ… DownloadErrorRecoveryPolicyTests testConservativePolicy_hasFewerAttempts 2ms
โœ… DownloadErrorRecoveryPolicyTests testDefaultPolicy_hasReasonableDefaults 3ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_failsAfterMaxAttempts 55ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_immediateSuccess_noRetries 4ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_nonRetryableError_failsImmediately 3ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_retriesOnTransientError 45ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_successfulOperation_returnsResult 3ms
โœ… DownloadErrorRecoveryPolicyTests testExecuteWithRetry_worksWithDifferentTypes 9ms
โœ… DownloadErrorRecoveryTests testErrorRecovery_cancelledDownload_resetsToDownloadNeeded 5ms
โœ… DownloadErrorRecoveryTests testErrorRecovery_downloadFailed_allowsRetry 5ms
โœ… DownloadErrorRecoveryTests testErrorRecovery_multipleFailures_trackedSeparately 7ms
โœ… DownloadInfoTests testDownloadInfo_creation_setsInitialValues 2ms
โœ… DownloadInfoTests testDownloadInfo_progressUpdates_handlesEdgeCases 6ms
โœ… DownloadInfoTests testDownloadInfo_rightsManagementString_returnsCorrectString 3ms
โœ… DownloadInfoTests testDownloadInfo_withDownloadProgress_createsNewInstance 2ms
โœ… DownloadInfoTests testDownloadInfo_withRightsManagement_createsNewInstance 2ms
โœ… DownloadPersistenceStoreTests testBookDownloadsOverallProgress 231ms
โœ… DownloadPersistenceStoreTests testGetIncompleteDownloads 210ms
โœ… DownloadPersistenceStoreTests testMarkCompleted 213ms
โœ… DownloadPersistenceStoreTests testRegisterDownload 131ms
โœ… DownloadPersistenceStoreTests testUpdateProgress 208ms
โœ… DownloadProgressPublisherTests testProgressPublisher_emitsMultipleUpdates 3ms
โœ… DownloadProgressPublisherTests testProgressPublisher_emitsProgressUpdates 19ms
โœ… DownloadQueueIntegrationTests testMaxConcurrentDownloads_limitsActiveDownloads 5ms
โœ… DownloadQueueIntegrationTests testQueuedBooks_preserveOrderAcrossMultipleDequeues 83ms
โœ… DownloadQueueIntegrationTests testQueuedBooks_startedWhenCapacityAvailable 14ms
โœ… DownloadRedirectTests testBearerTokenJSON_shouldUseDistributorToken_notPalaceToken 2ms
โœ… DownloadRedirectTests testRedirectRequest_crossDomain_shouldNotContainAuthHeader 2ms
โœ… DownloadRedirectTests testRedirectRequest_sameDomain_shouldNotContainAuthHeader 2ms
โœ… DownloadRedirectTests testRedirectRequest_shouldNotContainAuthHeader_whenFollowingRedirect 4ms
โœ… DownloadRedirectTests testRedirect_httpsToHttp_shouldBeBlocked 2ms
โœ… DownloadRedirectTests testRedirect_httpsToHttps_shouldBeAllowed 2ms
โœ… DownloadRedirectTests testRedirect_maxRedirectAttempts_shouldBeEnforced 2ms
โœ… DownloadSlotManagementTests testHoldingState_bookRegistryTracksCorrectly 6ms
โœ… DownloadSlotManagementTests testStateTransition_completeDownloadFlow 4ms
โœ… DownloadSlotManagementTests testStateTransition_downloadingToFailed 4ms
โœ… DownloadSlotManagementTests testStateTransition_downloadingToHolding 5ms
โœ… DownloadSlotManagementTests testStateTransitions_holdingStateIsTracked 6ms
โœ… DownloadStateMachineIntegrationTests testState_borrowResultsInHold_setsHoldingState 4ms
โœ… DownloadStateMachineIntegrationTests testState_completeFailedDownloadWithRetryFlow 4ms
โœ… DownloadStateMachineIntegrationTests testState_completeSuccessfulDownloadFlow 4ms
โœ… DownloadStateMachineIntegrationTests testState_downloadFailedToDownloading_retryTransition 4ms
โœ… DownloadStateMachineIntegrationTests testState_downloadNeededToDownloading_validTransition 4ms
โœ… DownloadStateMachineIntegrationTests testState_downloadingToDownloadFailed_validTransition 4ms
โœ… DownloadStateMachineIntegrationTests testState_downloadingToDownloadSuccessful_validTransition 5ms
โœ… DownloadStateMachineIntegrationTests testState_holdReadyToDownload_transitionsCorrectly 22ms
โœ… DownloadStateMachineIntegrationTests testState_unregisteredToDownloadNeeded_validTransition 5ms
โœ… DownloadStateMachineTests testState_downloadFailed_canRetry 5ms
โœ… DownloadStateMachineTests testState_downloadNeeded_canTransitionToDownloadSuccessful 9ms
โœ… DownloadStateMachineTests testState_downloadNeeded_canTransitionToDownloading 8ms
โœ… DownloadStateMachineTests testState_downloading_canTransitionToFailed 12ms
โœ… DownloadStateMachineTests testState_downloading_canTransitionToSuccess 6ms
โœ… DownloadWatchdogTests testDefaultConfiguration 3ms
โœ… DownloadWatchdogTests testStartAndStop 116ms
โœ… DownloadWatchdogTests testWatchdogConfiguration 2ms
โœ… EPUBModuleTests testEPUBModule_canBeInitialized 2ms
โœ… EPUBModuleTests testEPUBModule_conformsToReaderFormatModule 2ms
โœ… EPUBModuleTests testReaderError_epubNotValid_exists 9ms
โœ… EPUBModuleTests testReaderError_epubNotValid_isError 8ms
โœ… EPUBPositionTests testBookLocation_CreationFromDictionary 2ms
โœ… EPUBPositionTests testBookLocation_CreationWithValidData 2ms
โœ… EPUBPositionTests testBookLocation_DictionaryRoundTrip 2ms
โœ… EPUBPositionTests testBookLocation_FailsWithMissingLocationString 2ms
โœ… EPUBPositionTests testBookLocation_FailsWithMissingRenderer 2ms
โœ… EPUBPositionTests testLocationSimilarity_DifferentProgressions 2ms
โœ… EPUBPositionTests testLocationSimilarity_IdenticalLocations 2ms
โœ… EPUBPositionTests testThrottlingInterval_Value 2ms
โœ… EPUBSearchViewModelTests testClearSearch_ResetsState 3ms
โœ… EPUBSearchViewModelTests testFetchNextBatch_WhenNotIdle_DoesNothing 3ms
โœ… EPUBSearchViewModelTests testFetchNextBatch_WithMoreResults_AppendsResults 6ms
โœ… EPUBSearchViewModelTests testInit_HasCorrectDefaults 2ms
โœ… EPUBSearchViewModelTests testSearch_CancelsInFlight_OnNewQuery 4ms
โœ… EPUBSearchViewModelTests testSearch_FiltersDuplicateResults 4ms
โœ… EPUBSearchViewModelTests testSearch_GroupsResultsByTitle 4ms
โœ… EPUBSearchViewModelTests testSearch_PublicationNotSearchable_SetsFailureState 4ms
โœ… EPUBSearchViewModelTests testSearch_SetsIsSearching 6ms
โœ… EPUBSearchViewModelTests testSearch_WithEmptyQuery_DoesNotSearch 14ms
โœ… EPUBSearchViewModelTests testSearch_WithError_SetsErrorMessage 8ms
โœ… EPUBSearchViewModelTests testSearch_WithIteratorError_SetsErrorState 4ms
โœ… EPUBSearchViewModelTests testSearch_WithNoResults_SetsEmptyState 30ms
โœ… EPUBSearchViewModelTests testSearch_WithResults_UpdatesResults 4ms
โœ… EPUBSearchViewModelTests testSearch_WithValidQuery_PerformsSearch 6ms
โœ… EPUBSearchViewModelTests testSelectResult_NavigatesToLocation 2ms
โœ… EPUBSearchViewModelTests testSelectResult_WithNilDelegate_DoesNotCrash 3ms
โœ… EPUBSearchViewModelTests testState_IsLoadingState_ReturnsCorrectValues 2ms
โœ… EPUBToolbarToggleTests testDoubleToggle_restoresOriginalState 4ms
โœ… EPUBToolbarToggleTests testDualPath_edgeTap_doesNotToggleToolbar 2ms
โœ… EPUBToolbarToggleTests testFixedDualPath_centerTap_togglesToolbarExactlyOnce 4ms
โœ… EPUBToolbarToggleTests testFixedDualPath_repeatedCenterTaps_alternateToolbarState 4ms
โœ… EPUBToolbarToggleTests testKeyboardNavigable_doubleToggle_restoresState 2ms
โœ… EPUBToolbarToggleTests testKeyboardNavigable_toggleToolbar_changesState 3ms
โœ… EPUBToolbarToggleTests testSingleToggle_changesToolbarVisibility 2ms
โœ… EPUBToolbarToggleTests testTapRegion_atExactThreshold_isEdge 2ms
โœ… EPUBToolbarToggleTests testTapRegion_centerOfViewport_isCenter 2ms
โœ… EPUBToolbarToggleTests testTapRegion_justPastThreshold_isCenter 2ms
โœ… EPUBToolbarToggleTests testTapRegion_leftEdge_isLeftEdge 22ms
โœ… EPUBToolbarToggleTests testTapRegion_rightEdge_isRightEdge 2ms
โœ… EPUBToolbarToggleTests testTapRegion_zeroWidthViewport_isCenter 3ms
โœ… EPUBToolbarToggleTests testUnfixedDualPath_centerTap_doubleTogglesToolbar 2ms
โœ… EmailAddressTests testEmail_withLeadingWhitespace_isTrimmed 8ms
โœ… EmailAddressTests testEmail_withTrailingWhitespace_isTrimmed 4ms
โœ… EmailAddressTests testEquality_differentRawValue_haveDifferentRawValue 3ms
โœ… EmailAddressTests testEquality_sameRawValue_haveSameRawValue 7ms
โœ… EmailAddressTests testInvalidEmail_emptyString 4ms
โœ… EmailAddressTests testInvalidEmail_justText 36ms
โœ… EmailAddressTests testInvalidEmail_multipleAtSigns 2ms
โœ… EmailAddressTests testInvalidEmail_noAtSign 180ms
โœ… EmailAddressTests testInvalidEmail_noDomain 4ms
โœ… EmailAddressTests testInvalidEmail_noLocalPart 3ms
โœ… EmailAddressTests testRawValue_matchesInput 4ms
โœ… EmailAddressTests testValidEmail_simpleAddress 6ms
โœ… EmailAddressTests testValidEmail_withDots 4ms
โœ… EmailAddressTests testValidEmail_withNumbers 5ms
โœ… EmailAddressTests testValidEmail_withPlus 2ms
โœ… EmailAddressTests testValidEmail_withSubdomain 9ms
โœ… EpubSampleFactoryTests testCreateSample_withBookWithoutSample_returnsError 10ms
โœ… EpubSampleFactoryTests testEpubLocationSampleURL_storesURL 4ms
โœ… EpubSampleFactoryTests testEpubLocationSampleURL_urlIsAccessible 4ms
โœ… EpubSampleFactoryTests testEpubSampleWebURL_canBeTreatedAsEpubLocationSampleURL 7ms
โœ… EpubSampleFactoryTests testEpubSampleWebURL_isSubclassOfEpubLocationSampleURL 7ms
โœ… EpubSampleFactoryTests testEpubSampleWebURL_storesURL 4ms
โœ… EpubSampleFactoryTests testSamplePlayerError_fileSaveFailed_exists 4ms
โœ… EpubSampleFactoryTests testSamplePlayerError_fileSaveFailed_withUnderlyingError 2ms
โœ… EpubSampleFactoryTests testSamplePlayerError_noSampleAvailable_exists 5ms
โœ… EpubSampleFactoryTests testSamplePlayerError_sampleDownloadFailed_exists 14ms
โœ… EpubSampleFactoryTests testSamplePlayerError_sampleDownloadFailed_withUnderlyingError 164ms
โœ… ErrorActivityTrackerTests testCategoryRawValues 2ms
โœ… ErrorActivityTrackerTests testClear_removesAllEntries 2ms
โœ… ErrorActivityTrackerTests testDisplayString_containsTimestampCategoryAndMessage 4ms
โœ… ErrorActivityTrackerTests testLog_allCategories_areStoredCorrectly 3ms
โœ… ErrorActivityTrackerTests testLog_capturesFileAndLine 2ms
โœ… ErrorActivityTrackerTests testLog_exceedingMaxEntries_trimmsOldest 2ms
โœ… ErrorActivityTrackerTests testLog_multipleEntries_preservesOrder 2ms
โœ… ErrorActivityTrackerTests testLog_singleEntry_appearsInSnapshot 25ms
โœ… ErrorActivityTrackerTests testLog_timestampsAreMonotonicallyIncreasing 4ms
โœ… ErrorActivityTrackerTests testRecentActivities_defaultParameter_returns5Minutes 2ms
โœ… ErrorActivityTrackerTests testRecentActivities_filtersOldEntries 5ms
โœ… ErrorActivityTrackerTests testShortSource_containsFileAndLine 2ms
โœ… ErrorDetailTests testBookInfo_withNilIdentifier_isNil 3ms
โœ… ErrorDetailTests testCapture_populatesBasicFields 10ms
โœ… ErrorDetailTests testCapture_populatesDeviceContext 3ms
โœ… ErrorDetailTests testCapture_withBookInfo_populatesBookContext 192ms
โœ… ErrorDetailTests testCapture_withError_storesUnderlyingError 31ms
โœ… ErrorDetailTests testCapture_withoutBookInfo_bookInfoIsNil 288ms
โœ… ErrorDetailTests testFormattedReport_containsActivityTrailSection 7ms
โœ… ErrorDetailTests testFormattedReport_containsDeviceSection 7ms
โœ… ErrorDetailTests testFormattedReport_containsErrorSection 6ms
โœ… ErrorDetailTests testFormattedReport_containsHeader 12ms
โœ… ErrorDetailTests testFormattedReport_withBookInfo_containsBookSection 6ms
โœ… ErrorDetailTests testFormattedReport_withError_containsErrorDetails 27ms
โœ… ErrorDetailViewControllerGapTests testErrorDetailVC_rendersDeviceContextLines 13ms
โœ… ErrorDetailViewControllerGapTests testErrorDetailVC_rendersFieldsCorrectly 22ms
โœ… ErrorDetailViewControllerGapTests testErrorDetailVC_rendersSectionsCorrectly 14ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_Init_SetsTitle 27ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_NavigationItems_AreConfigured 29ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_RenderContent_ContainsDeviceFields 14ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_RenderContent_ContainsErrorTitle 12ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_RenderContent_ContainsSection 18ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_RenderContent_EmptyTrailShowsMessage 96ms
โœ… ErrorDetailViewControllerTests testErrorDetailViewController_ViewDidLoad_HasTextView 24ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsActivityTrailSection 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsDeviceSection 4ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsErrorHeader 8ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsMessage 5ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsTimestamp 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_ContainsTitle 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_DeviceContextFields 3ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_EmptyActivityTrail 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_WithBookInfo_ContainsBookSection 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_WithNoBookInfo_OmitsBookSection 2ms
โœ… ErrorDetailViewControllerTests testErrorDetail_FormattedReport_WithUnderlyingError_ContainsDomain 32ms
โœ… ErrorLogExporterTests testErrorLogData_deviceLogsField_acceptsEmptyData 2ms
โœ… ErrorLogExporterTests testErrorLogData_deviceLogsField_acceptsLargeData 2ms
โœ… ErrorLogExporterTests testErrorLogData_initializesWithAllFields 2ms
โœ… ErrorLogExporterTests testErrorLogExporter_sharedInstance_isNotNil 9ms
โœ… ErrorLogExporterTests testPP3651_collectLogsForPreview_containsPatronIDField 1.97s
โœ… FacetEnumTests testFacet_LocalizedStrings_AreNotEmpty 2ms
โœ… FacetEnumTests testFacet_LocalizedStrings_MatchStringsFile 5ms
โœ… FacetEnumTests testFacet_RawValues_MatchExpected 8ms
โœ… FacetToolbarAccessibilityTests testFilterButtonLabel_differsBasedOnFilterState 2ms
โœ… FacetToolbarAccessibilityTests testFilterButtonLabel_noFiltersApplied 2ms
โœ… FacetToolbarAccessibilityTests testFilterButtonLabel_withFiltersApplied 2ms
โœ… FacetToolbarAccessibilityTests testSortButtonLabel_hasConsistentFormat 2ms
โœ… FacetToolbarAccessibilityTests testSortButtonLabel_includesSortOption 2ms
โœ… FacetViewModelTests testActiveSortPublished 3ms
โœ… FacetViewModelTests testChangingSortMultipleTimes 2ms
โœ… FacetViewModelTests testCurrentAccountURLWithNilAccount 2ms
โœ… FacetViewModelTests testEmptyGroupName 2ms
โœ… FacetViewModelTests testFacetLocalizedStrings 6ms
โœ… FacetViewModelTests testFacetRawValues 2ms
โœ… FacetViewModelTests testFacetsArrayPublished 7ms
โœ… FacetViewModelTests testGroupNamePublished 4ms
โœ… FacetViewModelTests testGroupNameWithSpecialCharacters 2ms
โœ… FacetViewModelTests testInitWithAuthorAndTitleFacets 2ms
โœ… FacetViewModelTests testInitWithSingleFacet 2ms
โœ… FacetViewModelTests testInitWithTitleFirst 2ms
โœ… FacetViewModelTests testLogoInitiallyNilWithoutAccount 2ms
โœ… FacetViewModelTests testMultipleSubscribersToActiveSort 3ms
โœ… FacetViewModelTests testSettingSameSortValue 4ms
โœ… FacetViewModelTests testShowAccountScreenInitiallyFalse 2ms
โœ… FacetViewModelTests testShowAccountScreenToggle 3ms
โœ… FacetViewModelTests testUpdatingFacetsDoesNotChangeActiveSort 6ms
โœ… FileURLGenerationTests testFileUrl_contentDirectoryExists 4ms
โœ… FileURLGenerationTests testFileUrl_deterministicForSameIdentifier 20ms
โœ… FileURLGenerationTests testFileUrl_epubBook_hasEpubExtension 36ms
โœ… FocusIndicationTests testAccessibilityElements_areOrderedLogically 4ms
โœ… FocusIndicationTests testCatalogCell_hasAccessibilityLabel 3ms
โœ… FocusIndicationTests testFocusColor_hasSufficientContrastInDarkMode 2ms
โœ… FocusIndicationTests testFocusColor_hasSufficientContrastInLightMode 2ms
โœ… FocusIndicationTests testFocusableButton_hasFocusEffect 11ms
โœ… FocusIndicationTests testReaderToolbar_buttonsInLogicalOrder 14ms
โœ… FocusIndicationTests testTPPRoundedButton_isAccessible 9ms
โœ… GeneralCacheTests testCachePolicy_cacheFirst_callsFetcher_onCacheMiss 7ms
โœ… GeneralCacheTests testCachePolicy_cacheFirst_returnsCachedValue_whenPresent 4ms
โœ… GeneralCacheTests testCachePolicy_cacheFirst_usesCache_whenFetcherFails 4ms
โœ… GeneralCacheTests testCachePolicy_noCache_alwaysFetches 4ms
โœ… GeneralCacheTests testCache_withCodableValues 7ms
โœ… GeneralCacheTests testCache_withIntKeys 3ms
โœ… GeneralCacheTests testClearMemory_removesMemoryEntries 7ms
โœ… GeneralCacheTests testClear_removesAllEntries 5ms
โœ… GeneralCacheTests testDiskCache_persistsValue 10ms
โœ… GeneralCacheTests testFileURL_returnsURL 3ms
โœ… GeneralCacheTests testGet_unknownKey_returnsNil 2ms
โœ… GeneralCacheTests testMemoryAndDisk_persistsValue 13ms
โœ… GeneralCacheTests testNoneMode_doesNotStore 6ms
โœ… GeneralCacheTests testRemove_deletesEntry 4ms
โœ… GeneralCacheTests testRemove_nonexistentKey_doesNotCrash 2ms
โœ… GeneralCacheTests testSet_andGet_returnsValue 4ms
โœ… GeneralCacheTests testSet_overwrite_updatesValue 2ms
โœ… GeneralCacheTests testSet_withExpiration_isAvailableBeforeExpiry 4ms
โœ… GroupEnumTests testGroup_RawValue 2ms
โœ… HTMLTextViewTests testAngleBracketsWithSpaces 24ms
โœ… HTMLTextViewTests testBOMCausesIssuesWithoutSanitization 82ms
โœ… HTMLTextViewTests testBOMCharacter 20ms
โœ… HTMLTextViewTests testBOMCharacterIsRemoved 18ms
โœ… HTMLTextViewTests testControlCharacters 17ms
โœ… HTMLTextViewTests testControlCharactersAreRemoved 17ms
โœ… HTMLTextViewTests testControlCharactersCauseIssuesWithoutSanitization 69ms
โœ… HTMLTextViewTests testDataURL 172ms
โœ… HTMLTextViewTests testDeeplyNestedTags 41ms
โœ… HTMLTextViewTests testDefensiveMeasuresPreventCrashes 371ms
โœ… HTMLTextViewTests testEmptyParagraph 24ms
โœ… HTMLTextViewTests testEmptyString 2ms
โœ… HTMLTextViewTests testExistingDoctypeNotDoubleWrapped 31ms
โœ… HTMLTextViewTests testExistingHTMLTagNotDoubleWrapped 17ms
โœ… HTMLTextViewTests testFallbackStripsHTMLTags 23ms
โœ… HTMLTextViewTests testFastPathLongContent 12ms
โœ… HTMLTextViewTests testFastPathLongContentWithHTML 11ms
โœ… HTMLTextViewTests testFastPathNoHTMLTags 2ms
โœ… HTMLTextViewTests testFormElements 65ms
โœ… HTMLTextViewTests testHTML5Elements 33ms
โœ… HTMLTextViewTests testHTMLDocumentWrapping 28ms
โœ… HTMLTextViewTests testHTMLEntities 664ms
โœ… HTMLTextViewTests testHTMLTagsAreNotDisplayedAsText 147ms
โœ… HTMLTextViewTests testHTMLWithMultipleTags 30ms
โœ… HTMLTextViewTests testInvalidUTF8Sequence 35ms
โœ… HTMLTextViewTests testLeadingWhitespaceIsTrimmed 32ms
โœ… HTMLTextViewTests testMalformedBrokenAttributes 19ms
โœ… HTMLTextViewTests testMalformedEmptyTags 34ms
โœ… HTMLTextViewTests testMalformedNestedTags 16ms
โœ… HTMLTextViewTests testMalformedOnlyClosingTag 16ms
โœ… HTMLTextViewTests testMalformedOnlyOpeningTag 30ms
โœ… HTMLTextViewTests testMalformedRandomAngleBrackets 23ms
โœ… HTMLTextViewTests testMalformedTable 19ms
โœ… HTMLTextViewTests testMalformedUnclosedTags 22ms
โœ… HTMLTextViewTests testMathMLContent 57ms
โœ… HTMLTextViewTests testMixedContentRapidCalls 1.43s
โœ… HTMLTextViewTests testMultipleDoctypes 30ms
โœ… HTMLTextViewTests testMultipleEmptyParagraphs 25ms
โœ… HTMLTextViewTests testNullCharacterInHTML 42ms
โœ… HTMLTextViewTests testNumericEntities 36ms
โœ… HTMLTextViewTests testOPDSSummaryPatterns 74ms
โœ… HTMLTextViewTests testOnlyAngleBracket 33ms
โœ… HTMLTextViewTests testOnlyClosingAngleBracket 6ms
โœ… HTMLTextViewTests testOnlyWhitespaceBeforeTag 34ms
โœ… HTMLTextViewTests testPlainTextWithoutHTML 2ms
โœ… HTMLTextViewTests testProcessingInstruction 31ms
โœ… HTMLTextViewTests testRapidBookDetailViewSimulation 4.42s
โœ… HTMLTextViewTests testRapidSequentialCalls 2.10s
โœ… HTMLTextViewTests testRefugeeGraphicNovelSummaryPattern 252ms
โœ… HTMLTextViewTests testSVGContent 36ms
โœ… HTMLTextViewTests testSafeVsUnsafeParsingComparison 189ms
โœ… HTMLTextViewTests testScriptTag 29ms
โœ… HTMLTextViewTests testSimpleHTMLParagraph 27ms
โœ… HTMLTextViewTests testStartsWithCDATA 43ms
โœ… HTMLTextViewTests testStartsWithClosingTag 18ms
โœ… HTMLTextViewTests testStartsWithComment 19ms
โœ… HTMLTextViewTests testStartsWithDoctype 26ms
โœ… HTMLTextViewTests testStartsWithEndOfDocument 19ms
โœ… HTMLTextViewTests testStartsWithXMLDeclaration 23ms
โœ… HTMLTextViewTests testStyleTag 31ms
โœ… HTMLTextViewTests testSummaryWithLineBreaks 26ms
โœ… HTMLTextViewTests testSummaryWithLinks 34ms
โœ… HTMLTextViewTests testTableHTML 33ms
โœ… HTMLTextViewTests testTypicalBookDescriptionHTML 22ms
โœ… HTMLTextViewTests testTypicalBookSummary 20ms
โœ… HTMLTextViewTests testUnclosedScriptTag 21ms
โœ… HTMLTextViewTests testUnexpectedSummaryStarts 124ms
โœ… HTMLTextViewTests testUnicodeContent 109ms
โœ… HTMLTextViewTests testVeryLongAttribute 44ms
โœ… HTMLTextViewTests testWhitespaceOnly 2ms
โœ… HoldsBadgeCountTests testBadgeCount_allReserved_returnsZero 53ms
โœ… HoldsBadgeCountTests testBadgeCount_mixedHolds_countsOnlyReady 104ms
โœ… HoldsBadgeCountTests testBadgeCount_multipleReady_countsAll 51ms
โœ… HoldsBadgeCountTests testBadgeCount_noBooks_returnsZero 10ms
โœ… HoldsBadgeCountTests testBadgeCount_oneReadyBook_returnsOne 23ms
โœ… HoldsBadgeCountTests testBadgeCount_oneReservedBook_returnsZero 13ms
โœ… HoldsBadgeCountTests testBadgeCount_regularBook_notCounted 103ms
โœ… HoldsBadgeCountTests testReadyBookHasReadyAvailability 11ms
โœ… HoldsBadgeCountTests testReservedBookHasReservedAvailability 26ms
โœ… HoldsBookViewModelTests testBookPropertyReturnsCorrectBook 5ms
โœ… HoldsBookViewModelTests testHoldReady_DistinguishesFromReserved 7ms
โœ… HoldsBookViewModelTests testHoldReady_IdentifiesReadyHolds 4ms
โœ… HoldsBookViewModelTests testIdMatchesBookIdentifier 16ms
โœ… HoldsBookViewModelTests testIsReservedForHoldBook 6ms
โœ… HoldsBookViewModelTests testIsReservedForNonReservedBook 4ms
โœ… HoldsBookViewModelTests testIsReservedForReadyBook 4ms
โœ… HoldsBookViewModelTests testIsReserved_WithLimitedAvailability_ReturnsFalse 4ms
โœ… HoldsViewModelTests testFilterBooksWithEmptyQueryReturnsAll 3ms
โœ… HoldsViewModelTests testFilterBooksWithQuery 4ms
โœ… HoldsViewModelTests testFilterBooks_CaseInsensitive 8ms
โœ… HoldsViewModelTests testFilterBooks_WithAuthorMatch_ReturnsMatchingBooks 9ms
โœ… HoldsViewModelTests testFilterBooks_WithTitleMatch_ReturnsMatchingBooks 92ms
โœ… HoldsViewModelTests testInitialState_EmptyBookLists 2ms
โœ… HoldsViewModelTests testInitialState_HasCorrectDefaults 2ms
โœ… HoldsViewModelTests testIsLoading_PublishesChanges 9ms
โœ… HoldsViewModelTests testLoadHolds_WithEmptyResult_SetsEmptyState 2ms
โœ… HoldsViewModelTests testLoadHolds_WithSuccess_UpdatesHolds 17ms
โœ… HoldsViewModelTests testOpenSearchDescriptionHumanReadableDescription 5ms
โœ… HoldsViewModelTests testOpenSearchDescription_IncludesAllBooks 7ms
โœ… HoldsViewModelTests testRegistryDidChange_ReloadsData 311ms
โœ… HoldsViewModelTests testReloadData_CallsMethod 11ms
โœ… HoldsViewModelTests testReloadData_HandlesMultipleBooks 13ms
โœ… HoldsViewModelTests testReloadData_SeparatesReservedAndReadyBooks 11ms
โœ… HoldsViewModelTests testSearchQueryUpdate 4ms
โœ… HoldsViewModelTests testSelectNewLibraryToggle 12ms
โœ… HoldsViewModelTests testShowLibraryAccountViewToggle 3ms
โœ… HoldsViewModelTests testShowSearchSheetToggle 2ms
โœ… HoldsViewModelTests testSyncBeganSetsLoadingTrue 4ms
โœ… HoldsViewModelTests testSyncEndedSetsLoadingFalse 310ms
โœ… HoldsViewModelTests testVisibleBooks_PublishesChanges 319ms
โœ… KeyboardNavigationHandlerTests testArrowKeyRelease_doesNotTurnPage 5ms
โœ… KeyboardNavigationHandlerTests testArrowKey_withCommandModifier_doesNotTurnPage 2ms
โœ… KeyboardNavigationHandlerTests testArrowKey_withShiftModifier_doesNotTurnPage 7ms
โœ… KeyboardNavigationHandlerTests testEscapeKeyRelease_doesNotToggleToolbar 6ms
โœ… KeyboardNavigationHandlerTests testEscapeKey_whenToolbarHidden_togglesToolbar 2ms
โœ… KeyboardNavigationHandlerTests testEscapeKey_whenToolbarVisible_togglesToolbar 2ms
โœ… KeyboardNavigationHandlerTests testEscapeKey_withModifier_doesNotToggleToolbar 3ms
โœ… KeyboardNavigationHandlerTests testLeftArrow_whenToolbarHidden_goesToPreviousPage 3ms
โœ… KeyboardNavigationHandlerTests testLeftArrow_whenToolbarVisible_doesNotChangePage 4ms
โœ… KeyboardNavigationHandlerTests testPageDown_whenToolbarHidden_advancesPage 7ms
โœ… KeyboardNavigationHandlerTests testPageUp_whenToolbarHidden_goesBackward 5ms
โœ… KeyboardNavigationHandlerTests testRightArrow_whenToolbarHidden_advancesToNextPage 6ms
โœ… KeyboardNavigationHandlerTests testRightArrow_whenToolbarVisible_doesNotChangePage 5ms
โœ… KeyboardNavigationHandlerTests testSpaceKey_whenToolbarHidden_advancesPage 2ms
โœ… KeyboardNavigationHandlerTests testSpaceKey_whenToolbarVisible_doesNotAdvancePage 3ms
โœ… KeyboardNavigationHandlerTests testUnhandledKey_isNotConsumed 3ms
โœ… KeyboardVoiceOverTests testEscapeKey_respectsVoiceOverToolbarBehavior 319ms
โœ… KeyboardVoiceOverTests testKeyboardHandler_doesNotBlockAccessibilityNotifications 12ms
โœ… KeyboardVoiceOverTests testKeyboardNavigation_worksRegardlessOfVoiceOverState 5ms
โœ… KeyboardVoiceOverTests testNavigationActions_haveAccessibilityLabels 60ms
โœ… KeyboardVoiceOverTests testReaderViewController_voiceOverObserverExists 31ms
โœ… KeyboardVoiceOverTests testSettingsButton_hasAccessibilityLabel 35ms
โœ… KeyboardVoiceOverTests testTouchNavigation_notAffectedByKeyboardSupport 2ms
โœ… LCPAudiobookURLSchemeTests testHTTPURLConversion_toReadiumLCPScheme 11ms
โœ… LCPAudiobookURLSchemeTests testReadiumLCPScheme_isCorrect 5ms
โœ… LCPAudiobookURLSchemeTests testReadiumLCPURL_preservesPath 445ms
โœ… LCPAudiobookURLSchemeTests testReadiumLCPURL_preservesQueryParameters 9ms
โœ… LCPAudiobooksTests testCachedContentDictionary_initiallyReturnsNil 8ms
โœ… LCPAudiobooksTests testCanOpenBook_withEpub_returnsFalse 11ms
โœ… LCPAudiobooksTests testCanOpenBook_withLCPAudiobook_returnsTrue 4ms
โœ… LCPAudiobooksTests testCanOpenBook_withNonLCPAudiobook_returnsFalse 6ms
โœ… LCPAudiobooksTests testCanOpenBook_withPDF_returnsFalse 7ms
โœ… LCPAudiobooksTests testCancelPrefetch_doesNotCrash 4ms
โœ… LCPAudiobooksTests testCancelPrefetch_withoutStart_doesNotCrash 2ms
โœ… LCPAudiobooksTests testGetPublication_initiallyReturnsNil 5ms
โœ… LCPAudiobooksTests testInit_withLcplLicenseURL_setsLicenseUrl 7ms
โœ… LCPAudiobooksTests testInit_withNilURL_returnsNil 4ms
โœ… LCPAudiobooksTests testInit_withSeparateLicenseURL_acceptsBothURLs 12ms
โœ… LCPAudiobooksTests testInit_withValidFileURL_createsInstance 3ms
โœ… LCPAudiobooksTests testInit_withValidHTTPURL_createsInstance 7ms
โœ… LCPAudiobooksTests testReleaseResources_canBeCalledMultipleTimes 2ms
โœ… LCPAudiobooksTests testReleaseResources_cancelsPrefetch 3ms
โœ… LCPAudiobooksTests testReleaseResources_clearsPublication 3ms
โœ… LCPAudiobooksTests testStartPrefetch_doesNotCrash 5ms
โœ… LCPAudiobooksTests testSupportsStreaming_returnsTrue 3ms
โœ… LCPLibraryServiceTests testCanFulfill_withAudiobookExtension_returnsFalse 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withEpubExtension_returnsFalse 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withLcpaExtension_returnsFalse 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withLcplExtension_returnsTrue 3ms
โœ… LCPLibraryServiceTests testCanFulfill_withMixedCaseLcplExtension_returnsTrue 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withNoExtension_returnsFalse 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withPdfExtension_returnsFalse 2ms
โœ… LCPLibraryServiceTests testCanFulfill_withUppercaseLcplExtension_returnsTrue 5ms
โœ… LCPLibraryServiceTests testContentProtection_isAvailable 5ms
โœ… LCPLibraryServiceTests testContentProtection_multipleAccess_returnsValue 9ms
โœ… LCPLibraryServiceTests testDecrypt_withEmptyData_returnsNil 2ms
โœ… LCPLibraryServiceTests testDecrypt_withInvalidData_returnsNil 45ms
โœ… LCPLibraryServiceTests testDecrypt_withSmallData_returnsNil 2ms
โœ… LCPLibraryServiceTests testFulfillAsync_withEmptyPath_throwsError 57ms
โœ… LCPLibraryServiceTests testFulfillAsync_withInvalidURL_throwsError 27ms
โœ… LCPLibraryServiceTests testFulfill_reportsProgress 8ms
โœ… LCPLibraryServiceTests testFulfill_withNonExistentFile_callsCompletionWithError 4ms
โœ… LCPLibraryServiceTests testInit_createsInstance 2ms
โœ… LCPLibraryServiceTests testInit_multipleInstances_areIndependent 5ms
โœ… LCPLibraryServiceTests testLicenseExtension_isLcpl 1ms
โœ… LCPPDFManifestTests testPDFManifest_decodesValidJSON 8ms
โœ… LCPPDFManifestTests testPDFManifest_withEmptyReadingOrder_decodesSuccessfully 2ms
โœ… LCPPDFManifestTests testPDFManifest_withMissingReadingOrder_throwsError 2ms
โœ… LCPPDFsTests testCanOpenBook_withEpub_returnsFalse 5ms
โœ… LCPPDFsTests testCanOpenBook_withLCPAudiobook_returnsFalse 25ms
โœ… LCPPDFsTests testCanOpenBook_withNonLCPPdf_returnsFalse 40ms
โœ… LCPPDFsTests testDecryptData_usesCache 24ms
โœ… LCPPDFsTests testDecryptData_withEmptyData_returnsNil 6ms
โœ… LCPPDFsTests testDecryptData_withStartEqualToEnd_returnsEmptyData 75ms
โœ… LCPPDFsTests testDeletePdfContent_withExistingFile_removesFile 7ms
โœ… LCPPDFsTests testDeletePdfContent_withNonExistentFile_doesNotThrow 2ms
โœ… LCPPDFsTests testInit_withValidURL_createsInstance 5ms
โœ… LCPPDFsTests testTemporaryUrlForPDF_appendsPdfExtension 2ms
โœ… LCPPDFsTests testTemporaryUrlForPDF_differentSourcesProduceDifferentURLs 2ms
โœ… LCPPDFsTests testTemporaryUrlForPDF_sameSourceProducesSameURL 2ms
โœ… LCPPDFsTests testTemporaryUrlForPDF_usesTemporaryDirectory 4ms
โœ… LicensesServiceTests testAcquirePublication_WithInvalidLCPLFile_CompletesWithError 15ms
โœ… LicensesServiceTests testAcquirePublication_WithNonexistentFile_CompletesWithError 5ms
โœ… LicensesServiceTests testLicensesServiceError_HasDescription 12ms
โœ… LicensesServiceTests testPathInZip_ForAudiobookLCPType_ReturnsLicensePath 3ms
โœ… LicensesServiceTests testPathInZip_ForEpubZipType_ReturnsMetaInfPath 2ms
โœ… LicensesServiceTests testPathInZip_ForNilType_ReturnsNil 4ms
โœ… LicensesServiceTests testPathInZip_ForPDFLCPType_ReturnsLicensePath 3ms
โœ… LicensesServiceTests testPathInZip_ForReadiumLCPPDFType_ReturnsLicensePath 4ms
โœ… LicensesServiceTests testPathInZip_ForReadiumLCPType_ReturnsLicensePath 6ms
โœ… LicensesServiceTests testPathInZip_ForUnknownType_ReturnsNil 2ms
โœ… LogTests testDateFormatter_isConfigured 2ms
โœ… LogTests testDebug_doesNotCrash 2ms
โœ… LogTests testDebug_doesNotPersistToLogger 534ms
โœ… LogTests testError_doesNotCrash 2ms
โœ… LogTests testError_persistsToLogger 510ms
โœ… LogTests testFault_doesNotCrash 2ms
โœ… LogTests testFault_persistsToLogger 509ms
โœ… LogTests testInfo_doesNotCrash 2ms
โœ… LogTests testInfo_doesNotPersistToLogger 508ms
โœ… LogTests testLog_objcCompatibility_doesNotCrash 2ms
โœ… LogTests testLog_withFilePathTag_trimsProperly 513ms
โœ… LogTests testSubsystem_isCorrectValue 2ms
โœ… LogTests testSubsystem_isNotEmpty 2ms
โœ… LogTests testWarn_doesNotCrash 2ms
โœ… MappedCatalogModelTests testEdgeCase_EmptyTitle 2ms
โœ… MappedCatalogModelTests testEdgeCase_LongTitle 4ms
โœ… MappedCatalogModelTests testEdgeCase_ManyLanes 3ms
โœ… MappedCatalogModelTests testEdgeCase_ManyUngroupedBooks 501ms
โœ… MappedCatalogModelTests testInit_CompleteFeedWithAllComponents 10ms
โœ… MappedCatalogModelTests testInit_EmptyFeed 3ms
โœ… MappedCatalogModelTests testInit_GroupedFeedWithLanes 11ms
โœ… MappedCatalogModelTests testInit_StoresAllProperties 5ms
โœ… MappedCatalogModelTests testInit_UngroupedFeedWithBooks 20ms
โœ… MappedCatalogModelTests testInit_WithEntryPoints 2ms
โœ… MappedCatalogModelTests testInit_WithFacetGroups 4ms
โœ… MappedCatalogTests testMappedCatalog_EmptyFeed 2ms
โœ… MappedCatalogTests testMappedCatalog_WithLanes 31ms
โœ… MappedCatalogTests testMappedCatalog_WithUngroupedBooks 7ms
โœ… MyBooksDownloadCenterAdeptGapTests testDownloadCenter_bookStateTransitions_downloadSuccess 4ms
โœ… MyBooksDownloadCenterAdeptGapTests testDownloadCenter_bookStateTransitions_forAdobeAdeptBooks 4ms
โœ… MyBooksDownloadCenterAdeptGapTests testDownloadCenter_downloadProgressPublisher_exists 3ms
โœ… MyBooksSimplifiedBearerTokenTests testFulfillURL_canBeSetAfterInit 2ms
โœ… MyBooksSimplifiedBearerTokenTests testFulfillURL_canBeSetViaInit 3ms
โœ… MyBooksSimplifiedBearerTokenTests testFulfillURL_defaultsToNil 2ms
โœ… MyBooksSimplifiedBearerTokenTests testIsExpired_exactlyNow_returnsTrue 2ms
โœ… MyBooksSimplifiedBearerTokenTests testIsExpired_futureExpiration_returnsFalse 2ms
โœ… MyBooksSimplifiedBearerTokenTests testIsExpired_pastExpiration_returnsTrue 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_acceptsExpirationKey 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_invalidLocationURL_returnsNil 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_missingAccessToken_returnsNil 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_missingExpiration_returnsNil 1ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_missingLocation_returnsNil 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_negativeExpiration_usesDistantFuture 2ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_validDictionary_createsToken 7ms
โœ… MyBooksSimplifiedBearerTokenTests testParsing_zeroExpiration_usesDistantFuture 2ms
โœ… MyBooksSimplifiedBearerTokenTests testRefreshToken_invalidJSON_returnsNil 4ms
โœ… MyBooksSimplifiedBearerTokenTests testRefreshToken_serverError_returnsNil 4ms
โœ… MyBooksSimplifiedBearerTokenTests testRefreshToken_success_returnsNewToken 4ms
โœ… MyBooksViewModelBooksPublisherTests testBooksArray_InitialState 3ms
โœ… MyBooksViewModelBooksPublisherTests testBooksPublisher_EmitsInitialValue 3ms
โœ… MyBooksViewModelBooksPublisherTests testBooksPublisher_TypeIsCorrect 42ms
โœ… MyBooksViewModelConcurrencyTests testFilterBooks_MultipleCalls_ProcessesAll 6ms
โœ… MyBooksViewModelConcurrencyTests testFilterBooks_RapidChanges_HandlesGracefully 8ms
โœ… MyBooksViewModelConcurrencyTests testLoadData_ConcurrentCalls_OnlyOneExecutes 5ms
โœ… MyBooksViewModelConcurrencyTests testReloadData_WhileLoading_RespectsGuard 2ms
โœ… MyBooksViewModelDownloadStateTests testBookStateTransitions_DownloadFlow 1ms
โœ… MyBooksViewModelDownloadStateTests testBookStateTransitions_HoldFlow 2ms
โœ… MyBooksViewModelDownloadStateTests testBookState_HasDownloadStates 2ms
โœ… MyBooksViewModelEmptyArrayTests testFilterLogic_EmptyArray_ReturnsEmpty 3ms
โœ… MyBooksViewModelEmptyArrayTests testSortLogic_EmptyArray_ReturnsEmpty 2ms
โœ… MyBooksViewModelEmptyArrayTests testSortLogic_SingleBook_ReturnsSame 5ms
โœ… MyBooksViewModelEmptyStateTests testBooksArray_IsAccessible 7ms
โœ… MyBooksViewModelEmptyStateTests testEmptyBooksCondition_ShowsInstructions 7ms
โœ… MyBooksViewModelEmptyStateTests testNonEmptyBooksCondition_HidesInstructions 24ms
โœ… MyBooksViewModelEmptyStateTests testShowInstructionsLabel_InitialState 8ms
โœ… MyBooksViewModelExtendedTests testAlert_CanBeCleared 2ms
โœ… MyBooksViewModelExtendedTests testAlert_CanBeSet 57ms
โœ… MyBooksViewModelExtendedTests testFacetViewModel_InitializedWithCorrectConfig 2ms
โœ… MyBooksViewModelExtendedTests testFilterBooks_WithEmptyQuery_ShowsAllBooks 4ms
โœ… MyBooksViewModelExtendedTests testFilterBooks_WithQuery_UpdatesSearchQuery 248ms
โœ… MyBooksViewModelExtendedTests testInitialFacetSort_DefaultsToTitle 7ms
โœ… MyBooksViewModelExtendedTests testInitialState_HasCorrectDefaults 9ms
โœ… MyBooksViewModelExtendedTests testIsPadProperty_MatchesUIDevice 3ms
โœ… MyBooksViewModelExtendedTests testResetFilter_ClearsSearchQuery 1.68s
โœ… MyBooksViewModelExtendedTests testSelectNewLibrary_CanToggle 13ms
โœ… MyBooksViewModelExtendedTests testSelectedBook_CanBeSet 10ms
โœ… MyBooksViewModelExtendedTests testShowLibraryAccountView_CanToggle 2ms
โœ… MyBooksViewModelExtendedTests testShowSearchSheet_CanToggle 2ms
โœ… MyBooksViewModelExtendedTests testSortByAuthor_SortsCorrectly 8ms
โœ… MyBooksViewModelExtendedTests testSortByTitle_SortsCorrectly 2ms
โœ… MyBooksViewModelFacetIntegrationTests testFacetSortChange_PropagatestoViewModel 2ms
โœ… MyBooksViewModelFacetIntegrationTests testFacetViewModel_ConfiguredCorrectly 2ms
โœ… MyBooksViewModelFacetIntegrationTests testFacet_LocalizedStrings_MatchExpected 4ms
โœ… MyBooksViewModelFacetIntegrationTests testInitialActiveSort_IsFirstFacet 2ms
โœ… MyBooksViewModelFacetPublisherTests testFacetSort_RoundTripPropagation 7ms
โœ… MyBooksViewModelFacetPublisherTests testFacetViewModel_PublishesActiveSortChanges 6ms
โœ… MyBooksViewModelFacetPublisherTests testMyBooksViewModel_SubscribesToFacetChanges 3ms
โœ… MyBooksViewModelFilterSortInteractionTests testFilter_MaintainsSortOrder_Logic 9ms
โœ… MyBooksViewModelFilterSortInteractionTests testSortAfterFilter_ProducesCorrectOrder 11ms
โœ… MyBooksViewModelFilterTests testFilterBooks_EmptyQuery_ResetsToAllBooks 3ms
โœ… MyBooksViewModelFilterTests testFilterBooks_WithQuery_MaintainsSearchQuerySeparately 7ms
โœ… MyBooksViewModelFilterTests testFilterLogic_AuthorMatch_CaseInsensitive 28ms
โœ… MyBooksViewModelFilterTests testFilterLogic_MatchesBothTitleAndAuthor_ReturnsAll 7ms
โœ… MyBooksViewModelFilterTests testFilterLogic_NilAuthors_DoesNotCrash 5ms
โœ… MyBooksViewModelFilterTests testFilterLogic_NoMatches_ReturnsEmpty 6ms
โœ… MyBooksViewModelFilterTests testFilterLogic_SpecialCharacters_HandledCorrectly 6ms
โœ… MyBooksViewModelFilterTests testFilterLogic_TitleMatch_CaseInsensitive 7ms
โœ… MyBooksViewModelFilterTests testResetFilter_RestoresAllBooks 7ms
โœ… MyBooksViewModelGuardConditionsTests testLoadData_WhileLoading_GuardsAgainstReentry 2ms
โœ… MyBooksViewModelGuardConditionsTests testReloadData_WhileLoading_GuardsAgainstReentry 7ms
โœ… MyBooksViewModelLargeDatasetTests testFilterLogic_ManyBooks_FiltersCorrectly 279ms
โœ… MyBooksViewModelLargeDatasetTests testSortLogic_ManyBooks_Completes 280ms
โœ… MyBooksViewModelLoadAccountTests testLoadAccount_WhenSyncing_ShowsAlert 29ms
โœ… MyBooksViewModelLoadAccountTests testSyncingAlert_StringsAreLocalized 7ms
โœ… MyBooksViewModelLoginStateTests testCredentialCheckLogic_EdgeCases 2ms
โœ… MyBooksViewModelLoginStateTests testLoadData_WhenLoggedIn_ShowsBooks 2ms
โœ… MyBooksViewModelLoginStateTests testLoadData_WhenNoAuthRequired_ShowsBooks 56ms
โœ… MyBooksViewModelLoginStateTests testLoadData_WhenNotLoggedIn_ShowsEmptyBooks 2ms
โœ… MyBooksViewModelMultipleAuthorSortingTests testSortByAuthor_SameFirstName_SortsByFullName 10ms
โœ… MyBooksViewModelMultipleAuthorSortingTests testSortByTitle_ThePrefix_SortedAlphabetically 7ms
โœ… MyBooksViewModelMultipleAuthorSortingTests testSort_AlreadySorted_MaintainsOrder 27ms
โœ… MyBooksViewModelNotificationTests testNotificationDebounce_IsConfigured 21ms
โœ… MyBooksViewModelNotificationTests testRegistryChangeNotification_IsRegistered 2ms
โœ… MyBooksViewModelNotificationTests testStateChangeNotification_IsRegistered 8ms
โœ… MyBooksViewModelNotificationTests testSyncEndedNotification_IsRegistered 2ms
โœ… MyBooksViewModelOfflineFilteringTests testExpiredBookFiltering_Logic 6ms
โœ… MyBooksViewModelOfflineFilteringTests testOfflineState_FiltersExpiredBooks_Logic 7ms
โœ… MyBooksViewModelOfflineFilteringTests testOnlineState_ShowsAllBooks_Logic 7ms
โœ… MyBooksViewModelPublisherTests testAlertPublisher_EmitsWhenSet 7ms
โœ… MyBooksViewModelPublisherTests testAlertPublisher_InitiallyNil 2ms
โœ… MyBooksViewModelPublisherTests testFacetViewModelPublisher_TriggersSortUpdate 4ms
โœ… MyBooksViewModelPublisherTests testIsLoadingPublisher_EmitsChanges 9ms
โœ… MyBooksViewModelPublisherTests testSearchQueryPublisher_EmitsChanges 12ms
โœ… MyBooksViewModelPublisherTests testSelectedBookPublisher_EmitsChanges 10ms
โœ… MyBooksViewModelPublisherTests testShowInstructionsLabelPublisher_InitialState 2ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_EmojiInContent_HandledCorrectly 579ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_NumbersInQuery_Matches 7ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_PartialWord_Matches 5ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_UnicodeCharacters_Matches 12ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_VeryLongQuery_NoMatch 3ms
โœ… MyBooksViewModelSearchEdgeCaseTests testFilterLogic_WhitespaceQuery_HandledCorrectly 4ms
โœ… MyBooksViewModelSearchQueryTests testSearchQuery_IndependentOfFilterBooks 22ms
โœ… MyBooksViewModelSearchQueryTests testSearchQuery_PublisherEmitsAllChanges 3ms
โœ… MyBooksViewModelSearchQueryTests testSearchQuery_SetAndRetrieve 9ms
โœ… MyBooksViewModelSortPersistenceTests testActiveFacetSort_StaysInSync 4ms
โœ… MyBooksViewModelSortPersistenceTests testSortOrder_MaintainedAfterFilter 9ms
โœ… MyBooksViewModelSortPersistenceTests testSortOrder_MaintainedAfterReset 47ms
โœ… MyBooksViewModelSortingIntegrationTests testAuthorSort_SortKeyFormat 9ms
โœ… MyBooksViewModelSortingIntegrationTests testSortByAuthor_MultipleBooks_CorrectOrder 9ms
โœ… MyBooksViewModelSortingIntegrationTests testSortByTitle_MultipleBooks_CorrectOrder 8ms
โœ… MyBooksViewModelSortingIntegrationTests testSort_SecondaryField_BreaksTies 11ms
โœ… MyBooksViewModelSortingIntegrationTests testTitleSort_SortKeyFormat 4ms
โœ… MyBooksViewModelSortingTests testSortChange_FromTitleToAuthor_UpdatesActiveFacetSort 20ms
โœ… MyBooksViewModelSortingTests testSortComparator_AuthorSort_ComparesCorrectly 7ms
โœ… MyBooksViewModelSortingTests testSortComparator_EmptyAuthor_TreatedAsEmptyString 5ms
โœ… MyBooksViewModelSortingTests testSortComparator_IdenticalKeys_MaintainsOrder 8ms
โœ… MyBooksViewModelSortingTests testSortComparator_NilAuthors_HandledCorrectly 5ms
โœ… MyBooksViewModelSortingTests testSortComparator_TitleSort_ComparesCorrectly 6ms
โœ… MyBooksViewModelStateTransitionTests testAlert_StateTransitions 4ms
โœ… MyBooksViewModelStateTransitionTests testIsLoading_TransitionsDuringLoad 2ms
โœ… MyBooksViewModelStateTransitionTests testShowInstructionsLabel_ReflectsState 3ms
โœ… MyBooksViewModelUIBindingTests testSelectNewLibrary_PublisherEmitsOnChange 4ms
โœ… MyBooksViewModelUIBindingTests testShowLibraryAccountView_PublisherEmitsOnChange 3ms
โœ… MyBooksViewModelUIBindingTests testShowSearchSheet_PublisherEmitsOnChange 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_bothPresent_separatedByDoubleNewline 3ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_emptyRecoverySuggestion_returnsDescriptionOnly 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_multilineRecoverySuggestion 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_nilDescription_usesDefaultDescription 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_noRecoverySuggestion_returnsDescription 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_whitespaceOnlyRecoverySuggestion_returnsDescriptionOnly 2ms
โœ… NSErrorAdditionsTests testLocalizedDescriptionWithRecovery_withRecoverySuggestion_returnsBoth 37ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_Book_NotStored_ReturnsNil 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_ClearAudioRoutes_ClearsPath 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_ClearAudioRoutes_OnEmptyPath_DoesNotCrash 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_InitialState_NoEPUBSamplePresented 2ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_InitialState_PathIsEmpty 2ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_MultiplePushes_AccumulateInPath 2ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PopToRoot_ClearsEntirePath 17ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PopToRoot_OnEmptyPath_DoesNotCrash 2ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_Pop_DecreasesPathCount 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_Pop_OnEmptyPath_DoesNotCrash 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PushAudioRoute_ClearsExistingRoutes 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PushAudioRoute_FromBookDetail_PreservesStack 4ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PushAudioRoute_OnEmptyPath_AddsRoute 2ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_PushAudioRoute_PreventsDuplicateAudioRoutes 5ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_Push_IncreasesPathCount 3ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_StoreAudioModel_CanBeRetrieved 5ms
โœ… NavigationCoordinatorTests testNavigationCoordinator_StoreBook_CanBeRetrieved 10ms
โœ… NetworkOfflineDetectionTests testNetworkReachability_hasSharedInstance 7ms
โœ… NetworkOfflineDetectionTests testURLError_nonOfflineErrorCodes 2ms
โœ… NetworkOfflineDetectionTests testURLError_offlineErrorCodes 3ms
โœ… NetworkRequestQueueTests testConcurrentRequests_respectsLimit 572ms
โœ… NetworkRequestQueueTests testRequestOrdering_maintainsOrder 9ms
โœ… NetworkRetryLogicTests testNoRetry_on400BadRequest 8ms
โœ… NetworkRetryLogicTests testNoRetry_on404NotFound 8ms
โœ… NetworkRetryLogicTests testRateLimiting_429Response 8ms
โœ… NetworkRetryLogicTests testRetry_on500Error_eventualSuccess 7ms
โœ… NetworkRetryLogicTests testRetry_on502BadGateway 7ms
โœ… NetworkRetryLogicTests testRetry_on503ServiceUnavailable 5ms
โœ… NetworkRetryLogicTests testRetry_on504GatewayTimeout 10ms
โœ… NetworkTimeoutTests testDefaultTimeout_isReasonable 2ms
โœ… NetworkTimeoutTests testRequest_hasCorrectTimeout 2ms
โœ… NetworkTimeoutTests testTimeout_configuration 2ms
โœ… OAuthSAMLRedirectRegressionTests testRegression_handleRedirectURL_rejectsCustomSchemeURL 102ms
โœ… OAuthSAMLRedirectRegressionTests testRegression_oauthRedirect_stillUsesUniversalLinksPrefix 91ms
โœ… OAuthSAMLRedirectRegressionTests testRegression_oauthRedirect_withError_stillHandlesError 84ms
โœ… OAuthSAMLRedirectRegressionTests testRegression_samlRedirect_stillUsesUniversalLinksPrefix 87ms
โœ… OIDCAuthDocumentParsingTests testAuthDocument_containsOidcType 77ms
โœ… OIDCAuthDocumentParsingTests testAuthDocument_oidcAuthenticateLink_IsParsed 91ms
โœ… OIDCAuthDocumentParsingTests testAuthDocument_oidcDoesNotAffectOtherAuthTypes 95ms
โœ… OIDCAuthDocumentParsingTests testAuthDocument_unknownTypeStillFallsToNone 37ms
โœ… OIDCAuthTypeTests testAuthType_InitFromLegacyOidcString_ReturnsOidc 2ms
โœ… OIDCAuthTypeTests testAuthType_InitFromOidcString_ReturnsOidc 2ms
โœ… OIDCAuthTypeTests testAuthType_LegacyOidcURI_DecodesViaCodeable 3ms
โœ… OIDCAuthTypeTests testAuthType_OidcIsDistinct_FromOtherTypes 2ms
โœ… OIDCAuthTypeTests testAuthType_OidcRawValue_IsCorrect 4ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_catalogRequiresAuthentication_ReturnsFalse 99ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_hasAuthenticationUrl 75ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_isNotOtherTypes 93ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_isOidc_ReturnsTrue 106ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_methodDescription_IsOpenIDConnect 85ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_needsAgeCheck_ReturnsFalse 71ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_needsAuth_ReturnsTrue 77ms
โœ… OIDCAuthenticationPropertyTests testOidcAuthentication_otherUrlsAreNil 91ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_doesNotAffectPriorOAuthState 84ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_prefersQueryOverFragment 82ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withEmptyQueryString_doesNotSetToken 80ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withLongToken_setsFullToken 83ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withMalformedPatronJSON_doesNotSetToken 94ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withOnlyAccessToken_doesNotSetToken 80ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withOnlyPatronInfo_doesNotSetToken 78ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withPatronContainingMultipleFields_parsesAll 77ms
โœ… OIDCCallbackEdgeCaseTests testHandleOIDCCallback_withPlusEncodedPatron_decodesSpaces 117ms
โœ… OIDCCallbackHandlingTests testHandleOIDCCallback_withError_doesNotSetToken 210ms
โœ… OIDCCallbackHandlingTests testHandleOIDCCallback_withFragment_extractsTokenAndValidates 91ms
โœ… OIDCCallbackHandlingTests testHandleOIDCCallback_withNoPayload_doesNotSetToken 107ms
โœ… OIDCCallbackHandlingTests testHandleOIDCCallback_withQueryParams_extractsTokenAndValidates 104ms
โœ… OIDCCallbackHandlingTests testOIDCFlow_afterCallback_validatesAndCompletesSignIn 130ms
โœ… OIDCCallbackSchemeTests testOidcCallbackHost_matchesAndroidConvention 2ms
โœ… OIDCCallbackSchemeTests testOidcCallbackScheme_isNotHTTPS 3ms
โœ… OIDCCallbackSchemeTests testOidcCallbackScheme_matchesAndroidConvention 2ms
โœ… OIDCIsolationRegressionTests testRegression_basicAuthentication_noTokenURLs 80ms
โœ… OIDCIsolationRegressionTests testRegression_makeRequest_oauthAndOIDC_bothUseBearerToken 122ms
โœ… OIDCIsolationRegressionTests testRegression_oauthAuthentication_typeIsCorrect 104ms
โœ… OIDCIsolationRegressionTests testRegression_oidcAuthentication_noOtherAuthURLs 77ms
โœ… OIDCIsolationRegressionTests testRegression_samlAuthentication_typeIsCorrect 81ms
โœ… OIDCIsolationRegressionTests testRegression_updateUserAccount_oauthStillStoresToken 91ms
โœ… OIDCLoginRoutingTests testLogIn_withOIDC_callsWillSignIn 118ms
โœ… OIDCLoginRoutingTests testLogIn_withOIDC_capturesCredentials 227ms
โœ… OIDCLoginRoutingTests testLogIn_withOIDC_doesNotValidateCredentialsDirectly 142ms
โœ… OIDCMakeRequestTests testMakeRequest_forOIDCSignOut_usesUserProfileURL 98ms
โœ… OIDCMakeRequestTests testMakeRequest_forOIDC_addsBearerTokenHeader 159ms
โœ… OIDCMakeRequestTests testMakeRequest_forOIDC_withoutToken_stillCreatesRequest 194ms
โœ… OIDCNSCodingTests testOidcAuthentication_NSCodingRoundTrip_PreservesProperties 5.07s
โœ… OIDCNetworkLayer401Tests testOIDC_authDefinition_hasNoTokenURL 86ms
โœ… OIDCNetworkLayer401Tests testOIDC_authDefinition_isNotOauth 89ms
โœ… OIDCNetworkLayer401Tests testOIDC_authDefinition_isNotToken 98ms
โœ… OIDCNetworkLayer401Tests testOIDC_cannotDoClientSideTokenRefresh 94ms
โœ… OIDCNetworkLayer401Tests testOIDC_isTreatedLikeSAML_forReauth 88ms
โœ… OIDCReauthOnExpiredTokenTests testOIDC_afterReauth_credentialsRestored 98ms
โœ… OIDCReauthOnExpiredTokenTests testOIDC_refreshAuthIfNeeded_doesNotNilSelectedAuth 90ms
โœ… OIDCReauthOnExpiredTokenTests testOIDC_refreshAuthIfNeeded_withoutExistingCredentials_requiresUI 99ms
โœ… OIDCReauthOnExpiredTokenTests testOIDC_staleCredentials_authDefinitionPreserved 97ms
โœ… OIDCReauthOnExpiredTokenTests testOIDC_staleCredentials_stillHasCredentials 97ms
โœ… OIDCRedirectURIConstructionTests testOidcCallbackScheme_containsNoDots 108ms
โœ… OIDCRedirectURIConstructionTests testOidcCallbackScheme_doesNotContainColonOrSlash 131ms
โœ… OIDCRedirectURIConstructionTests testOidcCallbackScheme_isLowercase 2.19s
โœ… OIDCRedirectURIConstructionTests testOidcRedirectURI_doesNotUseHTTPS 140ms
โœ… OIDCRedirectURIConstructionTests testOidcRedirectURI_doesNotUseUniversalLinksURL 113ms
โœ… OIDCRedirectURIConstructionTests testOidcRedirectURI_isValidURL 128ms
โœ… OIDCRegressionTests testRegression_allAuthTypes_areCodable 77ms
โœ… OIDCRegressionTests testRegression_authTypeCodable_roundTripIncludesOidc 95ms
โœ… OIDCRegressionTests testRegression_basicAuth_makeRequest_noBearerToken 118ms
โœ… OIDCRegressionTests testRegression_basicAuth_needsAuth_StillTrue 80ms
โœ… OIDCRegressionTests testRegression_defaultAuth_stillPrefersNonOAuth 79ms
โœ… OIDCRegressionTests testRegression_existingAuthTypesUnchanged 79ms
โœ… OIDCRegressionTests testRegression_oauthAuth_makeRequest_stillAddsBearerToken 75ms
โœ… OIDCRegressionTests testRegression_samlAuth_makeRequest_stillAddsBearerToken 77ms
โœ… OIDCRegressionTests testRegression_samlUpdateUserAccount_stillStoresCookies 97ms
โœ… OIDCSelectedAuthenticationTests testRefreshAuthIfNeeded_withOIDC_resetsIgnoreSignedInState 108ms
โœ… OIDCSelectedAuthenticationTests testSelectedAuthentication_canBeSetToOIDC 118ms
โœ… OIDCSignOutRegressionTests testRegression_signOut_withOAuth_stillClearsToken 95ms
โœ… OIDCSignOutRegressionTests testRegression_signOut_withSAML_stillClearsCookies 102ms
โœ… OIDCSignOutRegressionTests testSignOut_withOIDC_clearsAuthToken 104ms
โœ… OIDCSignOutRegressionTests testSignOut_withOIDC_clearsPatronInfo 88ms
โœ… OIDCSignOutRegressionTests testSignOut_withOIDC_usesStandardPath_noSpecialLogoutFlow 106ms
โœ… OIDCTokenRefreshRegressionTests testRefreshAuth_withOIDC_doesNotNilOutSelectedAuth_unlikeSAML 198ms
โœ… OIDCTokenRefreshRegressionTests testRefreshAuth_withOIDC_usingExistingCredentials_doesNotResetSelectedAuth 121ms
โœ… OIDCTokenRefreshRegressionTests testRefreshAuth_withOIDC_withoutExistingCredentials_setsIgnoreSignedIn 129ms
โœ… OIDCTokenRefreshRegressionTests testRegression_refreshAuth_withBasic_ignoreSignedInNotSet 104ms
โœ… OIDCTokenRefreshRegressionTests testRegression_refreshAuth_withOAuth_stillSetsIgnoreSignedIn 150ms
โœ… OIDCTokenRefreshRegressionTests testRegression_refreshAuth_withSAML_codepathIncludesSAML 111ms
โœ… OIDCUpdateUserAccountTests testUpdateUserAccount_withOIDC_doesNotStoreCookies 168ms
โœ… OIDCUpdateUserAccountTests testUpdateUserAccount_withOIDC_marksLoggedIn 113ms
โœ… OIDCUpdateUserAccountTests testUpdateUserAccount_withOIDC_setsAuthDefinition 111ms
โœ… OIDCUpdateUserAccountTests testUpdateUserAccount_withOIDC_storesAuthToken 84ms
โœ… OIDCUpdateUserAccountTests testUpdateUserAccount_withOIDC_storesPatronInfo 80ms
โœ… OIDCViewModelRegressionTests testOIDCSignIn_doesNotRequireUsernameOrPIN 233ms
โœ… OIDCViewModelSignInTests testSignIn_withActiveCredentials_showsSignOutAlert 2ms
โœ… OIDCViewModelSignInTests testSignIn_withStaleOIDCCredentials_proceedsToLogin 1ms
โœ… OPDS2AuthenticationDocumentTests testAnnouncements_parsesIfPresent 3ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_noAuthRequired 3ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesBarcodeFormat 2ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesBasicAuth 60ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesInputConfiguration 2ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesLabels 3ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesMaximumLength 2ms
โœ… OPDS2AuthenticationDocumentTests testAuthentication_parsesMultipleMethods 6ms
โœ… OPDS2AuthenticationDocumentTests testColorScheme_parsesIfPresent 2ms
โœ… OPDS2AuthenticationDocumentTests testFeatures_parsesDisabledFeatures 4ms
โœ… OPDS2AuthenticationDocumentTests testFeatures_parsesEnabledFeatures 4ms
โœ… OPDS2AuthenticationDocumentTests testFromData_withEmptyData_throwsError 2ms
โœ… OPDS2AuthenticationDocumentTests testFromData_withInvalidJSON_throwsError 4ms
โœ… OPDS2AuthenticationDocumentTests testFromData_withMissingRequiredFields_throwsError 2ms
โœ… OPDS2AuthenticationDocumentTests testFromData_withValidJSON_parsesDocument 3ms
โœ… OPDS2AuthenticationDocumentTests testLinks_firstRelMethod_findsPasswordReset 3ms
โœ… OPDS2AuthenticationDocumentTests testLinks_parsesCorrectly 2ms
โœ… OPDS2AuthenticationDocumentTests testServiceDescription_parsesIfPresent 2ms
โœ… OPDS2CatalogsFeedTests testAccountSetAuthenticationDocument 136ms
โœ… OPDS2CatalogsFeedTests testInitAccountsWithPublication 111ms
โœ… OPDS2CatalogsFeedTests testLoadCatalogsFeed 220ms
โœ… OPDS2FeedParsingTests testDateParsing_withISO8601_parsesCorrectly 82ms
โœ… OPDS2FeedParsingTests testDateParsing_withMilliseconds_parsesCorrectly 3ms
โœ… OPDS2FeedParsingTests testDateParsing_withoutMilliseconds_parsesCorrectly 8ms
โœ… OPDS2FeedParsingTests testFromData_withEmptyCatalogs_parsesSuccessfully 2ms
โœ… OPDS2FeedParsingTests testFromData_withEmptyData_throwsError 4ms
โœ… OPDS2FeedParsingTests testFromData_withInvalidJSON_throwsError 28ms
โœ… OPDS2FeedParsingTests testFromData_withMissingCatalogs_throwsError 8ms
โœ… OPDS2FeedParsingTests testFromData_withValidJSON_parsesFeed 111ms
โœ… OPDS2FeedParsingTests testLinks_parsesCorrectly 107ms
โœ… OPDS2FeedParsingTests testMetadata_parsesAdobeVendorId 108ms
โœ… OPDS2FeedParsingTests testMetadata_parsesTitle 82ms
โœ… OPDS2FeedTests testDetectOPDS2FromContentType 3ms
โœ… OPDS2FeedTests testDetectOPDS2FromData 4ms
โœ… OPDS2FeedTests testFeedEquatable 4ms
โœ… OPDS2FeedTests testParseDateWithFractionalSeconds 3ms
โœ… OPDS2FeedTests testParseDateWithoutFractionalSeconds 13ms
โœ… OPDS2FeedTests testParseFeedWithFacets 17ms
โœ… OPDS2FeedTests testParseFeedWithGroups 10ms
โœ… OPDS2FeedTests testParseFeedWithNavigation 21ms
โœ… OPDS2FeedTests testParseFeedWithPagination 3ms
โœ… OPDS2FeedTests testParseFeedWithPublications 5ms
โœ… OPDS2FeedTests testParseLinkWithIndirectAcquisition 7ms
โœ… OPDS2FeedTests testParseLinkWithProperties 9ms
โœ… OPDS2FeedTests testParseMinimalFeed 3ms
โœ… OPDS2LinkRelTests testPasswordReset_hasCorrectRawValue 4ms
โœ… OPDS2LinkTests testLink_firstRelMethod_findsMatchingLink 97ms
โœ… OPDS2LinkTests testLink_hasHref 146ms
โœ… OPDS2PublicationTests testPublication_hasRequiredFields 88ms
โœ… OPDS2PublicationTests testPublication_metadataHasTitle 67ms
โœ… OPDS2SamlIDPTests testDisplayName_WithEnglishName_ReturnsEnglishValue 2ms
โœ… OPDS2SamlIDPTests testDisplayName_WithNoEnglishName_ReturnsNil 2ms
โœ… OPDS2SamlIDPTests testIdpDescription_WithEnglishDescription_ReturnsValue 2ms
โœ… OPDS2SamlIDPTests testIdpDescription_WithNoDescriptions_ReturnsNil 2ms
โœ… OPDS2SamlIDPTests testInit_WithInvalidHref_ReturnsNil 3ms
โœ… OPDS2SamlIDPTests testInit_WithValidLink_CreatesInstance 3ms
โœ… OPDSFeedCacheTests testCacheEntryIsExpired 3ms
โœ… OPDSFeedCacheTests testCacheEntryIsStale 5ms
โœ… OPDSFeedCacheTests testClear 9ms
โœ… OPDSFeedCacheTests testConditionalHeaders 4ms
โœ… OPDSFeedCacheTests testConditionalHeadersEmptyWhenNoCachedEntry 4ms
โœ… OPDSFeedCacheTests testExpiredEntriesNotReturned 4ms
โœ… OPDSFeedCacheTests testGetNonExistent 4ms
โœ… OPDSFeedCacheTests testGetWithRevalidationFetchesWhenNoCache 4ms
โœ… OPDSFeedCacheTests testGetWithRevalidationReturnsFreshData 18ms
โœ… OPDSFeedCacheTests testLRUEviction 9ms
โœ… OPDSFeedCacheTests testLRUUpdatesOnAccess 40ms
โœ… OPDSFeedCacheTests testRemove 4ms
โœ… OPDSFeedCacheTests testSetAndGet 6ms
โœ… OPDSFeedCacheTests testStats 23ms
โœ… OPDSFeedParsingTests testParseInvalidOPDSFeed 4ms
โœ… OPDSFeedParsingTests testParseValidOPDSFeed 71ms
โœ… OPDSFeedServiceTests testCancelAllRequests_doesNotCrash 2ms
โœ… OPDSFeedServiceTests testCancelRequest_doesNotCrash 5ms
โœ… OPDSFeedServiceTests testFetchCatalogRoot_methodExists 13ms
โœ… OPDSFeedServiceTests testFetchLoans_methodExists 2ms
โœ… OPDSFeedServiceTests testShared_returnsSameInstance 2ms
โœ… OPDSParsingTests testAcquisitionLinks 5ms
โœ… OPDSParsingTests testAnalyticsURLGeneration 4ms
โœ… OPDSParsingTests testAuthorWithMissingName 3ms
โœ… OPDSParsingTests testCategoryWithMissingTerm 3ms
โœ… OPDSParsingTests testEmptyXMLData 9ms
โœ… OPDSParsingTests testEntryExtractionFromFeed 4ms
โœ… OPDSParsingTests testEntryWithCategories 3ms
โœ… OPDSParsingTests testEntryWithContributors 7ms
โœ… OPDSParsingTests testEntryWithDuration 2ms
โœ… OPDSParsingTests testEntryWithMissingId 6ms
โœ… OPDSParsingTests testEntryWithMissingTitle 4ms
โœ… OPDSParsingTests testEntryWithMissingUpdated 2ms
โœ… OPDSParsingTests testEntryWithMultipleAuthors 5ms
โœ… OPDSParsingTests testEntryWithPublisherAndDistribution 4ms
โœ… OPDSParsingTests testFeedIgnoresMalformedEntries 4ms
โœ… OPDSParsingTests testFeedIgnoresMalformedLinks 12ms
โœ… OPDSParsingTests testFeedInitializationFromCompleteFeed 6ms
โœ… OPDSParsingTests testFeedInitializationFromMinimalXML 2ms
โœ… OPDSParsingTests testFeedInitializationFromSingleEntry 5ms
โœ… OPDSParsingTests testFeedParsingPerformance 3.08s
โœ… OPDSParsingTests testFeedTypeAcquisitionGrouped 3ms
โœ… OPDSParsingTests testFeedTypeAcquisitionUngrouped 3ms
โœ… OPDSParsingTests testFeedTypeAcquisitionUngroupedWithEmptyFeed 3ms
โœ… OPDSParsingTests testFeedTypeNavigation 4ms
โœ… OPDSParsingTests testFeedWithInvalidDate 4ms
โœ… OPDSParsingTests testFeedWithLicensorAndPatron 4ms
โœ… OPDSParsingTests testFeedWithMissingId 2ms
โœ… OPDSParsingTests testFeedWithMissingTitle 2ms
โœ… OPDSParsingTests testFeedWithMissingUpdated 19ms
โœ… OPDSParsingTests testGroupAttributes 6ms
โœ… OPDSParsingTests testHTMLEntityDecoding 3ms
โœ… OPDSParsingTests testImageLinks 6ms
โœ… OPDSParsingTests testLinkInitialization 10ms
โœ… OPDSParsingTests testLinkRelationAlternate 4ms
โœ… OPDSParsingTests testLinkRelationAnnotations 4ms
โœ… OPDSParsingTests testLinkRelationRelatedWorks 4ms
โœ… OPDSParsingTests testLinkRelationTimeTracking 76ms
โœ… OPDSParsingTests testLinkWithMissingHref 2ms
โœ… OPDSParsingTests testLinkWithOptionalAttributesNil 2ms
โœ… OPDSParsingTests testMalformedXML 2ms
โœ… OPDSParsingTests testNilXMLFeed 2ms
โœ… OPDSParsingTests testPreviewLinkParsing 4ms
โœ… OPDSParsingTests testRFC3339DateParsing 3ms
โœ… OPDSParsingTests testSeriesLink 20ms
โœ… PDFReaderTests testLCPPDFBook_ContentType 4ms
โœ… PDFReaderTests testPDFBook_ContentType 4ms
โœ… PDFReaderTests testPDFPageBookmark_ConformsToBookmark 3ms
โœ… PDFReaderTests testPDFPageBookmark_Decoding 2ms
โœ… PDFReaderTests testPDFPageBookmark_Encoding 4ms
โœ… PDFReaderTests testPDFPageBookmark_Initialization 2ms
โœ… PDFReaderTests testPDFPageBookmark_WithAnnotationID 2ms
โœ… PDFReaderTests testPDFPage_Decoding 2ms
โœ… PDFReaderTests testPDFPage_Encoding 2ms
โœ… PDFReaderTests testPDFPage_Initialization 2ms
โœ… PDFReaderTests testPDFPage_RoundTrip 7ms
โœ… PDFReaderTests testReaderMode_Values 2ms
โœ… Palace PalaceTests <1ms
โœ… Palace TenPrintCoverTests <1ms
โœ… PalaceErrorCategoryTests testAuthenticationError_allCases_haveDescriptions 3ms
โœ… PalaceErrorCategoryTests testBookReaderError_allCases_haveDescriptions 2ms
โœ… PalaceErrorCategoryTests testDownloadError_allCases_haveDescriptions 2ms
โœ… PalaceErrorCategoryTests testErrorCode_authErrors_startAt6000 3ms
โœ… PalaceErrorCategoryTests testErrorCode_downloadErrors_startAt3000 2ms
โœ… PalaceErrorCategoryTests testErrorCode_drmErrors_startAt5000 3ms
โœ… PalaceErrorCategoryTests testErrorCode_networkErrors_startAt1000 2ms
โœ… PalaceErrorCategoryTests testErrorCode_uniquePerCase 2ms
โœ… PalaceErrorCategoryTests testFromNSError_unknownDomain_mapsToNetworkUnknown 7ms
โœ… PalaceErrorCategoryTests testFromNSError_urlErrorCancelled_mapsToCancelled 3ms
โœ… PalaceErrorCategoryTests testFromNSError_urlErrorNotConnected_mapsToNoConnection 4ms
โœ… PalaceErrorCategoryTests testFromNSError_urlErrorTimedOut_mapsToTimeout 2ms
โœ… PalaceErrorCategoryTests testLocalizedError_conformance 4ms
โœ… PalaceErrorCategoryTests testNetworkError_allCases_haveDescriptions 2ms
โœ… PalaceErrorCategoryTests testRecoverySuggestion_downloadInsufficientSpace 4ms
โœ… PalaceErrorCategoryTests testRecoverySuggestion_networkErrors_provideGuidance 2ms
โœ… PalaceErrorCategoryTests testStorageError_allCases_haveDescriptions 2ms
โœ… PalaceErrorTests testPalaceError_authentication_accountNotFound 2ms
โœ… PalaceErrorTests testPalaceError_authentication_invalidCredentials 2ms
โœ… PalaceErrorTests testPalaceError_authentication_tokenExpired 11ms
โœ… PalaceErrorTests testPalaceError_bookRegistry_alreadyBorrowed 6ms
โœ… PalaceErrorTests testPalaceError_bookRegistry_bookNotFound 1ms
โœ… PalaceErrorTests testPalaceError_download_cannotFulfill 6ms
โœ… PalaceErrorTests testPalaceError_network_forbidden 6ms
โœ… PalaceErrorTests testPalaceError_network_notFound 2ms
โœ… PalaceErrorTests testPalaceError_network_rateLimited 2ms
โœ… PalaceErrorTests testPalaceError_network_serverError 2ms
โœ… PalaceErrorTests testPalaceError_parsing_opdsFeedInvalid 7ms
โœ… PersistentLoggerTests testLog_andRetrieve_containsLoggedMessage 9ms
โœ… PersistentLoggerTests testLog_containsTimestamp 53ms
โœ… PersistentLoggerTests testLog_errorLevel_isRecorded 16ms
โœ… PersistentLoggerTests testLog_faultLevel_isRecorded 10ms
โœ… PersistentLoggerTests testLog_multipleEntries_allAppear 28ms
โœ… PersistentLoggerTests testRetrieveAllLogs_returnsString 6ms
โœ… PersistentLoggerTests testShared_returnsSameInstance 5ms
โœ… PlaybackBootstrapperTests testAudiobookSessionManager_InitialState_IsIdle 20ms
โœ… PlaybackBootstrapperTests testAudiobookSessionState_ErrorIsNotActive 6ms
โœ… PlaybackBootstrapperTests testAudiobookSessionState_IdleIsNotActive 5ms
โœ… PlaybackBootstrapperTests testAudiobookSessionState_LoadingIsActive 6ms
โœ… PlaybackBootstrapperTests testAudiobookSessionState_PausedIsActive 2ms
โœ… PlaybackBootstrapperTests testAudiobookSessionState_PlayingIsActive 3ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_ConfiguresRemoteCommandCenter 8ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_EnsureInitializedForCarPlay_LoadsBookRegistry 202ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_EnsureInitialized_IsIdempotent 7ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_NoActiveManager_ReturnsNoActionableItem 3ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_Singleton_Exists 18ms
โœ… PlaybackBootstrapperTests testPlaybackBootstrapper_SkipIntervals_AreConfigured 4ms
โœ… PlaybackTrackingRegressionTests testMultiplePlaybackStartedCalls_doesNotOvercount 17ms
โœ… PlaybackTrackingRegressionTests testMultipleStopStartCycles_preservesAllTime 245ms
โœ… PlaybackTrackingRegressionTests testPlaybackStopped_savesAccumulatedTime 392ms
โœ… PlaybackTrackingRegressionTests testRapidStartStopCycles_countsCorrectly 46ms
โœ… PlaybackTrackingRegressionTests testSleepTimerPause_savesAllAccumulatedTime 65ms
โœ… PositionPersistenceLogicTests testCriticalSave_onTermination_mustBypassSuppression 4ms
โœ… PositionPersistenceLogicTests testNewPersistLocation_bypassesSuppression 2ms
โœ… PositionPersistenceLogicTests testNoSuppression_allowsSave 3ms
โœ… PositionPersistenceLogicTests testOldBehavior_suppressionBlocksSave 2ms
โœ… PositionPersistenceLogicTests testSuppressionExpired_allowsSave 4ms
โœ… PositionPersistenceLogicTests testSuppressionWindow_threeSeconds_blocksAndThenAllows 2ms
โœ… PositionPersistenceTests testBookRegistry_setLocation_updatesPosition 5ms
โœ… PositionPersistenceTests testBookRegistry_storesLocation 6ms
โœ… PositionSyncTests testSyncIsPossibleAndPermitted_checksSyncState 6ms
โœ… PositionSyncTests testTPPBookLocation_creation 3ms
โœ… PositionSyncTests testTPPBookLocation_equality 3ms
โœ… PositionSyncTests testTPPBookLocation_withEmptyString_createsLocation 2ms
โœ… PositionSyncTests testTPPBookmarkR3Location_storesResourceIndex 2ms
โœ… PositionThrottlingTests testPoster_rapidPositionUpdates_throttlesUploads 137ms
โœ… PostUpdateMigrationTests testMigrate_doesNotCrash 6ms
โœ… PostUpdateMigrationTests testMigrate_updatesStoredVersion 337ms
โœ… PostUpdateMigrationTests testPostUpdateDetection_differentBuild_isDetected 4ms
โœ… PostUpdateMigrationTests testPostUpdateDetection_firstLaunch_isNotUpdate 8ms
โœ… PostUpdateMigrationTests testPostUpdateDetection_sameBuild_isNotDetected 7ms
โœ… ProblemDocumentTests testBorrowError_credentialsSuspended_extractsDetails 2ms
โœ… ProblemDocumentTests testBorrowError_loanLimitReached_extractsDetails 2ms
โœ… ProblemDocumentTests testNSError_problemDocument_extractsCorrectly 2ms
โœ… ProblemDocumentTests testNSError_withoutProblemDocument_hasNilProperties 2ms
โœ… ProblemDocumentTests testProblemDocumentTypes_areCorrect 2ms
โœ… ProblemDocumentTests testProblemDocument_fromData_parsesCorrectly 7ms
โœ… ProblemDocumentTests testProblemDocument_fromDictionary_parsesCorrectly 14ms
โœ… ProblemDocumentTests testProblemDocument_fromResponseError_extractsFromNSError 3ms
โœ… ProblemDocumentTests testProblemDocument_fromResponseError_fallsBackToData 2ms
โœ… ProblemDocumentTests testProblemDocument_fromResponseError_returnsNilWhenNoDocument 3ms
โœ… ProblemDocumentTests testProblemDocument_stringValue_combinesTitleAndDetail 2ms
โœ… ProblemDocumentTests testProblemDocument_stringValue_handlesMissingTitle 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsDeviceIdiom 14ms
โœ… ProblemReportEmailTests testGenerateBody_containsLibrary 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsOSVersion 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsPalaceVersion 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsPlatform 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsScreenHeight 2ms
โœ… ProblemReportEmailTests testGenerateBody_containsSeparator 3ms
โœ… ProblemReportEmailTests testGenerateBody_startsWithNewlines 4ms
โœ… ProblemReportEmailTests testGenerateBody_withBook_containsBookInfo 5ms
โœ… ProblemReportEmailTests testGenerateBody_withoutBook_doesNotContainBookInfo 2ms
โœ… ProblemReportEmailTests testPP3651_beginComposing_acceptsLibraryUUID 2ms
โœ… ProblemReportEmailTests testPP3651_generateBody_patronID_appearsAfterSeparator 6ms
โœ… ProblemReportEmailTests testPP3651_generateBody_withBookAndPatronID_containsBothBookAndPatronInfo 11ms
โœ… ProblemReportEmailTests testPP3651_generateBody_withExplicitNilPatronID_doesNotLeakActiveLibraryID 3ms
โœ… ProblemReportEmailTests testPP3651_generateBody_withPatronID_containsPatronID 2ms
โœ… ProblemReportEmailTests testPP3651_generateBody_withoutPatronID_doesNotContainPatronIDLabel 2ms
โœ… ReachabilityTests testGetDetailedConnectivityStatus_returnsNonEmptyFields 3ms
โœ… ReachabilityTests testIsConnectedToNetwork_returnsBool 2ms
โœ… ReachabilityTests testIsConnected_property_returnsBool 7ms
โœ… ReachabilityTests testShared_isNotNil 8ms
โœ… ReachabilityTests testShared_returnsSameInstance 2ms
โœ… ReachabilityTests testStartAndStopMonitoring_doesNotCrash 4ms
โœ… ReaderAccessibilityTests testBookmarkToggleLabels_areDistinctAndDescriptive 2ms
โœ… ReaderAccessibilityTests testBookmarksTabLabel_isDescriptive 2ms
โœ… ReaderAccessibilityTests testChapterNavigationLabels_areDistinct 2ms
โœ… ReaderAccessibilityTests testCloseSampleLabel_isDescriptive 3ms
โœ… ReaderAccessibilityTests testPDFPickerSegmentLabels_areDistinct 2ms
โœ… ReaderAccessibilityTests testPagePreviewsLabel_isDescriptive 4ms
โœ… ReaderAccessibilityTests testTableOfContentsLabel_isDescriptive 2ms
โœ… ReaderServiceSyncTests testLastReadPositionSynchronizer_canBeCreated 38ms
โœ… ReaderServiceSyncTests testLastReadPositionSynchronizer_syncDoesNotCrash_withDeviceID 3ms
โœ… ReaderServiceSyncTests testLastReadPositionSynchronizer_syncReturns_whenNoServerPosition 16ms
โœ… RedirectHandlingIntegrationTests testRedirect_attemptsCleared_afterCompletion 3ms
โœ… RedirectHandlingIntegrationTests testRedirect_httpsToHttp_blockedForSecurity 8ms
โœ… RedirectHandlingIntegrationTests testRedirect_httpsToHttps_allowed 2ms
โœ… RedirectHandlingIntegrationTests testRedirect_maxAttempts_enforced 4ms
โœ… RemoteFeatureFlagsGapTests testRemoteFeatureFlags_convenienceProperties_dontCrash 2ms
โœ… RemoteFeatureFlagsGapTests testRemoteFeatureFlags_fetchIfNeeded_completesWithoutCrashing 44ms
โœ… RemoteFeatureFlagsGapTests testRemoteFeatureFlags_isFeatureEnabled_returnsBoolean 2ms
โœ… RemoteFeatureFlagsGapTests testRemoteFeatureFlags_shared_isAccessible 8ms
โœ… RemoteFeatureFlagsTests testFeatureFlag_allCases_haveNonEmptyRawValues 3ms
โœ… RemoteFeatureFlagsTests testFeatureFlag_defaultValues_areDefined 2ms
โœ… RemoteFeatureFlagsTests testFetchIfNeeded_doesNotCrash 273ms
โœ… RemoteFeatureFlagsTests testGetDeviceInfo_containsVersionInfo 3ms
โœ… RemoteFeatureFlagsTests testGetDeviceInfo_returnsNonEmptyDict 2ms
โœ… RemoteFeatureFlagsTests testIsCarPlayEnabledCached_returnsBool 2ms
โœ… RemoteFeatureFlagsTests testIsFeatureEnabled_withoutFirebase_returnsDefault 3ms
โœ… RemoteFeatureFlagsTests testShared_isNotNil 9ms
โœ… RemoteFeatureFlagsTests testShared_returnsSameInstance 4ms
โœ… RetryClassificationTests testAudiobookErrors_notRetryable 2ms
โœ… RetryClassificationTests testAudiobookErrors_retryable 2ms
โœ… RetryClassificationTests testAuthErrors_notRetryable 2ms
โœ… RetryClassificationTests testAuthErrors_retryable 2ms
โœ… RetryClassificationTests testBookRegistryErrors_notRetryable 17ms
โœ… RetryClassificationTests testBookRegistryErrors_retryable 3ms
โœ… RetryClassificationTests testDRMErrors_notRetryable 2ms
โœ… RetryClassificationTests testDownloadErrors_notRetryable 2ms
โœ… RetryClassificationTests testDownloadErrors_retryable 4ms
โœ… RetryClassificationTests testNSURLError_notRetryable 2ms
โœ… RetryClassificationTests testNSURLError_retryable 2ms
โœ… RetryClassificationTests testNetworkErrors_notRetryable 4ms
โœ… RetryClassificationTests testNetworkErrors_retryable 2ms
โœ… RetryClassificationTests testParsingErrors_notRetryable 3ms
โœ… RetryClassificationTests testParsingErrors_retryable 4ms
โœ… RetryClassificationTests testStorageErrors_notRetryable 2ms
โœ… RetryClassificationTests testUnknownError_notRetryable 4ms
โœ… ReturnFlowTests testRetryTracker_limitsRetries 6ms
โœ… RightsManagementDetectionTests testMimeType_adobeAdept_detectsAdobeRights 1ms
โœ… RightsManagementDetectionTests testMimeType_bearerToken_detectsBearerTokenRights 2ms
โœ… RightsManagementDetectionTests testMimeType_epubZip_detectsNoRights 2ms
โœ… RightsManagementDetectionTests testMimeType_lcpLicense_detectsLCPRights 3ms
โœ… RightsManagementDetectionTests testMimeType_unknown_detectsUnknown 2ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_AuthRequiredError_SAML_Credentials_Book_ReturnsTrue 80ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_BasicAuth_ReturnsFalse 78ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_NilCurrentBook_ReturnsFalse 114ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_NilError_ReturnsFalse 79ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_NoCredentials_ReturnsFalse 95ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_OAuthAccount_ReturnsFalse 82ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_WrongErrorCode_ReturnsFalse 79ms
โœ… SAMLPlusBiblioBoardExpirationTests testShouldTriggerSAMLReauth_WrongErrorDomain_ReturnsFalse 88ms
โœ… SEMigrationsTests testMigrate2_oldCacheFiles_areRemoved 8ms
โœ… SEMigrationsTests testRunMigrations_doesNotCrash 5ms
โœ… SEMigrationsTests testRunMigrations_emptyVersion_handlesGracefully 59ms
โœ… SEMigrationsTests testRunMigrations_multipleCallsAreSafe 10ms
โœ… SEMigrationsTests testRunMigrations_nilVersion_handlesGracefully 27ms
โœ… SEMigrationsTests testRunMigrations_withCurrentVersion_doesNotMigrate 4ms
โœ… SafeDictionaryTests testAllPairs_returnsAllKeyValuePairs 134ms
โœ… SafeDictionaryTests testCompactMapValues_removesNils 7ms
โœ… SafeDictionaryTests testContains_existingKey_returnsTrue 27ms
โœ… SafeDictionaryTests testCount_reflectsEntries 7ms
โœ… SafeDictionaryTests testFilter_selectsMatchingEntries 6ms
โœ… SafeDictionaryTests testGetMetrics_returnsMetricsDictionary 5ms
โœ… SafeDictionaryTests testGet_missingKey_returnsNil 5ms
โœ… SafeDictionaryTests testInit_withInitialValues 2ms
โœ… SafeDictionaryTests testIsEmpty_noEntries_returnsTrue 3ms
โœ… SafeDictionaryTests testKeys_returnsAllKeys 3ms
โœ… SafeDictionaryTests testMapValues_transformsValues 2ms
โœ… SafeDictionaryTests testModify_createsNewValue 8ms
โœ… SafeDictionaryTests testModify_updatesExistingValue 5ms
โœ… SafeDictionaryTests testRemoveAll_clearsEverything 2ms
โœ… SafeDictionaryTests testRemoveMultiple_removesSpecifiedKeys 2ms
โœ… SafeDictionaryTests testRemove_deletesEntry 4ms
โœ… SafeDictionaryTests testRemove_missingKey_returnsNil 29ms
โœ… SafeDictionaryTests testSet_andGet_returnsValue 2ms
โœ… SafeDictionaryTests testSet_overwrite_updatesValue 6ms
โœ… SafeDictionaryTests testUpdateMultiple_addsAllEntries 3ms
โœ… SafeDictionaryTests testValues_returnsAllValues 4ms
โœ… SceneDelegateTests testSceneDelegate_HasMainSceneConnected_InitiallyFalse 2ms
โœ… SearchAccessibilityTests testClearSearchLabel_isDescriptive 2ms
โœ… SearchAccessibilityTests testClearSearchLabel_isLocalized 4ms
โœ… SearchAccessibilityTests testGoBackLabel_isDescriptive 2ms
โœ… SearchAccessibilityTests testSearchBooksLabel_exists 2ms
โœ… SearchAccessibilityTests testSearchCatalogLabel_differsFromSearchInBook 2ms
โœ… SearchAccessibilityTests testSearchInBookLabel_isDescriptive 3ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_InitWithPartialSettings_HandlesGracefully 11ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_MultipleRapidChanges_MaintainsConsistency 6ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_ResetThenModify_WorksCorrectly 10ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_SetCustomFeedURL_LocalhostHTTP_ReturnsTrue 6ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_SetCustomFeedURL_URLWithFragment_ReturnsTrue 6ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_SetCustomFeedURL_URLWithPort_ReturnsTrue 6ms
โœ… SettingsViewModelEdgeCaseTests testSettingsViewModel_SetCustomFeedURL_URLWithQueryParams_ReturnsTrue 5ms
โœ… SettingsViewModelGapTests testSettingsViewModel_refreshAccountsList_updatesProperty 19ms
โœ… SettingsViewModelSyncTests testResetToDefaults_ClearsAllSettings 10ms
โœ… SettingsViewModelSyncTests testResetToDefaults_UpdatesSettingsProvider 17ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithEmptyString_ClearsURL 7ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithInvalidURL_ReturnsFalse 7ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithNil_ClearsURL 79ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithNonHttpScheme_ReturnsFalse 6ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithValidHttpURL_ReturnsTrue 7ms
โœ… SettingsViewModelSyncTests testSetCustomFeedURL_WithValidHttpsURL_ReturnsTrue 6ms
โœ… SettingsViewModelSyncTests testSetCustomRegistryServer_WithEmptyString_ReturnsTrueAndClears 6ms
โœ… SettingsViewModelSyncTests testSetCustomRegistryServer_WithNil_ClearsServer 14ms
โœ… SettingsViewModelSyncTests testSetCustomRegistryServer_WithValidURL_ReturnsTrue 6ms
โœ… SettingsViewModelSyncTests testSettingsViewModel_BidirectionalSync_SettingsToViewModelViaRefresh 11ms
โœ… SettingsViewModelSyncTests testSettingsViewModel_BidirectionalSync_ViewModelToSettings 6ms
โœ… SettingsViewModelSyncTests testSettingsViewModel_ExternalSettingsChange_RequiresRefresh 10ms
โœ… SettingsViewModelTests testSettingsViewModel_AcceptEULA_SetsTrue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_ClearCustomFeedURL_ClearsURL 6ms
โœ… SettingsViewModelTests testSettingsViewModel_ClearCustomRegistryServer_ClearsServer 6ms
โœ… SettingsViewModelTests testSettingsViewModel_CustomMainFeedURL_PublishesChanges 7ms
โœ… SettingsViewModelTests testSettingsViewModel_FormattedAppVersion_ReturnsFormattedString 6ms
โœ… SettingsViewModelTests testSettingsViewModel_Init_DefaultsAreCorrect 16ms
โœ… SettingsViewModelTests testSettingsViewModel_Init_ReadsSettingsFromProvider 11ms
โœ… SettingsViewModelTests testSettingsViewModel_IsUsingCustomFeed_FalseWhenURLNil 5ms
โœ… SettingsViewModelTests testSettingsViewModel_IsUsingCustomFeed_TrueWhenURLSet 6ms
โœ… SettingsViewModelTests testSettingsViewModel_IsUsingCustomRegistry_FalseWhenServerEmpty 6ms
โœ… SettingsViewModelTests testSettingsViewModel_IsUsingCustomRegistry_FalseWhenServerNil 6ms
โœ… SettingsViewModelTests testSettingsViewModel_IsUsingCustomRegistry_TrueWhenServerSet 10ms
โœ… SettingsViewModelTests testSettingsViewModel_MarkAgeCheckPresented_SetsTrue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_RefreshSettings_ReloadsFromProvider 10ms
โœ… SettingsViewModelTests testSettingsViewModel_ResetToDefaults_ResetsAllSettings 21ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_EmptyString_ClearsURL 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_InvalidScheme_ReturnsFalse 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_InvalidURL_ReturnsFalse 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_Nil_ClearsURL 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_ValidHTTPS_ReturnsTrue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomFeedURL_ValidHTTP_ReturnsTrue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomRegistryServer_EmptyString_ClearsServer 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomRegistryServer_InvalidURL_ReturnsFalse 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetCustomRegistryServer_ValidURL_ReturnsTrue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetEnterLCPPassphraseManually_UpdatesSettings 39ms
โœ… SettingsViewModelTests testSettingsViewModel_SetSameValue_DoesNotWriteToSettings 9ms
โœ… SettingsViewModelTests testSettingsViewModel_SetUseBetaLibraries_UpdatesSettings 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetUserHasAcceptedEULA_UpdatesSettings 6ms
โœ… SettingsViewModelTests testSettingsViewModel_SetUserPresentedAgeCheck_UpdatesSettings 7ms
โœ… SettingsViewModelTests testSettingsViewModel_ToggleBetaLibraries_TogglesValue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_ToggleLCPManualPassphrase_TogglesValue 6ms
โœ… SettingsViewModelTests testSettingsViewModel_UpdateAppVersion_UpdatesSettings 10ms
โœ… SettingsViewModelTests testSettingsViewModel_UseBetaLibraries_PublishesChanges 7ms
โœ… StatusAnnouncementTests testPP3673_allAnnouncementTypes_areProgrammaticallyDeterminable 108ms
โœ… StatusAnnouncementTests testPP3673_borrowFailed_announces 108ms
โœ… StatusAnnouncementTests testPP3673_borrowLifecycle_producesSequentialAnnouncements 106ms
โœ… StatusAnnouncementTests testPP3673_borrowStarted_announces 106ms
โœ… StatusAnnouncementTests testPP3673_borrowSucceeded_announcesWithoutFocusShift 106ms
โœ… StatusAnnouncementTests testPP3673_differentMessages_allAnnounced 107ms
โœ… StatusAnnouncementTests testPP3673_downloadCompleted_announces 103ms
โœ… StatusAnnouncementTests testPP3673_downloadFailed_announces 107ms
โœ… StatusAnnouncementTests testPP3673_downloadStarted_announces 106ms
โœ… StatusAnnouncementTests testPP3673_errorAnnouncement_doesNotMoveFocus 103ms
โœ… StatusAnnouncementTests testPP3673_errorMessage_announcedViaVoiceOver 106ms
โœ… StatusAnnouncementTests testPP3673_quickSuccession_sameMessage_collapsed 104ms
โœ… StatusAnnouncementTests testPP3673_searchAnnouncement_usesAnnouncementNotification 104ms
โœ… StatusAnnouncementTests testPP3673_searchFailed_announces 107ms
โœ… StatusAnnouncementTests testPP3673_searchNoResults_announcesNoResults 104ms
โœ… StatusAnnouncementTests testPP3673_searchRerun_announcesNewStatus 110ms
โœ… StatusAnnouncementTests testPP3673_searchStrings_areLocalized 9ms
โœ… StatusAnnouncementTests testPP3673_searchWithResults_announcesResultsForQuery 103ms
โœ… StatusAnnouncementTests testPP3673_statusStrings_areUnderstandable 2ms
โœ… StatusAnnouncementTests testPP3673_statusWithTitleAndMessage_isClear 105ms
โœ… StatusAnnouncementTests testPP3673_updatedStatus_replacesOld 109ms
โœ… StatusAnnouncementTests testPP3673_voiceOverDisabled_noAnnouncements 106ms
โœ… StringExtensionTests testMd5hex_differsByInput 5ms
โœ… StringExtensionTests testMd5hex_emptyString 29ms
โœ… StringExtensionTests testMd5hex_length 2ms
โœ… StringExtensionTests testMd5hex_returnsConsistentHash 2ms
โœ… StringExtensionTests testParseJSONString_arrayJSON 4ms
โœ… StringExtensionTests testParseJSONString_emptyString 4ms
โœ… StringExtensionTests testParseJSONString_invalidJSON 2ms
โœ… StringExtensionTests testParseJSONString_validJSON 7ms
โœ… StringNYPLAdditionsTests testStringContains_caseInsensitive 57ms
โœ… StringNYPLAdditionsTests testStringIsEmpty_withWhitespace 7ms
โœ… StringNYPLAdditionsTests testStringPrefix_matching 5ms
โœ… StringNYPLAdditionsTests testStringSuffix_matching 4ms
โœ… String_NYPLAdditionsTests testBase64Decode 3ms
โœ… String_NYPLAdditionsTests testBase64Encode 2ms
โœ… String_NYPLAdditionsTests testMD5 5ms
โœ… String_NYPLAdditionsTests testSHA256 3ms
โœ… String_NYPLAdditionsTests testURLEncodingQueryParam 5ms
โœ… SyncConflictResolutionTests testConflictResolution_localNewer_usesLocal 2ms
โœ… SyncConflictResolutionTests testConflictResolution_sameTimestamp_usesHigherProgress 1ms
โœ… SyncConflictResolutionTests testConflictResolution_serverNewer_usesServer 2ms
โœ… SyncDeletionGuardTests testVersionComparison_emptyIsLessThan 3ms
โœ… SyncDeletionGuardTests testVersionComparison_equal_returnsFalse 4ms
โœ… SyncDeletionGuardTests testVersionComparison_sameMajor 49ms
โœ… SyncDeletionGuardTests testVersionComparison_shorterIsLess 4ms
โœ… SyncDeletionGuardTests testVersionComparison_shorterIsNotLess_ifZero 4ms
โœ… SyncDeletionRatioTests testCompleteFeed_noDeletions 2ms
โœ… SyncDeletionRatioTests testEmptyFeedWithLocalBooks_shouldSkipDeletion 36ms
โœ… SyncDeletionRatioTests testEmptyFeedWithNoLocalBooks_shouldNotSkip 2ms
โœ… SyncDeletionRatioTests testNormalSync_singleBookRemoved_noWarning 2ms
โœ… SyncDeletionRatioTests testPartialFeed_shouldWarnButNotSkip 2ms
โœ… SyncDeletionRatioTests testSmallLibrary_noProtection 2ms
โœ… SyncPermissionTests testAccountDetails_nilDetails_makesSyncPropertiesFalse 83ms
โœ… SyncPermissionTests testAccountDetails_syncProperties_matchExpectations 101ms
โœ… SyncPermissionTests testSyncIsPossibleAndPermitted_doesNotCrash 2ms
โœ… SyncPermissionTests testSyncIsPossible_withCredentials_dependsOnCurrentAccountDetails 4ms
โœ… SyncPermissionTests testSyncIsPossible_withoutCredentials_returnsFalse 4ms
โœ… TPPAccountAuthStateEnumTests testCodable_encodesAndDecodesCorrectly 7ms
โœ… TPPAccountAuthStateEnumTests testDescription_returnsCorrectStrings 48ms
โœ… TPPAccountAuthStateEnumTests testHasAdobeActivation_trueForLoggedInAndStale 2ms
โœ… TPPAccountAuthStateEnumTests testHasStoredCredentials_falseOnlyForLoggedOut 4ms
โœ… TPPAccountAuthStateEnumTests testNeedsReauthentication_trueForLoggedOutAndStale 4ms
โœ… TPPAccountListDataSourceTests testLoadData_MixedCaseLibraryNames_SortsCaseInsensitively 5ms
โœ… TPPAccountListDataSourceTests testLoadData_WithFilter_FiltersCaseInsensitively 27ms
โœ… TPPAccountListDataSourceTests testLoadData_WithNationalAccounts_SeparatesAndSortsCaseInsensitively 2ms
โœ… TPPAdobeActivationSkipTests testShouldSkipAdobeActivation_falseWhenLoggedIn 117ms
โœ… TPPAdobeActivationSkipTests testShouldSkipAdobeActivation_falseWhenLoggedOut 100ms
โœ… TPPAdobeActivationSkipTests testShouldSkipAdobeActivation_falseWhenStaleButAdobeNotAuthorized 103ms
โœ… TPPAdobeActivationSkipTests testShouldSkipAdobeActivation_falseWhenStaleButNoAdobeCredentials 80ms
โœ… TPPAdobeActivationSkipTests testShouldSkipAdobeActivation_trueWhenStaleAndAdobeAuthorized 95ms
โœ… TPPAdobeActivationSkipTests testUpdateUserAccount_marksLoggedIn 78ms
โœ… TPPAgeCheckTests testAge0 221ms
โœ… TPPAgeCheckTests testAge100 100ms
โœ… TPPAgeCheckTests testAge12 114ms
โœ… TPPAgeCheckTests testAge13 405ms
โœ… TPPAgeCheckTests testAge14 199ms
โœ… TPPAgeCheckTests testAgeCheckFailed 1.77s
โœ… TPPAlertUtilsTests testAlertWithDetails_hasOKAction 9ms
โœ… TPPAlertUtilsTests testAlertWithDetails_hasTwoActions 10ms
โœ… TPPAlertUtilsTests testAlertWithDetails_hasViewDetailsAction 8ms
โœ… TPPAlertUtilsTests testAlertWithDetails_plainMessageWithProblemDoc_includesDetail 25ms
โœ… TPPAlertUtilsTests testAlertWithDetails_withProblemDocument_doesNotDuplicateDetail 9ms
โœ… TPPAlertUtilsTests testAlert_customStyle_usesProvidedStyle 6ms
โœ… TPPAlertUtilsTests testAlert_hasOKAction 7ms
โœ… TPPAlertUtilsTests testAlert_nilMessage_substitutesEmpty 5ms
โœ… TPPAlertUtilsTests testAlert_nilTitle_substitutesDefault 6ms
โœ… TPPAlertUtilsTests testAlert_titleAndMessage_createsAlert 39ms
โœ… TPPAlertUtilsTests testAlert_withError_createsAlert 8ms
โœ… TPPAlertUtilsTests testAlert_withNilError_createsAlert 17ms
โœ… TPPAlertUtilsTests testBorrowErrorPipeline_doesNotDuplicateProblemDocDetail 15ms
โœ… TPPAlertUtilsTests testCrashlyticsFE741015_PresentAlertWhileAlertShowing_DoesNotCrash 67ms
โœ… TPPAlertUtilsTests testPresentAlert_WhenNoAlertShowing_PresentsSuccessfully 179ms
โœ… TPPAlertUtilsTests testRetryPresentation_AfterFirstAlertDismisses_PresentsSecond 71ms
โœ… TPPAlertUtilsTests testRetryPresentation_ExceedsMaxRetries_DropsAlertWithCompletion 60ms
โœ… TPPAlertUtilsTests testSetProblemDocument_appendsToMessage 8ms
โœ… TPPAlertUtilsTests testSetProblemDocument_nilController_doesNotCrash 2ms
โœ… TPPAlertUtilsTests testSetProblemDocument_nilDocument_doesNotCrash 5ms
โœ… TPPAlertUtilsTests testSetProblemDocument_replacesMessage 5ms
โœ… TPPAnnotationsTests testAnnotationResponse_HandlesNilValues 75ms
โœ… TPPAnnotationsTests testAnnotationResponse_StoresValues 84ms
โœ… TPPAnnotationsTests testTPPAnnotationsWrapper_ImplementsProtocol 102ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteAllBookmarks_CompletesImmediately 93ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteBookmark_Handles404AsSuccess 112ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteBookmark_HandlesServerError 102ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteBookmark_HandlesSuccessfulDeletion 76ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteBookmark_ReturnsFalseForInvalidURL 89ms
โœ… TPPAnnotationsTests testTPPAnnotations_DeleteBookmarks_HandlesArray 2.16s
โœ… TPPAnnotationsTests testTPPAnnotations_GetServerBookmarks_ParsesValidResponse 95ms
โœ… TPPAnnotationsTests testTPPAnnotations_GetServerBookmarks_ReturnsNilForNilBook 74ms
โœ… TPPAnnotationsTests testTPPAnnotations_GetServerBookmarks_ReturnsNilForNilURL 98ms
โœ… TPPAnnotationsTests testTPPAnnotations_GetServerBookmarks_ReturnsNilWhenSyncNotPermitted 82ms
โœ… TPPAnnotationsTests testTPPAnnotations_HandlesConcurrentRequests 81ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAnnotation_CreatesCorrectRequestFormat 81ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAnnotation_HandlesInvalidJSONGracefully 90ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAnnotation_HandlesNetworkError 92ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAnnotation_HandlesNon200StatusCode 101ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAnnotation_HandlesSuccessResponse 276ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostAudiobookBookmark_ThrowsOnFailure 83ms
โœ… TPPAnnotationsTests testTPPAnnotations_PostListeningPosition_CallsPostReadingPosition 78ms
โœ… TPPAnnotationsTests testTPPAnnotations_SyncIsPossible_ReturnsFalseWithoutCredentials 113ms
โœ… TPPAnnotationsTests testTPPAnnotations_SyncIsPossible_ReturnsTrueWithCredentialsAndSyncSupport 84ms
โœ… TPPAnnotationsTests testTPPAnnotations_SyncReadingPosition_ReturnsNilWhenNotPermitted 93ms
โœ… TPPAnnotationsTests testTPPAnnotations_UploadLocalBookmarks_SkipsAlreadySyncedBookmarks 88ms
โœ… TPPAnnotationsTests testTPPBookmarkFactory_FiltersBookmarksByMotivation 87ms
โœ… TPPAnnotationsTests testTPPBookmarkFactory_RejectsBookmarksForWrongBook 86ms
โœ… TPPAnnotationsTests testTPPBookmarkSpec_ReadingProgressMotivation 89ms
โœ… TPPAnnotationsTests testTPPBookmarkSpec_SerializesToValidJSON 87ms
โœ… TPPAnnouncementManagerTests testAddPresentedAnnouncement 8ms
โœ… TPPAnnouncementManagerTests testDeletePresentedAnnouncement 23ms
โœ… TPPAnnouncementManagerTests testShouldPresentAnnouncement 4ms
โœ… TPPBadgeImageGapTests testTPPBadgeImage_allCases_areEnumerable 4ms
โœ… TPPBadgeImageGapTests testTPPBadgeImage_audiobook_assetNameReturnsAudiobookBadge 2ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withEmptyCredentials_usesCredential 2ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withMultipleFailures_cancelsChallenge 2ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withNilPassword_cancelsChallenge 2ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withNilUsername_cancelsChallenge 2ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withPreviousFailure_cancelsChallenge 3ms
โœ… TPPBasicAuthTests testHandleChallenge_basicAuth_withValidCredentials_usesCredential 2ms
โœ… TPPBasicAuthTests testHandleChallenge_clientCertificate_rejectsProtectionSpace 2ms
โœ… TPPBasicAuthTests testHandleChallenge_credentials_noPersistence 3ms
โœ… TPPBasicAuthTests testHandleChallenge_serverTrust_performsDefaultHandling 4ms
โœ… TPPBasicAuthTests testHandleChallenge_unknownMethod_rejectsProtectionSpace 2ms
โœ… TPPBasicAuthTests testInit_createsInstance 3ms
โœ… TPPBookBearerTokenTests testBearerToken_clearWithNil 6ms
โœ… TPPBookBearerTokenTests testBearerToken_defaultsToNil 6ms
โœ… TPPBookBearerTokenTests testBearerToken_writeAndRead 7ms
โœ… TPPBookBearerTokenTests testFulfillURL_clearWithNil 16ms
โœ… TPPBookBearerTokenTests testFulfillURL_defaultsToNil 6ms
โœ… TPPBookBearerTokenTests testFulfillURL_independentPerBook 18ms
โœ… TPPBookBearerTokenTests testFulfillURL_overwrite 18ms
โŠ˜ TPPBookBearerTokenTests testFulfillURL_persistsAcrossNewBookInstances 36ms
โœ… TPPBookBearerTokenTests testFulfillURL_writeAndRead 12ms
โœ… TPPBookContentMetadataFilesHelperTests testCurrentAccountDirectory_returnsURLOrNil 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_containsBundleIdentifier 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_differentAccounts_returnDifferentPaths 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_emptyString_handlesGracefully 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_longAccountId_handlesGracefully 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_pathContainsApplicationSupport 11ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_sameAccount_returnsSamePath 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_specialCharacters_handlesGracefully 2ms
โœ… TPPBookContentMetadataFilesHelperTests testDirectory_validAccountId_returnsURL 3ms
โœ… TPPBookCreationTests testBookCreationViaDictionary 10ms
โœ… TPPBookCreationTests testBookCreationViaFactoryMethod 33ms
โœ… TPPBookCreationTests testBookCreationViaMemberWiseInitializer 7ms
โœ… TPPBookLocationTests testDictionaryRepresentation_ContainsAllFields 32ms
โœ… TPPBookLocationTests testInit_FromDictionary_Succeeds 2ms
โœ… TPPBookLocationTests testInit_FromDictionary_WithMissingLocationString_ReturnsNil 2ms
โœ… TPPBookLocationTests testInit_FromDictionary_WithMissingRenderer_ReturnsNil 1ms
โœ… TPPBookLocationTests testInit_WithValidParams_Succeeds 2ms
โœ… TPPBookLocationTests testIsSimilarTo_IgnoresAnnotationId 2ms
โœ… TPPBookLocationTests testIsSimilarTo_IgnoresTimestamp 2ms
โœ… TPPBookLocationTests testIsSimilarTo_WithDifferentRenderer_ReturnsFalse 1ms
โœ… TPPBookLocationTests testIsSimilarTo_WithSameContent_ReturnsTrue 3ms
โœ… TPPBookLocationTests testLocationStringDictionary_ParsesValidJSON 2ms
โœ… TPPBookLocationTests testLocationStringDictionary_WithInvalidJSON_ReturnsNil 2ms
โœ… TPPBookModelGapTests testTPPBook_bookWithMetadata_returnsBookWithUpdatedMetadata 7ms
โœ… TPPBookModelGapTests testTPPBook_dictionaryRepresentation_producesNonEmptyDict 11ms
โœ… TPPBookModelGapTests testTPPBook_dictionaryRepresentation_roundTripPreservesKeyProperties 6ms
โœ… TPPBookModelGapTests testTPPBook_sameIdentifier_comparableEquivalent 32ms
โœ… TPPBookRegistryBookRetrievalTests testAllBooks_ReturnsRegisteredBooks 221ms
โœ… TPPBookRegistryBookRetrievalTests testBook_ForEmptyIdentifier_ReturnsNil 2ms
โœ… TPPBookRegistryBookRetrievalTests testBook_ForNilIdentifier_ReturnsNil 3ms
โœ… TPPBookRegistryBookRetrievalTests testBook_ForNonExistentIdentifier_ReturnsNil 6ms
โœ… TPPBookRegistryBookRetrievalTests testBook_ForValidIdentifier_ReturnsBook 161ms
โœ… TPPBookRegistryBookRetrievalTests testHeldBooks_ReturnsOnlyHoldingBooks 227ms
โœ… TPPBookRegistryBookRetrievalTests testMyBooks_ReturnsDownloadRelatedBooks 225ms
โœ… TPPBookRegistryBookmarkTests testAddGenericBookmark_AppendsToList 313ms
โœ… TPPBookRegistryBookmarkTests testAddOrReplaceGenericBookmark_ReplacesExisting 315ms
โœ… TPPBookRegistryBookmarkTests testAddReadiumBookmark_AppendsToList 322ms
โœ… TPPBookRegistryBookmarkTests testDeleteGenericBookmark_RemovesFromList 323ms
โœ… TPPBookRegistryBookmarkTests testDeleteReadiumBookmark_RemovesFromList 320ms
โœ… TPPBookRegistryBookmarkTests testReadiumBookmarks_SortedByProgress 114ms
โœ… TPPBookRegistryBookmarkTests testReplaceGenericBookmark_UpdatesBookmark 314ms
โœ… TPPBookRegistryCorruptedDataTests testRecordInit_WithCorruptedBookmarks_SkipsInvalid 5ms
โœ… TPPBookRegistryCorruptedDataTests testRecordInit_WithInvalidState_ReturnsNil 5ms
โœ… TPPBookRegistryCorruptedDataTests testRecordInit_WithMissingBook_ReturnsNil 2ms
โœ… TPPBookRegistryCorruptedDataTests testRecordInit_WithMissingOptionalFields_Succeeds 8ms
โœ… TPPBookRegistryCorruptedDataTests testRecordInit_WithMissingState_ReturnsNil 5ms
โœ… TPPBookRegistryDataTests testArrayForKey_ReturnsArray 2ms
โœ… TPPBookRegistryDataTests testObjectForKey_ReturnsDictionary 2ms
โœ… TPPBookRegistryDataTests testSetValue_SetsValue 2ms
โœ… TPPBookRegistryDataTests testValueForKey_ReturnsValue 2ms
โœ… TPPBookRegistryFulfillmentIdTests testFulfillmentId_ForEmptyIdentifier_ReturnsNil 2ms
โœ… TPPBookRegistryFulfillmentIdTests testFulfillmentId_ForNilIdentifier_ReturnsNil 2ms
โœ… TPPBookRegistryFulfillmentIdTests testFulfillmentId_ForNonExistentBook_ReturnsNil 2ms
โœ… TPPBookRegistryFulfillmentIdTests testSetFulfillmentId_UpdatesFulfillmentId 231ms
โœ… TPPBookRegistryLoadReentrancyTests testLoad_EmitsBookStateEventsForAllBooks 2ms
โœ… TPPBookRegistryLoadReentrancyTests testLoad_RapidCallsForSameAccount_DoesNotCrash 6ms
โœ… TPPBookRegistryLocationTests testLocation_ForNonExistentBook_ReturnsNil 2ms
โœ… TPPBookRegistryLocationTests testSetLocationSync_UpdatesSynchronously 115ms
โœ… TPPBookRegistryLocationTests testSetLocation_UpdatesLocation 213ms
โœ… TPPBookRegistryLocationTests testSetLocation_WithNil_ClearsLocation 215ms
โœ… TPPBookRegistryProcessingTests testSetProcessing_False_ClearsProcessingState 209ms
โœ… TPPBookRegistryProcessingTests testSetProcessing_TracksProcessingState 110ms
โœ… TPPBookRegistryPublisherTests testBookStatePublisher_EmitsOnBookAdd 12ms
โœ… TPPBookRegistryPublisherTests testBookStatePublisher_EmitsOnBookRemove 224ms
โœ… TPPBookRegistryPublisherTests testBookStatePublisher_EmitsOnStateChange 217ms
โœ… TPPBookRegistryPublisherTests testBookStatePublisher_MultipleStateChanges_EmitsAll 414ms
โœ… TPPBookRegistryPublisherTests testRegistryPublisher_EmitsOnBookAdd 15ms
โœ… TPPBookRegistryPublisherTests testRegistryPublisher_EmitsOnBookRemove 227ms
โœ… TPPBookRegistryRecordPersistenceTests testAllStatesSerializeCorrectly 21ms
โœ… TPPBookRegistryRecordPersistenceTests testDictionaryRepresentation_ContainsAllFields 6ms
โœ… TPPBookRegistryRecordPersistenceTests testDictionaryRoundTrip_PreservesData 6ms
โœ… TPPBookRegistryRecordTests testAllStatesCanBePreserved 3ms
โœ… TPPBookRegistryRecordTests testDeriveInitialStateForBookWithoutAcquisition 6ms
โœ… TPPBookRegistryRecordTests testDeriveInitialStateForBorrowableBook 4ms
โœ… TPPBookRegistryRecordTests testDictionaryRepresentationPreservesState 14ms
โœ… TPPBookRegistryRecordTests testInitFromDictionaryPreservesState 6ms
โœ… TPPBookRegistryRecordTests testInitPreservesDownloadFailedState 6ms
โœ… TPPBookRegistryRecordTests testInitPreservesDownloadSuccessfulState 3ms
โœ… TPPBookRegistryRecordTests testInitPreservesDownloadingState 3ms
โœ… TPPBookRegistryRecordTests testInitPreservesHoldingState 6ms
โœ… TPPBookRegistryRecordTests testInitPreservesUsedState 3ms
โœ… TPPBookRegistryStateManagementTests testAddBook_NewBook_RegistersWithCorrectState 108ms
โœ… TPPBookRegistryStateManagementTests testAddBook_WithBookmarks_StoresBookmarks 116ms
โœ… TPPBookRegistryStateManagementTests testAddBook_WithFulfillmentId_StoresFulfillmentId 112ms
โœ… TPPBookRegistryStateManagementTests testAddBook_WithLocation_StoresLocation 108ms
โœ… TPPBookRegistryStateManagementTests testRemoveBook_RemovesFromRegistry 220ms
โœ… TPPBookRegistryStateManagementTests testRemoveBook_WithEmptyIdentifier_DoesNotCrash 3ms
โœ… TPPBookRegistryStateManagementTests testSetState_ForUnregisteredBook_DoesNotCrash 107ms
โœ… TPPBookRegistryStateManagementTests testSetState_TransitionsCorrectly 635ms
โœ… TPPBookRegistryStateManagementTests testStateFor_EmptyIdentifier_ReturnsUnregistered 3ms
โœ… TPPBookRegistryStateManagementTests testStateFor_NilIdentifier_ReturnsUnregistered 4ms
โœ… TPPBookRegistryStateManagementTests testStateFor_NonExistentBook_ReturnsUnregistered 2ms
โœ… TPPBookRegistryThreadSafetyTests testCrashlytics30c41d7e_ConcurrentAddAndUpdate_DoNotCrash 1.02s
โœ… TPPBookRegistryThreadSafetyTests testCrashlytics30c41d7e_RapidRegistryMutations_DoNotCrashPublisher 1.18s
โœ… TPPBookRegistryThreadSafetyTests testRegistryPublisher_EmitsConsistentSnapshots_DuringRapidMutations 1.61s
โœ… TPPBookRegistryUpdateAndRemoveTests testUpdateAndRemoveBook_SetsStateToUnregistered 331ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_falseForLCPBook 2ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_falseForOpenAccessAudiobook 24ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_falseForOpenAccessBook 2ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_falseWhenNoAcquisitions 2ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_trueForAdobeAdeptBook 24ms
โœ… TPPBookRequiresAdobeDRMTests testRequiresAdobeDRM_trueForOPDSFixtureEntry 2ms
โœ… TPPBookStateInitializationTests testStateInit_FromInvalidString_ReturnsNil 2ms
โœ… TPPBookStateInitializationTests testStateInit_FromValidStrings 2ms
โœ… TPPBookStateInitializationTests testStateRoundTrip_AllStates 2ms
โœ… TPPBookStateInitializationTests testStateStringValue_ReturnsCorrectString 2ms
โœ… TPPBookStateTests testAllBookState 3ms
โœ… TPPBookStateTests testBookStateFromString 2ms
โœ… TPPBookStateTests testInitWithString 2ms
โœ… TPPBookStateTests testStringValue 2ms
โœ… TPPBookmarkDeletionLogTests testClearAllDeletions_OnlyAffectsSpecifiedBook 322ms
โœ… TPPBookmarkDeletionLogTests testClearAllDeletions_RemovesAllForBook 363ms
โœ… TPPBookmarkDeletionLogTests testClearDeletion_RemovesSpecificAnnotation 315ms
โœ… TPPBookmarkDeletionLogTests testLogDeletion_AddsToPendingDeletions 107ms
โœ… TPPBookmarkDeletionLogTests testLogDeletion_HandlesDuplicates 210ms
โœ… TPPBookmarkDeletionLogTests testLogDeletion_IgnoresEmptyAnnotationId 110ms
โœ… TPPBookmarkDeletionLogTests testLogDeletion_MultipleDeletionsForSameBook 222ms
โœ… TPPBookmarkDeletionLogTests testPP3555_ClearAllDeletionsOnBookReturn 317ms
โœ… TPPBookmarkDeletionLogTests testPP3555_DeletionLogTracksBookmarksForServerDeletion 115ms
โœ… TPPBookmarkDeletionLogTests testPendingDeletions_ReturnsEmptyForUnknownBook 9ms
โœ… TPPBookmarkDeletionLogTests testThreadSafety_ConcurrentWrites 513ms
โœ… TPPBookmarkFactoryInitTests testInit_StoresProperties 2ms
โœ… TPPBookmarkFactoryInitTests testInit_WithNilDeviceId_CreatesFactory 9ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests testMakeFromServerAnnotation_DoubleProgressValue_ConvertsToFloat 3ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests testMakeFromServerAnnotation_EmptyHref_CreatesBookmarkWithEmptyHref 4ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests testMakeFromServerAnnotation_MissingProgressValues_UsesDefaults 44ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests testMakeFromServerAnnotation_ProgressFromBodyFallback 3ms
โœ… TPPBookmarkFactoryServerAnnotationEdgeCaseTests testMakeFromServerAnnotation_WithReadingOrderItem_IncludesIt 3ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_ExtractsChapterTitle 8ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_InvalidSelectorJSON_ReturnsNil 4ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MismatchedBookId_ReturnsNil 6ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MismatchedMotivation_ReturnsNil 5ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MissingAnnotationId_ReturnsNil 3ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MissingBody_ReturnsNil 40ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MissingSelector_ReturnsNil 4ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_MissingTarget_ReturnsNil 7ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_ReadingProgress_CreatesBookmark 14ms
โœ… TPPBookmarkFactoryTests testMakeFromServerAnnotation_ValidBookmark_CreatesBookmark 6ms
โœ… TPPBookmarkFactoryTests testMake_FromR3Location_CreatesBookmark 11ms
โœ… TPPBookmarkFactoryTests testMake_FromR3Location_GeneratesLocationFromLocator 3ms
โœ… TPPBookmarkFactoryTests testMake_FromR3Location_UsesCreationDate 35ms
โœ… TPPBookmarkFactoryTests testMake_FromR3Location_WithNilProgression_ReturnsNil 4ms
โœ… TPPBookmarkFactoryTests testMake_FromR3Location_WithPagePosition_IncludesPage 31ms
โœ… TPPBookmarkR3ConversionTests testConvertToR3_bookmarkNotInPublication_returnsNil 3ms
โœ… TPPBookmarkR3ConversionTests testConvertToR3_parsesTimeCorrectly 21ms
โœ… TPPBookmarkR3ConversionTests testConvertToR3_preservesChapterTitle 4ms
โœ… TPPBookmarkR3ConversionTests testConvertToR3_preservesProgressionValues 3ms
โœ… TPPBookmarkR3ConversionTests testConvertToR3_validBookmark_createsR3Location 123ms
โœ… TPPBookmarkR3LocationTests testFrom_emptyReadingOrder_returnsNil 4ms
โœ… TPPBookmarkR3LocationTests testFrom_firstChapter_returnsIndexZero 2ms
โœ… TPPBookmarkR3LocationTests testFrom_lastChapter_returnsCorrectIndex 8ms
โœ… TPPBookmarkR3LocationTests testFrom_locatorNotInPublication_returnsNil 2ms
โœ… TPPBookmarkR3LocationTests testFrom_locatorWithDifferentMediaType_findsMatchByHref 3ms
โœ… TPPBookmarkR3LocationTests testFrom_validLocatorInPublication_createsLocation 4ms
โœ… TPPBookmarkR3LocationTests testFrom_withCustomCreationDate_usesProvidedDate 25ms
โœ… TPPBookmarkR3LocationTests testInit_preservesResourceIndex 2ms
โœ… TPPBookmarkR3LocationTests testInit_withDefaultCreationDate_usesCurrentDate 2ms
โœ… TPPBookmarkR3LocationTests testInit_withValidParameters_createsLocation 2ms
โœ… TPPBookmarkR3LocationTests testLocator_preservesMediaType 5ms
โœ… TPPBookmarkR3LocationTests testLocator_preservesProgression 5ms
โœ… TPPBookmarkR3LocationTests testLocator_preservesTitle 3ms
โœ… TPPBookmarkSpecTests testBookmarkMotivationKeyword 2ms
โœ… TPPCachingTests testMaxAgeExtraction 3ms
โœ… TPPCachingTests testResponseModification 9ms
โœ… TPPCachingTests testSufficientCacheHeaders 4ms
โœ… TPPCapturedCredentialsTests testFinalizeSignIn_fallsBackToUIDelegate_whenCapturedNil 89ms
โœ… TPPCapturedCredentialsTests testFinalizeSignIn_usesCapturedCredentials_whenUIDelegateCleared 117ms
โœ… TPPCapturedCredentialsTests testLogIn_refreshesCapturedCredentials_onSubsequentAttempts 79ms
โœ… TPPCapturedCredentialsTests testUpdateUserAccount_usesAtomicUpdateWithCorrectLibraryUUID 96ms
โœ… TPPCapturedCredentialsTests testUpdateUserAccount_withAuthToken_savesAllCredentials 77ms
โœ… TPPCredentialConcurrencyTests testAtomicUpdate_writesAreVisibleInSnapshot 2ms
โœ… TPPCredentialConcurrencyTests testConcurrentRefreshCredentials_doesNotCrash 3ms
โœ… TPPCredentialConcurrencyTests testConcurrentSnapshots_returnConsistentData 2ms
โœ… TPPCredentialPersistenceTests testFullSignInFlow_authStateIsLoggedIn 107ms
โœ… TPPCredentialPersistenceTests testFullSignInFlow_completionCalledOnce 103ms
โœ… TPPCredentialPersistenceTests testFullSignInFlow_credentialsRemainAccessible 100ms
โœ… TPPCredentialPersistenceTests testUpdateUserAccount_basicAuth_setsCredentialsAndAuthState 103ms
โœ… TPPCredentialPersistenceTests testUpdateUserAccount_credentialsPersistedAndRefreshable 108ms
โœ… TPPCredentialPersistenceTests testUpdateUserAccount_noSelectedAuth_stillMarksLoggedIn 78ms
โœ… TPPCredentialSnapshotTests testSnapshot_identifiesTokenCredentials 4ms
โœ… TPPCredentialSnapshotTests testSnapshot_isSignedInLogic_OAuth_stale 3ms
โœ… TPPCredentialSnapshotTests testSnapshot_isSignedInLogic_basicAuth 2ms
โœ… TPPCredentialSnapshotTests testSnapshot_isSignedInLogic_basicAuth_stale 3ms
โœ… TPPCredentialSnapshotTests testSnapshot_isSignedInLogic_loggedOut 4ms
โœ… TPPCredentialSnapshotTests testSnapshot_reportsNoCredentials 2ms
โœ… TPPCredentialSnapshotTests testSnapshot_returnsAuthState 7ms
โœ… TPPCredentialSnapshotTests testSnapshot_returnsCredentialsAfterSet 2ms
โœ… TPPCredentialsTests testBarcodeAndPin_WithEmptyValues_StoresEmptyStrings 5ms
โœ… TPPCredentialsTests testBarcodeAndPin_WithSpecialCharacters_PreservesCharacters 4ms
โœ… TPPCredentialsTests testBarcodeAndPin_WithValidData_StoresValues 2ms
โœ… TPPCredentialsTests testCookies_WithEmptyArray_StoresEmptyArray 4ms
โœ… TPPCredentialsTests testCookies_WithMultipleCookies_StoresAllCookies 14ms
โœ… TPPCredentialsTests testCookies_WithValidCookies_StoresCookies 2ms
โœ… TPPCredentialsTests testDecode_WithInvalidTypeID_ThrowsError 2ms
โœ… TPPCredentialsTests testDecode_WithMissingType_ThrowsError 3ms
โœ… TPPCredentialsTests testEncodeDecode_BarcodeAndPin_PreservesValues 32ms
โœ… TPPCredentialsTests testEncodeDecode_BarcodeAndPin_WithEmptyStrings 2ms
โœ… TPPCredentialsTests testEncodeDecode_BarcodeAndPin_WithLongStrings 3ms
โœ… TPPCredentialsTests testEncodeDecode_Cookies_WithEmptyArray 11ms
โœ… TPPCredentialsTests testEncodeDecode_Cookies_WithMultipleCookies 2ms
โœ… TPPCredentialsTests testEncodeDecode_Cookies_WithValidCookies 9ms
โœ… TPPCredentialsTests testEncodeDecode_Token_ExpirationDatePrecision 22ms
โœ… TPPCredentialsTests testEncodeDecode_Token_WithAllProperties 2ms
โœ… TPPCredentialsTests testEncodeDecode_Token_WithEmptyAuthToken 3ms
โœ… TPPCredentialsTests testEncodeDecode_Token_WithNilOptionals 2ms
โœ… TPPCredentialsTests testEncodeDecode_Token_WithSpecialCharacters 4ms
โœ… TPPCredentialsTests testEncodeDecode_Token_WithUnicodeCharacters 2ms
โœ… TPPCredentialsTests testToken_WithAllProperties_StoresValues 2ms
โœ… TPPCredentialsTests testToken_WithEmptyAuthToken_StoresEmptyString 2ms
โœ… TPPCredentialsTests testToken_WithOnlyAuthToken_StoresNilOptionals 2ms
โœ… TPPCredentialsTests testTypeID_BarcodeAndPinHasCorrectRawValue 4ms
โœ… TPPCredentialsTests testTypeID_CookiesHasCorrectRawValue 3ms
โœ… TPPCredentialsTests testTypeID_TokenHasCorrectRawValue 4ms
โœ… TPPCrossLibrarySignOutTests testMultiLibraryMock_returnsSeparateAccountsPerUUID 77ms
โœ… TPPCrossLibrarySignOutTests testSequentialSignOuts_ofMultipleLibraries_clearCorrectCredentials 124ms
โœ… TPPCrossLibrarySignOutTests testSignOut_ofNonActiveLibrary_doesNotClearActiveLibraryCredentials 98ms
โœ… TPPCrossLibrarySignOutTests testSignOut_ofNonActiveOAuthLibrary_doesNotClearActiveLibraryToken 84ms
โœ… TPPCrossLibrarySignOutTests testSignOut_ofNonActiveSAMLLibrary_doesNotClearActiveLibraryCookies 86ms
โœ… TPPCrossLibrarySignOutTests testUserAccount_isScopedToLibraryAccountID 101ms
โœ… TPPDRMFailureCredentialPreservationTests testUpdateUserAccount_drmFailure_doesNotChangeAuthState 127ms
โœ… TPPDRMFailureCredentialPreservationTests testUpdateUserAccount_drmFailure_doesNotWipeExistingCredentials 110ms
โœ… TPPDRMFailureCredentialPreservationTests testUpdateUserAccount_drmFailure_noExistingCredentials_noWipe 147ms
โœ… TPPDRMFailureCredentialPreservationTests testUpdateUserAccount_drmSuccess_doesSaveCredentials 131ms
โœ… TPPIdleSignOutRegressionTests testCancelPendingSignOut_preventsCredentialCleanup 94ms
โœ… TPPIdleSignOutRegressionTests testNormalSignOut_stillClearsCredentials 111ms
โœ… TPPIdleSignOutRegressionTests testOAuthSignOut401_clearsTokenCredentials 101ms
โœ… TPPIdleSignOutRegressionTests testRaceCondition_signInDuringPendingDeauth_preservesNewCredentials 94ms
โœ… TPPIdleSignOutRegressionTests testRapidSignOutSignInCycles_doNotCorruptState 128ms
โœ… TPPIdleSignOutRegressionTests testSignOut401_clearsCredentials 106ms
โœ… TPPIdleSignOutRegressionTests testSignOut401_deauthorizesDeviceWithLicensor 115ms
โœ… TPPIdleSignOutRegressionTests testSignOut401_doesNotShowUnexpectedCredentialsError 115ms
โœ… TPPIdleSignOutRegressionTests testSignOut500_showsErrorToUser 100ms
โœ… TPPIdleSignOutRegressionTests testSignOutSignInCycle_licensorPreservedForBorrow 127ms
โœ… TPPIdleSignOutRegressionTests testSignOut_alwaysCallsDidFinishDeauthorizing 105ms
โœ… TPPIdleSignOutRegressionTests testSignOut_withNoDRMAuthorizer_completes 106ms
โœ… TPPIdleSignOutRegressionTests testStaleSignOut_stillCallsDidFinishDeauthorizing 107ms
โœ… TPPJWKConversionTest testJWKConversion 25ms
โœ… TPPKeychainStoredVariableTests testCodableVariable_nilValue_returnsNil 4ms
โœ… TPPKeychainStoredVariableTests testCodableVariable_writeAndRead 6ms
โœ… TPPKeychainStoredVariableTests testInit_setsKey 5ms
โœ… TPPKeychainStoredVariableTests testKeyChange_invalidatesCache 14ms
โœ… TPPKeychainStoredVariableTests testRead_noValue_returnsNil 7ms
โœ… TPPKeychainStoredVariableTests testTransaction_performExecutesSynchronously 3ms
โœ… TPPKeychainStoredVariableTests testWrite_andRead_string 4ms
โœ… TPPKeychainStoredVariableTests testWrite_nil_clearsValue 5ms
โœ… TPPKeychainStoredVariableTests testWrite_overwrite_updatesValue 5ms
โœ… TPPLastReadPositionPosterTests testStoreReadPosition_multipleCalls_updatesLocation 8ms
โœ… TPPLastReadPositionPosterTests testStoreReadPosition_positiveProgression_stores 2ms
โœ… TPPLastReadPositionPosterTests testStoreReadPosition_validLocator_savesToRegistry 3ms
โœ… TPPLastReadPositionPosterTests testStoreReadPosition_zeroProgressionNoCssSelector_doesNotStore 4ms
โœ… TPPLastReadPositionPosterTests testStoreReadPosition_zeroProgression_withCssSelector_savesToRegistry 5ms
โœ… TPPLastReadPositionPosterTests testThrottlingInterval_hasReasonableValue 3ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests testRealSynchronizer_Init_Succeeds 2ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests testRealSynchronizer_MultipleBooks_IndependentLocations 3ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests testRealSynchronizer_WithEmptyRegistry_DoesNotCrash 2ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests testRealSynchronizer_WithManyBooks_PerformsEfficiently 14ms
โœ… TPPLastReadPositionSynchronizerIntegrationTests testRealSynchronizer_WithRegistryContainingBook_AccessesLocation 2ms
โœ… TPPLastReadPositionSynchronizerTests testBookRegistry_GetLocation_ForNonexistentBook_ReturnsNil 3ms
โœ… TPPLastReadPositionSynchronizerTests testBookRegistry_SetLocationToNil_ClearsPosition 9ms
โœ… TPPLastReadPositionSynchronizerTests testBookRegistry_SetLocation_UpdatesPosition 5ms
โœ… TPPLastReadPositionSynchronizerTests testBookRegistry_StoresLocation 5ms
โœ… TPPLastReadPositionSynchronizerTests testBookRegistry_UpdateLocation_OverwritesPrevious 2ms
โœ… TPPLastReadPositionSynchronizerTests testReadiumBookmark_StoresAllProperties 4ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenBothDeviceIDsNilButLocalExists_ReturnsTrue 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenDifferentDeviceWithDifferentPosition_ReturnsTrue 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenDifferentDeviceWithNoLocalPosition_ReturnsTrue 3ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenNilLocalDeviceIDAndServerHasDevice_ReturnsTrue 5ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenPositionsMatchExactly_RegardlessOfDevice_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenSameDeviceWithLocalPosition_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenSameDeviceWithNoLocalPosition_ReturnsTrue 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerBookmarkHasEmptyDevice_AndLocalDeviceEmpty_ReturnsFalse 4ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerDeviceIsNilAndLocalDeviceIDEmpty_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerHasNoPositionAndNilDeviceID_ReturnsFalse 6ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerHasNoPositionAndNoLocalPosition_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerHasNoPosition_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerPositionMatchesLocal_ReturnsFalse 3ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WhenServerReturnsNilOnError_ReturnsFalse 2ms
โœ… TPPLastReadPositionSynchronizerTests testSyncDecision_WithMatchingLocation_StillComparesAsStrings 2ms
โœ… TPPLastReadPositionSynchronizerTests testSynchronizer_Init_AcceptsDifferentRegistryImplementations 5ms
โœ… TPPLastReadPositionSynchronizerTests testSynchronizer_Init_StoresBookRegistry 2ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests testBehavior_DifferentDevice_UserShouldBePrompted 6ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests testBehavior_FreshDevice_ShouldSyncFromServer 3ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests testBehavior_IdenticalPositions_NoPromptNeeded 2ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests testBehavior_NoServerPosition_NoSync 3ms
โœ… TPPLastReadPositionSynchronizer_BehaviorDocumentationTests testBehavior_SameDevice_LocalPositionIsAuthoritative 5ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_Creation_WithValidParameters 3ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_DictionaryRepresentation_ContainsRequiredKeys 6ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_DifferentLocationStrings_AreNotEqual 10ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_EmptyLocationString_IsValid 2ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_FromDictionary_CreatesValidLocation 2ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_FromDictionary_WithMissingKeys_ReturnsNil 2ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_LocationStringEquality_MatchesExactly 2ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_R3Renderer_HasCorrectValue 2ms
โœ… TPPLastReadPositionSynchronizer_BookLocationTests testTPPBookLocation_VeryLongLocationString_IsHandled 3ms
โœ… TPPLastReadPositionSynchronizer_ConcurrencyTests testConcurrentLocationUpdates_DoNotCrash 4ms
โœ… TPPLastReadPositionSynchronizer_ConcurrencyTests testConcurrentSyncDecisions_AreConsistent 20ms
โœ… TPPLastReadPositionSynchronizer_ConcurrencyTests testMultipleSynchronizersWithSameRegistry_DoNotConflict 9ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_DeviceProperty_WithNilDevice_ReturnsNil 120ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_DictionaryRepresentation_ContainsAllKeys 7ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_Equality_SameAnnotationId 2ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_FullProgress_FormatsAs100 2ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_Init_WithNilHref_ReturnsNil 4ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_Init_WithValidParameters 352ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_PercentInBook_FormatsCorrectly 5ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_PercentInChapter_FormatsCorrectly 2ms
โœ… TPPLastReadPositionSynchronizer_ReadiumBookmarkTests testReadiumBookmark_ZeroProgress_FormatsAsZero 2ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_DeviceCheckTakesPrecedenceOverLocationMatch 8ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_DeviceIDCaseSensitivity 4ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_DeviceIDWithSpecialCharacters 3ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_LocationMatchPreventsSync_EvenFromDifferentDevice 2ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_LocationWithWhitespace_ExactMatchRequired 2ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_ProgressAtExactBoundaries 3ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_SameBookmarkLocation_ExactStringMatch 2ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_SameLocationString_HandledGracefully 4ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_VeryLongDeviceID 14ms
โœ… TPPLastReadPositionSynchronizer_SyncLogicTests testSyncLogic_VerySmallProgressDifference 2ms
โœ… TPPLoginNoActivationTests testValidateCredentials_doesNotTriggerAdobeActivation 104ms
โœ… TPPLoginNoActivationTests testValidateCredentials_savesLicensorForLaterUse 105ms
โœ… TPPLoginNoActivationTests testValidateCredentials_withStaleCredentials_doesNotActivate 111ms
โœ… TPPNetworkExecutorAPITests testBearerAuthorized_setsAuthorizationHeader 2ms
โœ… TPPNetworkExecutorAPITests testClearCache_doesNotCrash 2ms
โœ… TPPNetworkExecutorAPITests testInit_withCachingStrategy_doesNotCrash 2ms
โœ… TPPNetworkExecutorAPITests testPauseAllTasks_doesNotCrash 2ms
โœ… TPPNetworkExecutorAPITests testRequest_forURL_createsValidRequest 2ms
โœ… TPPNetworkExecutorAPITests testRequest_forURL_setsUserAgent 2ms
โœ… TPPNetworkExecutorAPITests testResumeAllTasks_doesNotCrash 25ms
โœ… TPPNetworkExecutorAPITests testShared_isNotNil 1ms
โœ… TPPNetworkExecutorTests testExecutor_conformsToProtocol 2ms
โœ… TPPNetworkExecutorTests testExecutor_hasCorrectTimeout 3ms
โœ… TPPNetworkExecutorTests testExecutor_usesEphemeralCaching 6ms
โœ… TPPOPDSAcquisitionPathTests testSampleLinkInAcquisitions 11ms
โœ… TPPOPDSAcquisitionPathTests testSimplifiedAdeptEpubAcquisition 3ms
โœ… TPPOpenSearchDescriptionTests testOPDSURLSearch 2ms
โœ… TPPPDFDocumentMetadataTests testAddBookmark_AtCurrentPage_WhenNilPassed_UsesCurrentPage 70ms
โœ… TPPPDFDocumentMetadataTests testAddBookmark_AtPageZero_HandlesCorrectly 5ms
โœ… TPPPDFDocumentMetadataTests testAddBookmark_AtSpecificPage_AddsToBookmarks 7ms
โœ… TPPPDFDocumentMetadataTests testAddBookmark_DuplicatePage_DoesNotDuplicate 5ms
โœ… TPPPDFDocumentMetadataTests testAddBookmark_MultipleTimes_AddsAllBookmarks 4ms
โœ… TPPPDFDocumentMetadataTests testBookmarks_IsPublished_EmitsChanges 7ms
โœ… TPPPDFDocumentMetadataTests testCurrentPage_IsPublished_EmitsChanges 6ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WhenPageInBookmarks_ReturnsTrue 5ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WhenPageNotInBookmarks_ReturnsFalse 6ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WithEmptyBookmarks_ReturnsFalse 6ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WithLargePageNumber_HandlesCorrectly 9ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WithNilPage_ChecksCurrentPage 7ms
โœ… TPPPDFDocumentMetadataTests testIsBookmarked_WithZeroPage_HandlesCorrectly 5ms
โœ… TPPPDFDocumentMetadataTests testRemoveBookmark_NonexistentPage_DoesNotCrash 7ms
โœ… TPPPDFDocumentMetadataTests testRemoveBookmark_RemovesFromBookmarks 11ms
โœ… TPPProblemDocumentCacheManagerTests testCacheMultipleDocuments_lastEntryRetrievable 2ms
โœ… TPPProblemDocumentCacheManagerTests testCacheProblemDocument_andRetrieve 2ms
โœ… TPPProblemDocumentCacheManagerTests testCacheProblemDocument_postsNotification 3ms
โœ… TPPProblemDocumentCacheManagerTests testCacheSize_isFive 2ms
โœ… TPPProblemDocumentCacheManagerTests testCache_exceedingSize_evictsAndAppendsNewEntry 2ms
โœ… TPPProblemDocumentCacheManagerTests testClearCachedDoc_nonexistentKey_doesNotCrash 19ms
โœ… TPPProblemDocumentCacheManagerTests testClearCachedDoc_preventsRetrieval 2ms
โœ… TPPProblemDocumentCacheManagerTests testGetLastCachedDoc_unknownKey_returnsNil 2ms
โœ… TPPProblemDocumentCacheManagerTests testSharedInstance_returnsSameObject 2ms
โœ… TPPReaderAppearanceTests testAssociatedColors_blackOnWhite_hasLightBackground 3ms
โœ… TPPReaderAppearanceTests testBlackOnSepia_hasCorrectPropertyIndex 49ms
โœ… TPPReaderAppearanceTests testBlackOnWhite_hasCorrectPropertyIndex 2ms
โœ… TPPReaderAppearanceTests testWhiteOnBlack_hasCorrectPropertyIndex 2ms
โœ… TPPReaderBookmarksBusinessLogicTests testBookmarkAtIndex_WithEmptyBookmarks_ReturnsNil 115ms
โœ… TPPReaderBookmarksBusinessLogicTests testBookmarkAtIndex_WithNegativeIndex_ReturnsNil 119ms
โœ… TPPReaderBookmarksBusinessLogicTests testBookmarkAtIndex_WithOutOfBoundsIndex_ReturnsNil 95ms
โœ… TPPReaderBookmarksBusinessLogicTests testBookmarkAtIndex_WithValidIndex_ReturnsBookmark 77ms
โœ… TPPReaderBookmarksBusinessLogicTests testDeleteBookmarkAtIndex_WithInvalidIndex_ReturnsNil 130ms
โœ… TPPReaderBookmarksBusinessLogicTests testDeleteBookmarkAtIndex_WithValidIndex_RemovesAndReturns 110ms
โœ… TPPReaderBookmarksBusinessLogicTests testDeleteBookmark_RemovesFromList 104ms
โœ… TPPReaderBookmarksBusinessLogicTests testIsBookmarkExisting_WithNilLocation_ReturnsNil 89ms
โœ… TPPReaderBookmarksBusinessLogicTests testNoBookmarksText_ReturnsNonEmptyString 95ms
โœ… TPPReaderBookmarksBusinessLogicTests testPP3555_OldBookmarksDoNotReappearAfterReborrow 77ms
โœ… TPPReaderBookmarksBusinessLogicTests testShouldSelectBookmark_ReturnsTrue 84ms
โœ… TPPReaderBookmarksBusinessLogicTests testUpdateLocalBookmarksWithDuplicatedLocalBookmarks 78ms
โœ… TPPReaderBookmarksBusinessLogicTests testUpdateLocalBookmarksWithExtraLocalBookmarks 104ms
โœ… TPPReaderBookmarksBusinessLogicTests testUpdateLocalBookmarksWithFailedUploadBookmarks 94ms
โœ… TPPReaderBookmarksBusinessLogicTests testUpdateLocalBookmarksWithNoLocalBookmarks 82ms
โœ… TPPReaderFontTests testDyslexic_hasPropertyIndex 2ms
โœ… TPPReaderFontTests testOriginal_hasCorrectPropertyIndex 2ms
โœ… TPPReaderFontTests testSansSerif_hasPropertyIndex 5ms
โœ… TPPReaderFontTests testSerif_hasPropertyIndex 2ms
โœ… TPPReaderPreferencesLoadTests testTPPReaderPreferencesLoad_disablesPublisherStyles 62ms
โœ… TPPReaderPreferencesLoadTests testTPPReaderPreferencesLoad_returnsValidPreferences 19ms
โœ… TPPReaderPreferencesLoadTests testTPPReaderPreferencesLoad_setsDefaultTheme 14ms
โœ… TPPReaderSettingsTests testCanDecreaseFontSize_falseAtMinimum 3ms
โœ… TPPReaderSettingsTests testCanIncreaseFontSize_trueWhenBelowMax 6ms
โœ… TPPReaderSettingsTests testChangeAppearance_updatesColors 6ms
โœ… TPPReaderSettingsTests testChangeAppearance_updatesIndex 14ms
โœ… TPPReaderSettingsTests testChangeFontFamily_updatesIndex 5ms
โœ… TPPReaderSettingsTests testDecreaseFontSize_decreasesByStep 3ms
โœ… TPPReaderSettingsTests testDecreaseFontSize_respectsMinimum 3ms
โœ… TPPReaderSettingsTests testIncreaseFontSize_increasesByStep 40ms
โœ… TPPReaderSettingsTests testIncreaseFontSize_respectsMaximum 24ms
โœ… TPPReaderSettingsTests testInit_getsScreenBrightness 110ms
โœ… TPPReaderSettingsTests testInit_setsDefaultAppearanceIndex 2ms
โœ… TPPReaderSettingsTests testInit_setsDefaultFontFamilyIndex 2ms
โœ… TPPReaderSettingsTests testInit_setsDefaultFontSize 3ms
โœ… TPPReaderSettingsTests testLoadPreferences_returnsPreferences 8ms
โœ… TPPReaderSettingsTests testMapAppearanceToIndex_dark 4ms
โœ… TPPReaderSettingsTests testMapAppearanceToIndex_light 2ms
โœ… TPPReaderSettingsTests testMapAppearanceToIndex_sepia 6ms
โœ… TPPReaderSettingsTests testMapFontFamilyToIndex_nil 38ms
โœ… TPPReaderSettingsTests testMapFontFamilyToIndex_openDyslexic 7ms
โœ… TPPReaderSettingsTests testMapFontFamilyToIndex_sansSerif 4ms
โœ… TPPReaderSettingsTests testMapFontFamilyToIndex_serif 2ms
โœ… TPPReaderSettingsTests testMapIndexToAppearance_dark 5ms
โœ… TPPReaderSettingsTests testMapIndexToAppearance_default 6ms
โœ… TPPReaderSettingsTests testMapIndexToAppearance_sepia 3ms
โœ… TPPReaderSettingsTests testMapIndexToFontFamily_default 4ms
โœ… TPPReaderSettingsTests testMapIndexToFontFamily_dyslexic 31ms
โœ… TPPReaderSettingsTests testMapIndexToFontFamily_sansSerif 2ms
โœ… TPPReaderSettingsTests testMapIndexToFontFamily_serif 5ms
โœ… TPPReaderTOCBusinessLogicTests testInit_withCurrentLocation_storesLocation 2ms
โœ… TPPReaderTOCBusinessLogicTests testInit_withPublication_initializesCorrectly 7ms
โœ… TPPReaderTOCBusinessLogicTests testIsCurrentChapterTitled_caseInsensitiveMatch_returnsTrue 2ms
โœ… TPPReaderTOCBusinessLogicTests testIsCurrentChapterTitled_withDifferentTitle_returnsFalse 2ms
โœ… TPPReaderTOCBusinessLogicTests testIsCurrentChapterTitled_withMatchingTitle_returnsTrue 2ms
โœ… TPPReaderTOCBusinessLogicTests testIsCurrentChapterTitled_withNilCurrentLocation_returnsFalse 4ms
โœ… TPPReaderTOCBusinessLogicTests testIsCurrentChapterTitled_withNilLocationTitle_returnsFalse 9ms
โœ… TPPReaderTOCBusinessLogicTests testShouldSelectTOCItem_invalidIndex_returnsFalse 6ms
โœ… TPPReaderTOCBusinessLogicTests testTitleAndLevel_forValidIndex_returnsTitleAndLevel 105ms
โœ… TPPReaderTOCBusinessLogicTests testTitleForHref_existingHref_returnsTitle 212ms
โœ… TPPReaderTOCBusinessLogicTests testTitleForHref_nonExistentHref_returnsNil 105ms
โœ… TPPReaderTOCBusinessLogicTests testTocDisplayTitle_returnsLocalizedString 2ms
โœ… TPPReaderTOCBusinessLogicTests testTocElements_initiallyEmpty_beforeAsyncLoad 9ms
โœ… TPPReaderTOCBusinessLogicTests testTocLocator_negativeIndex_returnsNil 2ms
โœ… TPPReaderTOCBusinessLogicTests testTocLocator_outOfBoundsIndex_returnsNil 3ms
โœ… TPPReaderTOCFlattenTests testFlatten_emptyTOC_producesEmptyElements 112ms
โœ… TPPReaderTOCFlattenTests testFlatten_nestedTOC_assignsCorrectLevels 251ms
โœ… TPPReadiumBookmarkLocationMatchingTests testLocationMatches_differentChapterProgress_returnsFalse 7ms
โœ… TPPReadiumBookmarkLocationMatchingTests testLocationMatches_differentTotalProgress_returnsFalse 4ms
โœ… TPPReadiumBookmarkLocationMatchingTests testLocationMatches_exactProgress_returnsTrue 11ms
โœ… TPPReadiumBookmarkLocationMatchingTests testLocationMatches_matchingProgress_returnsTrue 4ms
โœ… TPPReadiumBookmarkLocationMatchingTests testLocationMatches_nilLocatorProgress_matchesZeroBookmarkProgress 4ms
โœ… TPPReadiumBookmarkTests testDescription_returnsNonEmptyString 2ms
โœ… TPPReadiumBookmarkTests testDictionaryRepresentation_containsAllFields 6ms
โœ… TPPReadiumBookmarkTests testInit_fromDictionary_createsBookmark 3ms
โœ… TPPReadiumBookmarkTests testInit_fromDictionary_withEmptyAnnotationId_setsNil 2ms
โœ… TPPReadiumBookmarkTests testInit_fromDictionary_withMissingRequiredFields_returnsNil 2ms
โœ… TPPReadiumBookmarkTests testInit_withDefaultTime_usesCurrentTime 4ms
โœ… TPPReadiumBookmarkTests testInit_withNilHref_returnsNil 4ms
โœ… TPPReadiumBookmarkTests testInit_withValidParameters_createsBookmark 5ms
โœ… TPPReadiumBookmarkTests testIsEqual_differentHref_returnsFalse 4ms
โœ… TPPReadiumBookmarkTests testIsEqual_differentProgress_returnsFalse 2ms
โœ… TPPReadiumBookmarkTests testIsEqual_sameAnnotationId_returnsTrue 2ms
โœ… TPPReadiumBookmarkTests testIsEqual_sameProgress_noAnnotationId_returnsTrue 3ms
โœ… TPPReadiumBookmarkTests testIsEqual_withNonBookmarkObject_returnsFalse 2ms
โœ… TPPReadiumBookmarkTests testPercentInBook_formatsCorrectly 3ms
โœ… TPPReadiumBookmarkTests testPercentInBook_fullProgress_showsHundred 5ms
โœ… TPPReadiumBookmarkTests testPercentInChapter_formatsCorrectly 4ms
โœ… TPPReadiumBookmarkTests testPercentInChapter_zeroProgress_showsZero 2ms
โœ… TPPReadiumBookmarkTests testToJSONDictionary_includesLocationFields 4ms
โœ… TPPReauthenticatorMockTests testMockReauthenticator_callsCompletion 2ms
โœ… TPPReauthenticatorMockTests testMockReauthenticator_tracksReauthPerformed 2ms
โœ… TPPReauthenticatorTests testAuthenticateIfNeeded_withNilCompletion_doesNotCrash 3ms
โœ… TPPReauthenticatorTests testInit_conformsToReauthenticatorProtocol 4ms
โœ… TPPReauthenticatorTests testInit_createsInstance 3ms
โœ… TPPReauthenticatorTests testInit_isNSObjectSubclass 2ms
โœ… TPPSAMLReauthFlowTests testFreshLogin_callsAdobeActivation 175ms
โœ… TPPSAMLReauthFlowTests testSAMLReauthFlow_skipsAdobeActivation 618ms
โœ… TPPSettingsTests testAboutPalaceURL_isValid 2ms
โœ… TPPSettingsTests testAppVersion_canBeSetAndRead 14ms
โœ… TPPSettingsTests testCustomLibraryRegistryServer_canBeSet 4ms
โœ… TPPSettingsTests testCustomMainFeedURL_defaultIsNil 2ms
โœ… TPPSettingsTests testEnterLCPPassphraseManually_canBeToggled 5ms
โœ… TPPSettingsTests testPrivacyPolicyURL_isValid 2ms
โœ… TPPSettingsTests testSharedSettings_returnsSameInstance 2ms
โœ… TPPSettingsTests testShared_isNotNil 4ms
โœ… TPPSettingsTests testSoftwareLicensesURL_isValid 2ms
โœ… TPPSettingsTests testUseBetaLibraries_canBeToggled 4ms
โœ… TPPSettingsTests testUseBetaLibraries_defaultIsFalse 2ms
โœ… TPPSettingsTests testUseBetaLibraries_postsNotification 29ms
โœ… TPPSettingsTests testUserAgreementURL_isValid 2ms
โœ… TPPSettingsTests testUserHasAcceptedEULA_canBeSet 4ms
โœ… TPPSignInAuthStateTransitionTests testReauth_transitionsFromStaleToLoggedIn 233ms
โœ… TPPSignInAuthStateTransitionTests testSignIn_isSignedInConditionMet 113ms
โœ… TPPSignInAuthStateTransitionTests testSignIn_transitionsFromLoggedOutToLoggedIn 82ms
โœ… TPPSignInBusinessLogicExtendedTests testCanResetPassword_dependsOnLibraryConfig 82ms
โœ… TPPSignInBusinessLogicExtendedTests testCurrentAccount_matchesLibraryAccount 86ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_authTokenNilByDefault 84ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_cookiesNilByDefault 81ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_defaultsIgnoreSignedInStateToFalse 88ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_defaultsNotLoggingInAfterSignUp 97ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_defaultsNotValidatingCredentials 110ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_patronNilByDefault 89ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_setsCorrectLibraryAccountID 142ms
โœ… TPPSignInBusinessLogicExtendedTests testInitialization_setsUIDelegate 81ms
โœ… TPPSignInBusinessLogicExtendedTests testIsAuthenticationDocumentLoading_defaultsFalse 80ms
โœ… TPPSignInBusinessLogicExtendedTests testIsSamlPossible_trueWhenLibrarySupports 88ms
โœ… TPPSignInBusinessLogicExtendedTests testIsSignedIn_falseWhenIgnoreSignedInStateTrue 164ms
โœ… TPPSignInBusinessLogicExtendedTests testIsSignedIn_falseWhenNoCredentials 77ms
โœ… TPPSignInBusinessLogicExtendedTests testIsSignedIn_trueWhenHasCredentials 102ms
โœ… TPPSignInBusinessLogicExtendedTests testLibraryAccount_returnsCorrectAccount 99ms
โœ… TPPSignInBusinessLogicExtendedTests testLibrarySupportsBarcodeDisplay_falseWithoutCredentials 98ms
โœ… TPPSignInBusinessLogicExtendedTests testLibrarySupportsBarcodeDisplay_requiresAuthorizationIdentifier 82ms
โœ… TPPSignInBusinessLogicExtendedTests testLogIn_initiatesSignIn 90ms
โœ… TPPSignInBusinessLogicExtendedTests testLogIn_preventsMultipleSimultaneousCalls 109ms
โœ… TPPSignInBusinessLogicExtendedTests testLogIn_withBasicAuth_validatesCredentials 128ms
โœ… TPPSignInBusinessLogicExtendedTests testMakeRequest_forBasicAuth_noAuthorizationHeader 138ms
โœ… TPPSignInBusinessLogicExtendedTests testMakeRequest_forOAuth_hasBearerToken 96ms
โœ… TPPSignInBusinessLogicExtendedTests testMakeRequest_forSAML_hasBearerToken 90ms
โœ… TPPSignInBusinessLogicExtendedTests testMakeRequest_signOut_usesCorrectURL 84ms
โœ… TPPSignInBusinessLogicExtendedTests testRefreshAuthIfNeeded_returnsFalseWhenNoAuthDefinition 70ms
โœ… TPPSignInBusinessLogicExtendedTests testRegistrationIsPossible_falseWhenSignedIn 93ms
โœ… TPPSignInBusinessLogicExtendedTests testSelectedAuthentication_canBeSetToBasic 110ms
โœ… TPPSignInBusinessLogicExtendedTests testSelectedAuthentication_canBeSetToOAuth 95ms
โœ… TPPSignInBusinessLogicExtendedTests testSelectedAuthentication_canBeSetToSAML 92ms
โœ… TPPSignInBusinessLogicExtendedTests testSelectedAuthentication_nilByDefault 114ms
โœ… TPPSignInBusinessLogicExtendedTests testShouldShowEULALink_basedOnLibraryDetails 100ms
โœ… TPPSignInBusinessLogicExtendedTests testShouldShowSyncButton_PP3252_usesCurrentAccountIdNotCurrentAccountUuid 99ms
โœ… TPPSignInBusinessLogicExtendedTests testShouldShowSyncButton_falseWhenDifferentLibrary 84ms
โœ… TPPSignInBusinessLogicExtendedTests testShouldShowSyncButton_falseWhenNoCredentials 89ms
โœ… TPPSignInBusinessLogicExtendedTests testSignOut_PP418_clearsWebViewDataBeforeCompletion 92ms
โœ… TPPSignInBusinessLogicExtendedTests testSignOut_sequencesCookieClearingBeforeCompletionCallback 184ms
โœ… TPPSignInBusinessLogicExtendedTests testUpdateUserAccount_setsAuthDefinition 86ms
โœ… TPPSignInBusinessLogicExtendedTests testUpdateUserAccount_withBasicAuth_setsBarcodePIN 71ms
โœ… TPPSignInBusinessLogicExtendedTests testUpdateUserAccount_withOAuth_setsAuthToken 100ms
โœ… TPPSignInBusinessLogicExtendedTests testUpdateUserAccount_withSAML_setsCookies 88ms
โœ… TPPSignInBusinessLogicExtendedTests testValidateCredentials_setsIsValidatingCredentialsTrue 96ms
โœ… TPPSignInBusinessLogicTests testLogInFlow 93ms
โœ… TPPSignInBusinessLogicTests testMakeSignInRequest 87ms
โœ… TPPSignInBusinessLogicTests testUpdateUserAccountWithBarcodeAuthentication 117ms
โœ… TPPSignInBusinessLogicTests testUpdateUserAccountWithCleverAuthentication 82ms
โœ… TPPSignInBusinessLogicTests testUpdateUserAccountWithNoSelectedAuthentication 111ms
โœ… TPPSignInBusinessLogicTests testUpdateUserAccountWithSAMLAuthentication 91ms
โœ… TPPSignInErrorHandlingTests testValidateCredentials_withSelectedAuth_doesNotCrash 119ms
โœ… TPPSignInErrorHandlingTests testValidateCredentials_withoutSelectedAuth_doesNotCrash 78ms
โœ… TPPSignInProfileDocEdgeCaseTests testSignIn_invalidProfileDoc_credentialsPreserved 137ms
โœ… TPPSignInProfileDocEdgeCaseTests testSignIn_noDRMInProfileDoc_credentialsPreserved 190ms
โœ… TPPSignInProfileDocEdgeCaseTests testSignIn_validDRMProfileDoc_savesCredentialsAndDRM 187ms
โœ… TPPSignedInStateProviderTests testProtocol_CanBeConformedTo 4ms
โœ… TPPSignedInStateProviderTests testProtocol_NotSignedIn_ReturnsFalse 2ms
โœ… TPPSignedInStateProviderTests testProtocol_SignedIn_ReturnsTrue 3ms
โœ… TPPUserAccountAuthStateTests testAuthState_defaultsToLoggedOut 2ms
โœ… TPPUserAccountAuthStateTests testAuthState_derivedFromCredentialsIfNotExplicitlySet 3ms
โœ… TPPUserAccountAuthStateTests testMarkCredentialsStale_doesNotTransitionFromLoggedOut 2ms
โœ… TPPUserAccountAuthStateTests testMarkCredentialsStale_transitionsFromLoggedInToStale 2ms
โœ… TPPUserAccountAuthStateTests testMarkLoggedIn_transitionsFromLoggedOutToLoggedIn 2ms
โœ… TPPUserAccountAuthStateTests testMarkLoggedIn_transitionsFromStaleToLoggedIn 2ms
โœ… TPPUserAccountAuthStateTests testRemoveAll_resetsStateToLoggedOut 2ms
โœ… TPPUserAccountGapTests testTPPUserAccount_basicPropertyAccessors_dontCrash 2ms
โœ… TPPUserAccountGapTests testTPPUserAccount_hasAuthToken_returnsFalseWhenNoToken 24ms
โœ… TPPUserAccountGapTests testTPPUserAccount_hasBarcodeAndPIN_returnsFalseWhenNoCredentials 3ms
โœ… TPPUserAccountGapTests testTPPUserAccount_sharedAccount_isAccessible 4ms
โœ… TPPUserFriendlyErrorTests testDefaultImplementation_messageIsNil 2ms
โœ… TPPUserFriendlyErrorTests testDefaultImplementation_titleIsNil 2ms
โœ… TPPUserFriendlyErrorTests testMakeFromProblemDocument_preservesExistingUserInfo 2ms
โœ… TPPUserFriendlyErrorTests testMakeFromProblemDocument_setsDomainAndCode 2ms
โœ… TPPUserFriendlyErrorTests testMakeFromProblemDocument_storesProblemDocument 2ms
โœ… TPPUserFriendlyErrorTests testNSError_withProblemDocument_hasFriendlyMessage 2ms
โœ… TPPUserFriendlyErrorTests testNSError_withProblemDocument_hasFriendlyTitle 2ms
โœ… TPPUserFriendlyErrorTests testNSError_withoutProblemDocument_messageIsLocalizedDescription 11ms
โœ… TPPUserFriendlyErrorTests testNSError_withoutProblemDocument_noUserInfo_messageIsNil 2ms
โœ… TPPUserFriendlyErrorTests testNSError_withoutProblemDocument_titleIsNil 2ms
โœ… TPPUserFriendlyErrorTests testProblemDocument_accessor_returnsStoredDocument 2ms
โœ… TPPUserNotificationsTests testBackgroundFetchIsNeeded_returnsBasedOnHeldBooksCount 4ms
โœ… TPPUserNotificationsTests testCompareAvailability_detectsTransitionFromReservedToReady 18ms
โœ… TPPUserNotificationsTests testCompareAvailability_doesNotCrashWithValidInputs 4ms
โœ… TPPUserNotificationsTests testCompareAvailability_doesNotNotifyWhenStillReserved 7ms
โœ… TPPUserNotificationsTests testCompareAvailability_handlesNilAvailability 4ms
โœ… TPPUserNotificationsTests testRequestAuthorization_canBeCalled 2ms
โœ… TPPUserNotificationsTests testSharedInstance_returnsSameInstance 2ms
โœ… TPPUserNotificationsTests testUpdateAppIconBadge_countsOnlyReadyBooks 8ms
โœ… TPPUserNotificationsTests testUpdateAppIconBadge_withBooks_processesWithoutCrash 8ms
โœ… TPPUserNotificationsTests testUpdateAppIconBadge_withEmptyArray_doesNotCrash 11ms
โœ… TPPXMLTests testInvalid 3ms
โœ… TPPXMLTests testNoData 2ms
โœ… TPPXMLTests testValid 4ms
โœ… TokenRefreshTests testBearerAuthorized_AddsAuthorizationHeader 4ms
โœ… TokenRefreshTests testBearerAuthorized_EmptyTokenSetsEmptyHeader 2ms
โœ… TokenRefreshTests testMockExecutor_HandlesEmptyURL 3ms
โœ… TokenRefreshTests testMockExecutor_Returns404ForUnknownURL 5ms
โœ… TokenRefreshTests testMockExecutor_ReturnsConfiguredResponse 16ms
โœ… TokenRefreshTests testNYPLResult_FailureCase 3ms
โœ… TokenRefreshTests testNYPLResult_FailureWithNilResponse 6ms
โœ… TokenRefreshTests testNYPLResult_SuccessCase 2ms
โœ… TokenRefreshTests testNYPLResult_SuccessWithNilResponse 2ms
โœ… TokenRefreshTests testRequestTimeout_DefaultValue 2ms
โœ… TokenRefreshTests testRequestTimeout_StaticDefault 3ms
โœ… TokenRefreshTests testTPPErrorCode_InvalidCredentialsValue 2ms
โœ… TokenRefreshTests testTokenRequest_EmptyPassword 2ms
โœ… TokenRefreshTests testTokenRequest_EmptyUsername 2ms
โœ… TokenRefreshTests testTokenRequest_InitializesCorrectly 4ms
โœ… TokenRefreshTests testTokenRequest_SpecialCharactersInCredentials 2ms
โœ… TokenRefreshTests testTokenResponse_DecodesFromJSON 4ms
โœ… TokenRefreshTests testTokenResponse_DifferentTokenTypes 4ms
โœ… TokenRefreshTests testTokenResponse_EncodesToJSON 10ms
โœ… TokenRefreshTests testTokenResponse_ExpirationDateCalculation 3ms
โœ… TokenRefreshTests testTokenResponse_LargeExpiresIn 4ms
โœ… TokenRefreshTests testTokenResponse_NegativeExpiresIn 2ms
โœ… TokenRefreshTests testTokenResponse_RoundTrip 10ms
โœ… TokenRefreshTests testTokenResponse_SmallExpiresIn 2ms
โœ… TokenRefreshTests testTokenResponse_ZeroExpiresIn 2ms
โœ… TokenResponseTests testAccessToken_WithSpecialCharacters 2ms
โœ… TokenResponseTests testAccessToken_WithUnicodeCharacters 2ms
โœ… TokenResponseTests testDecode_WithDifferentTokenType_ParsesCorrectly 2ms
โœ… TokenResponseTests testDecode_WithExtraFields_IgnoresExtraFields 9ms
โœ… TokenResponseTests testDecode_WithLargeExpiresIn_ParsesCorrectly 2ms
โœ… TokenResponseTests testDecode_WithMissingAccessToken_ThrowsError 2ms
โœ… TokenResponseTests testDecode_WithMissingExpiresIn_ThrowsError 2ms
โœ… TokenResponseTests testDecode_WithMissingTokenType_ThrowsError 2ms
โœ… TokenResponseTests testDecode_WithValidJSON_ParsesCorrectly 2ms
โœ… TokenResponseTests testDecode_WithWrongTypeForExpiresIn_ThrowsError 2ms
โœ… TokenResponseTests testEncodeDecode_RoundTrip_PreservesValues 2ms
โœ… TokenResponseTests testEncode_ProducesValidJSON 11ms
โœ… TokenResponseTests testExpirationDate_CalculatesCorrectInterval 2ms
โœ… TokenResponseTests testExpirationDate_WithNegativeExpiresIn_ReturnsDateInPast 2ms
โœ… TokenResponseTests testExpirationDate_WithPositiveExpiresIn_ReturnsDateInFuture 3ms
โœ… TokenResponseTests testExpirationDate_WithZeroExpiresIn_ReturnsCurrentTime 2ms
โœ… TokenResponseTests testExpiresIn_WithMaxInt32Value 2ms
โœ… TokenResponseTests testInit_WithEmptyToken_StoresEmptyString 1ms
โœ… TokenResponseTests testInit_WithNegativeExpiresIn_StoresNegativeValue 2ms
โœ… TokenResponseTests testInit_WithValidParameters_StoresValues 2ms
โœ… TokenResponseTests testInit_WithZeroExpiresIn_StoresZero 2ms
โœ… UIColor_NYPLAdditionsTests testExample 2ms
โœ… URLExtensionTests testAppendingPathComponent 5ms
โœ… URLExtensionTests testAppendingPathExtension 2ms
โœ… URLExtensionTests testFileURL_deletingLastPathComponent 7ms
โœ… URLExtensionTests testFileURL_isFileURL 5ms
โœ… URLExtensionTests testFileURL_lastPathComponent 2ms
โœ… URLExtensionTests testFileURL_pathExtension 3ms
โœ… URLExtensionTests testHTTPURL_isNotFileURL 4ms
โœ… URLExtensionTests testURLComponents_fragment 2ms
โœ… URLExtensionTests testURLComponents_host 6ms
โœ… URLExtensionTests testURLComponents_path 4ms
โœ… URLExtensionTests testURLComponents_query 142ms
โœ… URLExtensionTests testURLComponents_scheme 4ms
โœ… URLExtensionTests testURLEncoding_spaceInQuery 4ms
โœ… URLExtensionTests testURLEncoding_specialCharacters 3ms
โœ… URLExtensionTests testURLQueryItems_building 8ms
โœ… URLExtensionTests testURLQueryItems_parsing 36ms
โœ… URLRequest_NYPLTests testAuthorizationHeaderStrip 4ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_with200StatusCode_returnsFalse 2ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_with401StatusCode_returnsTrue 5ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_with403StatusCode_returnsFalse 2ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_withApiProblemMimeType_andInvalidCredentials_returnsTrue 2ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_withInvalidCredentialsProblemDoc_returnsTrue 2ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_withOPDSAuthMimeType_and200Status_returnsFalse 3ms
โœ… URLResponseAuthenticationTests testHTTPURLResponse_withOPDSAuthMimeType_andNon2xxStatus_returnsTrue 3ms
โœ… URLResponseAuthenticationTests testURLResponse_withInvalidCredentialsProblemDoc_returnsTrue 3ms
โœ… URLResponseAuthenticationTests testURLResponse_withNilProblemDoc_returnsFalse 2ms
โœ… URLResponseAuthenticationTests testURLResponse_withNonProblemMimeType_returnsFalse 2ms
โœ… URLValidationTests testEmptyString_returnsNil 2ms
โœ… URLValidationTests testFileURL_alwaysValid 5ms
โœ… URLValidationTests testInvalidURL_handledByURLInit 2ms
โœ… URLValidationTests testURLWithSpaces_handledCorrectly 2ms
โœ… URLValidationTests testValidHTTPURL 2ms
โœ… UserAccountPublisherAuthStateTests testAuthStateDidChangePublisher_firesOnStateChanges 6ms
โœ… UserAccountPublisherAuthStateTests testAuthState_defaultsToLoggedOut 6ms
โœ… UserAccountPublisherAuthStateTests testCredentialsStalePublisher_firesWhenStateBecomesStale 8ms
โœ… UserAccountPublisherAuthStateTests testMarkCredentialsStale_doesNotChangeIfNotLoggedIn 2ms
โœ… UserAccountPublisherAuthStateTests testMarkCredentialsStale_updatesState 35ms
โœ… UserAccountPublisherAuthStateTests testSignOut_resetsToLoggedOut 2ms
โœ… UserProfileDocumentTests testParse 14ms
โœ… UserProfileDocumentTests testParseJSONExtraProperty 5ms
โœ… UserProfileDocumentTests testParseJSONInvalid 4ms
โœ… UserProfileDocumentTests testParseJSONMissingProperty 9ms
โœ… UserProfileDocumentTests testParseJSONNilValue 3ms
โœ… UserProfileDocumentTests testParseJSONTypeMismatch 3ms
โœ… UserProfileDocumentTests testParseProfileDocCausingSIMPLY2491 8ms
โœ… UserRetryTrackerTests testCanRetry_afterFiveRetries_returnsFalse 3ms
โœ… UserRetryTrackerTests testCanRetry_afterFourRetries_returnsTrue 2ms
โœ… UserRetryTrackerTests testCanRetry_afterOneRetry_returnsTrue 2ms
โœ… UserRetryTrackerTests testCanRetry_newOperation_returnsTrue 2ms
โœ… UserRetryTrackerTests testClearRetries_onlyAffectsSpecifiedOperation 2ms
โœ… UserRetryTrackerTests testClearRetries_resetsCount 3ms
โœ… UserRetryTrackerTests testConcurrentAccess_doesNotCrash 3ms
โœ… UserRetryTrackerTests testRecordRetry_afterMax_returnsZero 3ms
โœ… UserRetryTrackerTests testRecordRetry_returnsRemainingCount 2ms
โœ… UserRetryTrackerTests testSeparateOperations_trackIndependently 3ms