Fixes needed after merging identity-beta (#289)

- Migrate STPDeviceUtils to StripeCore
- Add StripeCore imports
- Include StripeCoreTestUtils in StripeTests
- Publicly expose MockAnalyticsClient vars & init
- Move MockAnalyticsClient to StripeCoreTestUtils target (was incorrectly in StripeCoreTests)
- Fix test.rb
This commit is contained in:
Mel 2021-07-14 16:45:24 -07:00
parent 0e89f9e951
commit 63f3d3a67f
11 changed files with 52 additions and 23 deletions

View File

@ -673,9 +673,15 @@
C1D7B5251E36C70D002181F5 /* STPSourceFunctionalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C1D7B5241E36C70D002181F5 /* STPSourceFunctionalTest.m */; };
E60437F225D34316006E2E03 /* STPGenericInputPickerFieldSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E60437F125D34316006E2E03 /* STPGenericInputPickerFieldSnapshotTests.swift */; };
E60437F625D37DDC006E2E03 /* STPGenericInputPickerFieldValidatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E60437F525D37DDC006E2E03 /* STPGenericInputPickerFieldValidatorTest.swift */; };
E61BEEAE265F6BDC0002FA4F /* STPAnalyticsClientPaymentsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61BEEAD265F6BDC0002FA4F /* STPAnalyticsClientPaymentsTest.swift */; };
E61BEEB0265F6CAC0002FA4F /* STPAnalyticsClientPaymentSheetTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61BEEAF265F6CAC0002FA4F /* STPAnalyticsClientPaymentSheetTest.swift */; };
E620F1D8265F5FA200233581 /* PaymentAnalyticTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E620F1D7265F5FA200233581 /* PaymentAnalyticTest.swift */; };
E62F3A7425F80F9A00B2C0AC /* UIActivityIndicatorView+Stripe.swift in Sources */ = {isa = PBXBuildFile; fileRef = E62F3A7325F80F9A00B2C0AC /* UIActivityIndicatorView+Stripe.swift */; };
E633417D25FC2376006F084B /* STPAnalyticEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = E633417C25FC2376006F084B /* STPAnalyticEvent.swift */; };
E633418425FC2FEA006F084B /* VerificationSheetAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = E633418325FC2FEA006F084B /* VerificationSheetAnalytics.swift */; };
E640A4BF265F269800B31E91 /* STPAnalyticsClient+Payments.swift in Sources */ = {isa = PBXBuildFile; fileRef = E640A4BE265F269800B31E91 /* STPAnalyticsClient+Payments.swift */; };
E640A4C1265F26A500B31E91 /* Analytic+Payments.swift in Sources */ = {isa = PBXBuildFile; fileRef = E640A4C0265F26A500B31E91 /* Analytic+Payments.swift */; };
E6598C8526952F7000278740 /* StripeBundleLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6598C8426952F7000278740 /* StripeBundleLocator.swift */; };
E6598C872695342000278740 /* StripeSharedStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6598C862695342000278740 /* StripeSharedStrings.swift */; };
E66D20A925F02D9B00ED6CA0 /* IdentityVerificationSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66D20A825F02D9B00ED6CA0 /* IdentityVerificationSheet.swift */; };
E66D20AD25F0303500ED6CA0 /* VerificationFlowWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66D20AC25F0303500ED6CA0 /* VerificationFlowWebViewController.swift */; };
E66D20B025F031FB00ED6CA0 /* VerificationFlowWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66D20AF25F031FB00ED6CA0 /* VerificationFlowWebView.swift */; };
@ -693,7 +699,6 @@
E6598C872695342000278740 /* String+Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6598C862695342000278740 /* String+Localized.swift */; };
E69552D625CCDC0F00753FDA /* STPiDEALBank.swift in Sources */ = {isa = PBXBuildFile; fileRef = E69552D525CCDC0F00753FDA /* STPiDEALBank.swift */; };
E69552EB25D1E4F000753FDA /* STPGenericInputPickerField.swift in Sources */ = {isa = PBXBuildFile; fileRef = E69552EA25D1E4EF00753FDA /* STPGenericInputPickerField.swift */; };
E6A598E125F6E0E3003B4987 /* STPDeviceUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A598E025F6E0E2003B4987 /* STPDeviceUtils.swift */; };
E6A598EB25F70729003B4987 /* VerificationFlowWebViewTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A598E725F706A7003B4987 /* VerificationFlowWebViewTest.swift */; };
E6A598F025F715B7003B4987 /* VerificationFlowWebViewControllerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A598ED25F71599003B4987 /* VerificationFlowWebViewControllerTest.swift */; };
E6A598F725F72272003B4987 /* VerificationClientSecretTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A598F325F721D3003B4987 /* VerificationClientSecretTest.swift */; };
@ -702,6 +707,7 @@
E6B8971F25FC4FD6002428E1 /* MockAnalyticsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B8971E25FC4FD6002428E1 /* MockAnalyticsClient.swift */; };
E6B8972525FC532B002428E1 /* Analytic.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B8972125FC5311002428E1 /* Analytic.swift */; };
E6CA4B3225F1C98300D8D9E8 /* mock.html in Resources */ = {isa = PBXBuildFile; fileRef = E6CA4B3125F1C98300D8D9E8 /* mock.html */; };
E6CDC468269E70590020A962 /* StripeCoreTestUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6CDC467269E70590020A962 /* StripeCoreTestUtils.framework */; };
E6E7A27C25FC65110002F914 /* VerificationSheetAnalyticsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E7A27B25FC65110002F914 /* VerificationSheetAnalyticsTest.swift */; };
F1122A7E1DFB84E000A8B1AF /* UINavigationBar+StripeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F1122A7D1DFB84E000A8B1AF /* UINavigationBar+StripeTest.m */; };
F116E94C1D83405E0026A52A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11C74B9B164043050071C2CA /* Foundation.framework */; };
@ -1462,9 +1468,17 @@
C1E4F8051EBBEB0F00E611F5 /* STPCustomerContextTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPCustomerContextTest.m; sourceTree = "<group>"; };
E60437F125D34316006E2E03 /* STPGenericInputPickerFieldSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPGenericInputPickerFieldSnapshotTests.swift; sourceTree = "<group>"; };
E60437F525D37DDC006E2E03 /* STPGenericInputPickerFieldValidatorTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPGenericInputPickerFieldValidatorTest.swift; sourceTree = "<group>"; };
E61BEEAD265F6BDC0002FA4F /* STPAnalyticsClientPaymentsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPAnalyticsClientPaymentsTest.swift; sourceTree = "<group>"; };
E61BEEAF265F6CAC0002FA4F /* STPAnalyticsClientPaymentSheetTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPAnalyticsClientPaymentSheetTest.swift; sourceTree = "<group>"; };
E620F1D7265F5FA200233581 /* PaymentAnalyticTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentAnalyticTest.swift; sourceTree = "<group>"; };
E62F3A7325F80F9A00B2C0AC /* UIActivityIndicatorView+Stripe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Stripe.swift"; sourceTree = "<group>"; };
E633417C25FC2376006F084B /* STPAnalyticEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPAnalyticEvent.swift; sourceTree = "<group>"; };
E630ABD32652F4B300C7AA5D /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = "<group>"; };
E633418325FC2FEA006F084B /* VerificationSheetAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationSheetAnalytics.swift; sourceTree = "<group>"; };
E640A4BE265F269800B31E91 /* STPAnalyticsClient+Payments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "STPAnalyticsClient+Payments.swift"; sourceTree = "<group>"; };
E640A4C0265F26A500B31E91 /* Analytic+Payments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Analytic+Payments.swift"; sourceTree = "<group>"; };
E6539B41269E4E1700E05D26 /* StripeCoreTestUtils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StripeCoreTestUtils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E6598C8426952F7000278740 /* StripeBundleLocator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StripeBundleLocator.swift; sourceTree = "<group>"; };
E6598C862695342000278740 /* StripeSharedStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StripeSharedStrings.swift; sourceTree = "<group>"; };
E66D20A825F02D9B00ED6CA0 /* IdentityVerificationSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IdentityVerificationSheet.swift; sourceTree = "<group>"; };
E66D20AC25F0303500ED6CA0 /* VerificationFlowWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationFlowWebViewController.swift; sourceTree = "<group>"; };
E66D20AF25F031FB00ED6CA0 /* VerificationFlowWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationFlowWebView.swift; sourceTree = "<group>"; };
@ -1483,7 +1497,6 @@
E6598C862695342000278740 /* String+Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Localized.swift"; sourceTree = "<group>"; };
E69552D525CCDC0F00753FDA /* STPiDEALBank.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPiDEALBank.swift; sourceTree = "<group>"; };
E69552EA25D1E4EF00753FDA /* STPGenericInputPickerField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPGenericInputPickerField.swift; sourceTree = "<group>"; };
E6A598E025F6E0E2003B4987 /* STPDeviceUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPDeviceUtils.swift; sourceTree = "<group>"; };
E6A598E725F706A7003B4987 /* VerificationFlowWebViewTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationFlowWebViewTest.swift; sourceTree = "<group>"; };
E6A598ED25F71599003B4987 /* VerificationFlowWebViewControllerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationFlowWebViewControllerTest.swift; sourceTree = "<group>"; };
E6A598F325F721D3003B4987 /* VerificationClientSecretTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationClientSecretTest.swift; sourceTree = "<group>"; };
@ -1492,6 +1505,7 @@
E6B8971E25FC4FD6002428E1 /* MockAnalyticsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAnalyticsClient.swift; sourceTree = "<group>"; };
E6B8972125FC5311002428E1 /* Analytic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Analytic.swift; sourceTree = "<group>"; };
E6CA4B3125F1C98300D8D9E8 /* mock.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = mock.html; path = MockFiles/mock.html; sourceTree = "<group>"; };
E6CDC467269E70590020A962 /* StripeCoreTestUtils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StripeCoreTestUtils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E6E7A27B25FC65110002F914 /* VerificationSheetAnalyticsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerificationSheetAnalyticsTest.swift; sourceTree = "<group>"; };
ED627D57207EA348007EFC56 /* nb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = nb; path = Localizations/nb.lproj/Localizable.strings; sourceTree = "<group>"; };
F1122A7D1DFB84E000A8B1AF /* UINavigationBar+StripeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UINavigationBar+StripeTest.m"; sourceTree = "<group>"; };
@ -1536,6 +1550,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E6CDC468269E70590020A962 /* StripeCoreTestUtils.framework in Frameworks */,
04E01F7B21A8C37D0061402F /* OHHTTPStubs.xcframework in Frameworks */,
04E01F7C21A8C37D0061402F /* SWHttpTrafficRecorder.xcframework in Frameworks */,
045E7C091A5F41DE004751EF /* Stripe.framework in Frameworks */,
@ -1695,6 +1710,8 @@
11C74B9A164043050071C2CA /* Frameworks */ = {
isa = PBXGroup;
children = (
E6CDC467269E70590020A962 /* StripeCoreTestUtils.framework */,
E6539B41269E4E1700E05D26 /* StripeCoreTestUtils.framework */,
E6B0F5582686C0BA00055EAF /* StripeCore.framework */,
31EFEE0D258AE3F40069BC5F /* Stripe3DS2.framework */,
310FCA922582F1C6005FB2AE /* Stripe3DS2.framework */,
@ -1990,7 +2007,6 @@
317ABD8525117C9800CC59EF /* STPPromise.swift */,
317ABE1925117CA100CC59EF /* STPStringUtils.swift */,
317ABD5925117C9500CC59EF /* STPURLCallbackHandler.swift */,
E6A598E025F6E0E2003B4987 /* STPDeviceUtils.swift */,
E62F3A7325F80F9A00B2C0AC /* UIActivityIndicatorView+Stripe.swift */,
E6598C8426952F7000278740 /* StripeBundleLocator.swift */,
E6598C862695342000278740 /* String+Localized.swift */,
@ -3351,7 +3367,6 @@
3667949025B790250094831B /* STPCardFormViewTests.swift in Sources */,
3111C55F252BDB0000207E32 /* NSString+StripeTest.swift in Sources */,
E6A598F725F72272003B4987 /* VerificationClientSecretTest.swift in Sources */,
31C5B886252E9AD200A481A7 /* STPAnalyticsClientTest.m in Sources */,
3111C56B252BDD5000207E32 /* FBSnapshotTestCase+STPViewControllerLoading.swift in Sources */,
31C5B898252EA19200A481A7 /* STPImageLibraryTest.m in Sources */,
368E1F6D254CC87300150A2D /* STPPostalCodeInputTextFieldSnapshotTests.swift in Sources */,
@ -3624,7 +3639,6 @@
E640A4C1265F26A500B31E91 /* Analytic+Payments.swift in Sources */,
36E295E425239DDF00CF5C06 /* STPPaymentIntentShippingDetails.swift in Sources */,
3111BE792513039700288D28 /* STPShippingMethodTableViewCell.swift in Sources */,
E6A598E125F6E0E3003B4987 /* STPDeviceUtils.swift in Sources */,
36FB69D725267E6200F129CE /* STPPaymentHandlerActionParams.swift in Sources */,
31D4D6942512EDF900809066 /* UIViewController+Stripe_NavigationItemProxy.swift in Sources */,
368E1F53254CB27500150A2D /* STPPostalCodeInputTextFieldFormatter.swift in Sources */,

View File

@ -7,6 +7,7 @@
//
import UIKit
@_spi(STP) import StripeCore
/**
A drop-in class that presents a sheet for a user to verify their identity.
@ -136,6 +137,7 @@ extension IdentityVerificationSheet: VerificationFlowWebViewControllerDelegate {
// MARK: - STPAnalyticsProtocol
extension IdentityVerificationSheet: STPAnalyticsProtocol {
static var stp_analyticsIdentifier = "IdentityVerificationSheet"
/// :nodoc:
@_spi(STP) extension IdentityVerificationSheet: STPAnalyticsProtocol {
@_spi(STP) public static var stp_analyticsIdentifier = "IdentityVerificationSheet"
}

View File

@ -7,6 +7,7 @@
//
import Foundation
@_spi(STP) import StripeCore
/**
Errors specific to the `IdentityVerificationSheet`.

View File

@ -101,12 +101,12 @@
/* Card details entry form header title */
"Card information" = "Card information";
/* Label for card number entry text field */
"Card number" = "Card number";
/* accessibility label for text field */
"card number" = "card number";
/* Label for card number entry text field */
"Card number" = "Card number";
/* TODO */
"Choose a payment method" = "Choose a payment method";
@ -188,12 +188,12 @@
/* Placeholder string for name entry field. */
"Full name" = "Full name";
/* Payment Method type brand name. */
"giropay" = "giropay";
/* Source type brand name */
"Giropay" = "Giropay";
/* Payment Method type brand name. */
"giropay" = "giropay";
/* Payment Method type brand name. */
"GrabPay" = "GrabPay";
@ -384,11 +384,14 @@
/* Error when the user hasn't allowed the current app to access the camera when scanning a payment card. 'Settings' is the localized name of the iOS Settings app. */
"To scan your card, allow camera access in Settings." = "To scan your card, allow camera access in Settings.";
/* Label of an address field */
"Town or city" = "Town or city";
/* Button to reload web view if we were unable to connect. */
"Try again" = "Try again";
/* Label of an address field */
"Town or city" = "Town or city";
/* Error message that displays when we're unable to connect to the server. */
"Unable to establish a connection." = "Unable to establish a connection.";
/* Default missing source type label */
"Unknown" = "Unknown";

View File

@ -7,6 +7,7 @@
//
import Foundation
@_spi(STP) import StripeCore
/// Analytic that contains a `verification_session` payload param
protocol VerificationSheetAnalytic: Analytic {

View File

@ -14,6 +14,7 @@
E614ACA4268BE14B00C59B3D /* NSBundle+Stripe_AppName.swift in Sources */ = {isa = PBXBuildFile; fileRef = E614AC9C268BE14B00C59B3D /* NSBundle+Stripe_AppName.swift */; };
E614ACA5268BE14B00C59B3D /* NSMutableURLRequest+Stripe.swift in Sources */ = {isa = PBXBuildFile; fileRef = E614AC9D268BE14B00C59B3D /* NSMutableURLRequest+Stripe.swift */; };
E614ACA6268BE14B00C59B3D /* URLEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = E614AC9F268BE14B00C59B3D /* URLEncoder.swift */; };
E620C243269F9B210054DD6D /* STPDeviceUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6539B3F269E4D9200E05D26 /* STPDeviceUtils.swift */; };
E6233B33269E62330062005D /* StripeCoreTestUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6FB9BB8268EA95F000FDB4F /* StripeCoreTestUtils.framework */; };
E6598C8126952BC500278740 /* STPLocalizationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6598C7E26952BC500278740 /* STPLocalizationUtils.swift */; };
E6598C8F269615E000278740 /* STPLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6598C8E269615E000278740 /* STPLocalizedString.swift */; };
@ -33,9 +34,9 @@
E69D642726855B9B0090B43D /* StripeiOS-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = E69D641D26855B9B0090B43D /* StripeiOS-Shared.xcconfig */; };
E69D642826855B9B0090B43D /* Project-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = E69D641E26855B9B0090B43D /* Project-Debug.xcconfig */; };
E69D642926855B9B0090B43D /* StripeiOS-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = E69D641F26855B9B0090B43D /* StripeiOS-Release.xcconfig */; };
E6CDC469269E81CD0020A962 /* MockAnalyticsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6FB9BAA268EA7E1000FDB4F /* MockAnalyticsClient.swift */; };
E6E38EE8268BE48300233B24 /* StripeAPIConfiguration+Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E38EE7268BE48300233B24 /* StripeAPIConfiguration+Version.swift */; };
E6E38EEA268BE69F00233B24 /* PublishableKeyProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E38EE9268BE69F00233B24 /* PublishableKeyProvider.swift */; };
E6FB9BAB268EA7E1000FDB4F /* MockAnalyticsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6FB9BAA268EA7E1000FDB4F /* MockAnalyticsClient.swift */; };
E6FB9BAF268EA890000FDB4F /* NSMutableURLRequest+StripeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6FB9BAE268EA890000FDB4F /* NSMutableURLRequest+StripeTest.swift */; };
E6FB9BB2268EA911000FDB4F /* STPAnalyticsClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6FB9BB1268EA911000FDB4F /* STPAnalyticsClientTest.swift */; };
E6FB9BBC268EA95F000FDB4F /* StripeCoreTestUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = E6FB9BBA268EA95F000FDB4F /* StripeCoreTestUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -67,6 +68,7 @@
E614AC9C268BE14B00C59B3D /* NSBundle+Stripe_AppName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSBundle+Stripe_AppName.swift"; sourceTree = "<group>"; };
E614AC9D268BE14B00C59B3D /* NSMutableURLRequest+Stripe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSMutableURLRequest+Stripe.swift"; sourceTree = "<group>"; };
E614AC9F268BE14B00C59B3D /* URLEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLEncoder.swift; sourceTree = "<group>"; };
E6539B3F269E4D9200E05D26 /* STPDeviceUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = STPDeviceUtils.swift; sourceTree = "<group>"; };
E6598C7E26952BC500278740 /* STPLocalizationUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = STPLocalizationUtils.swift; sourceTree = "<group>"; };
E6598C8E269615E000278740 /* STPLocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = STPLocalizedString.swift; sourceTree = "<group>"; };
E6598C932696177B00278740 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
@ -184,6 +186,7 @@
isa = PBXGroup;
children = (
E66784B026980677005F7CC8 /* BundleLocatorProtocol.swift */,
E6539B3F269E4D9200E05D26 /* STPDeviceUtils.swift */,
E66784AF26980677005F7CC8 /* StripeCoreBundleLocator.swift */,
E614AC9F268BE14B00C59B3D /* URLEncoder.swift */,
);
@ -536,6 +539,7 @@
E681E5662698EC9700692E45 /* NSError+StripeCore.swift in Sources */,
E66784B126980677005F7CC8 /* StripeCoreBundleLocator.swift in Sources */,
E614ACA0268BE14B00C59B3D /* StripeAPIConfiguration.swift in Sources */,
E620C243269F9B210054DD6D /* STPDeviceUtils.swift in Sources */,
E614ACA3268BE14B00C59B3D /* STPAnalyticsClient.swift in Sources */,
E66784B226980677005F7CC8 /* BundleLocatorProtocol.swift in Sources */,
E614ACA6268BE14B00C59B3D /* URLEncoder.swift in Sources */,
@ -552,7 +556,6 @@
E6FB9BAF268EA890000FDB4F /* NSMutableURLRequest+StripeTest.swift in Sources */,
E6FB9BB2268EA911000FDB4F /* STPAnalyticsClientTest.swift in Sources */,
E6FB9BC5268EAEF3000FDB4F /* URLEncoderTest.swift in Sources */,
E6FB9BAB268EA7E1000FDB4F /* MockAnalyticsClient.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -560,6 +563,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E6CDC469269E81CD0020A962 /* MockAnalyticsClient.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -1,6 +1,6 @@
//
// STPDeviceUtils.swift
// StripeiOS
// StripeCore
//
// Created by Mel Ludowise on 3/8/21.
// Copyright © 2021 Stripe, Inc. All rights reserved.

View File

@ -10,8 +10,10 @@
@_spi(STP) public final class MockAnalyticsClient: STPAnalyticsClientProtocol {
private(set) var productUsage: Set<String> = []
private(set) var loggedAnalytics: [Analytic] = []
public private(set) var productUsage: Set<String> = []
public private(set) var loggedAnalytics: [Analytic] = []
public init() { }
public func addClass<T>(toProductUsageIfNecessary klass: T.Type) where T : STPAnalyticsProtocol {
productUsage.insert(klass.stp_analyticsIdentifier)

View File

@ -9,6 +9,7 @@
import XCTest
@testable import Stripe
@_spi(STP) import StripeCoreTestUtils
final class IdentityVerificationSheetTest: XCTestCase {
private let mockViewController = UIViewController()

View File

@ -9,6 +9,7 @@
import XCTest
@testable import Stripe
@_spi(STP) import StripeCore
final class VerificationSheetAnalyticsTest: XCTestCase {

View File

@ -82,7 +82,7 @@ if skip_snapshot_tests
"StripeiOS Tests/STPGenericInputPickerFieldSnapshotTests",
"StripeiOS Tests/STPiDEALBankPickerInputFieldSnapshotTests",
"StripeiOS Tests/STPiDEALFormViewSnapshotTests",
"StripeiOS Tests/VerificationFlowWebViewSnapshotTests"
"StripeiOS Tests/VerificationFlowWebViewSnapshotTests",
"StripeiOS Tests/AfterpayPriceBreakdownViewSnapshotTests"
]
end