Skip to content

Commit c3d7f6e

Browse files
authored
Analytics swift API tests (#9876)
* Analytics API tests
1 parent e0ccf66 commit c3d7f6e

File tree

2 files changed

+196
-3
lines changed

2 files changed

+196
-3
lines changed

FirebaseAnalyticsSwift.podspec

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,14 @@ Firebase Analytics is a free, out-of-the-box analytics solution that inspires ac
1818

1919
s.static_framework = true
2020
s.swift_version = '5.3'
21-
s.ios.deployment_target = '13.0'
22-
s.osx.deployment_target = '10.15'
23-
s.tvos.deployment_target = '13.0'
21+
22+
ios_deployment_target = '13.0'
23+
osx_deployment_target = '10.15'
24+
tvos_deployment_target = '13.0'
25+
26+
s.ios.deployment_target = ios_deployment_target
27+
s.osx.deployment_target = osx_deployment_target
28+
s.tvos.deployment_target = tvos_deployment_target
2429

2530
s.cocoapods_version = '>= 1.10.0'
2631
s.prefix_header_file = false
@@ -30,4 +35,15 @@ Firebase Analytics is a free, out-of-the-box analytics solution that inspires ac
3035
]
3136

3237
s.dependency 'FirebaseAnalytics', '~> 9.0'
38+
39+
s.test_spec 'swift-unit' do |swift_unit_tests|
40+
swift_unit_tests.platforms = {
41+
:ios => ios_deployment_target,
42+
:osx => osx_deployment_target,
43+
:tvos => tvos_deployment_target
44+
}
45+
swift_unit_tests.source_files = [
46+
'FirebaseAnalyticsSwift/Tests/SwiftUnit/**/*.swift',
47+
]
48+
end
3349
end
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
//
2+
// Copyright 2022 Google LLC
3+
//
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
//
8+
// http://www.apache.org/licenses/LICENSE-2.0
9+
//
10+
// Unless required by applicable law or agreed to in writing, software
11+
// distributed under the License is distributed on an "AS IS" BASIS,
12+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
// See the License for the specific language governing permissions and
14+
// limitations under the License.
15+
//
16+
17+
// MARK: This file is used to evaluate the experience of using Analytics APIs in Swift.
18+
19+
import FirebaseAnalytics
20+
import Foundation
21+
22+
final class AnalyticsAPITests {
23+
func usage() {
24+
// MARK: - Analytics
25+
26+
Analytics.logEvent("event_name", parameters: ["param": 1])
27+
Analytics.setUserProperty("value", forName: "name")
28+
Analytics.setUserID("user_id")
29+
Analytics.setAnalyticsCollectionEnabled(true)
30+
Analytics.setSessionTimeoutInterval(3600.0)
31+
let _: String? = Analytics.appInstanceID()
32+
Analytics.resetAnalyticsData()
33+
Analytics.setDefaultEventParameters(["default": 100])
34+
35+
// MARK: - AppDelegate
36+
37+
Analytics.handleEvents(forBackgroundURLSession: "session_id", completionHandler: {})
38+
#if compiler(>=5.5.2) && canImport(_Concurrency)
39+
if #available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 7.0, *) {
40+
Task {
41+
await Analytics.handleEvents(forBackgroundURLSession: "session_id")
42+
}
43+
}
44+
#endif // compiler(>=5.5.2) && canImport(_Concurrency)
45+
Analytics.handleOpen(URL(string: "https://google.com")!)
46+
Analytics.handleUserActivity(NSUserActivity(activityType: "editing"))
47+
48+
// MARK: - Consent
49+
50+
Analytics.setConsent([.analyticsStorage: .granted, .adStorage: .denied])
51+
52+
// MARK: - OnDeviceConversion
53+
54+
Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "[email protected]")
55+
56+
// MARK: - EventNames
57+
58+
let _: [String] = [
59+
AnalyticsEventAdImpression,
60+
AnalyticsEventAddPaymentInfo,
61+
AnalyticsEventAddShippingInfo,
62+
AnalyticsEventAddToCart,
63+
AnalyticsEventAddToWishlist,
64+
AnalyticsEventAppOpen,
65+
AnalyticsEventBeginCheckout,
66+
AnalyticsEventCampaignDetails,
67+
AnalyticsEventEarnVirtualCurrency,
68+
AnalyticsEventGenerateLead,
69+
AnalyticsEventJoinGroup,
70+
AnalyticsEventLevelEnd,
71+
AnalyticsEventLevelStart,
72+
AnalyticsEventLevelUp,
73+
AnalyticsEventLogin,
74+
AnalyticsEventPostScore,
75+
AnalyticsEventPurchase,
76+
AnalyticsEventRefund,
77+
AnalyticsEventRemoveFromCart,
78+
AnalyticsEventScreenView,
79+
AnalyticsEventSearch,
80+
AnalyticsEventSelectContent,
81+
AnalyticsEventSelectItem,
82+
AnalyticsEventSelectPromotion,
83+
AnalyticsEventShare,
84+
AnalyticsEventSignUp,
85+
AnalyticsEventSpendVirtualCurrency,
86+
AnalyticsEventTutorialBegin,
87+
AnalyticsEventTutorialComplete,
88+
AnalyticsEventUnlockAchievement,
89+
AnalyticsEventViewCart,
90+
AnalyticsEventViewItem,
91+
AnalyticsEventViewItemList,
92+
AnalyticsEventViewPromotion,
93+
AnalyticsEventViewSearchResults,
94+
]
95+
96+
// MARK: - ParameterNames
97+
98+
let _: [String] = [
99+
AnalyticsParameterAchievementID,
100+
AnalyticsParameterAdFormat,
101+
AnalyticsParameterAdNetworkClickID,
102+
AnalyticsParameterAdPlatform,
103+
AnalyticsParameterAdSource,
104+
AnalyticsParameterAdUnitName,
105+
AnalyticsParameterAffiliation,
106+
AnalyticsParameterCP1,
107+
AnalyticsParameterCampaign,
108+
AnalyticsParameterCampaignID,
109+
AnalyticsParameterCharacter,
110+
AnalyticsParameterContent,
111+
AnalyticsParameterContentType,
112+
AnalyticsParameterCoupon,
113+
AnalyticsParameterCreativeFormat,
114+
AnalyticsParameterCreativeName,
115+
AnalyticsParameterCreativeSlot,
116+
AnalyticsParameterCurrency,
117+
AnalyticsParameterDestination,
118+
AnalyticsParameterDiscount,
119+
AnalyticsParameterEndDate,
120+
AnalyticsParameterExtendSession,
121+
AnalyticsParameterFlightNumber,
122+
AnalyticsParameterGroupID,
123+
AnalyticsParameterIndex,
124+
AnalyticsParameterItemBrand,
125+
AnalyticsParameterItemCategory,
126+
AnalyticsParameterItemCategory2,
127+
AnalyticsParameterItemCategory3,
128+
AnalyticsParameterItemCategory4,
129+
AnalyticsParameterItemCategory5,
130+
AnalyticsParameterItemID,
131+
AnalyticsParameterItemListID,
132+
AnalyticsParameterItemListName,
133+
AnalyticsParameterItemName,
134+
AnalyticsParameterItemVariant,
135+
AnalyticsParameterItems,
136+
AnalyticsParameterLevel,
137+
AnalyticsParameterLevelName,
138+
AnalyticsParameterLocation,
139+
AnalyticsParameterLocationID,
140+
AnalyticsParameterMarketingTactic,
141+
AnalyticsParameterMedium,
142+
AnalyticsParameterMethod,
143+
AnalyticsParameterNumberOfNights,
144+
AnalyticsParameterNumberOfPassengers,
145+
AnalyticsParameterNumberOfRooms,
146+
AnalyticsParameterOrigin,
147+
AnalyticsParameterPaymentType,
148+
AnalyticsParameterPrice,
149+
AnalyticsParameterPromotionID,
150+
AnalyticsParameterPromotionName,
151+
AnalyticsParameterQuantity,
152+
AnalyticsParameterScore,
153+
AnalyticsParameterScreenClass,
154+
AnalyticsParameterScreenName,
155+
AnalyticsParameterSearchTerm,
156+
AnalyticsParameterShipping,
157+
AnalyticsParameterShippingTier,
158+
AnalyticsParameterSource,
159+
AnalyticsParameterSourcePlatform,
160+
AnalyticsParameterStartDate,
161+
AnalyticsParameterSuccess,
162+
AnalyticsParameterTax,
163+
AnalyticsParameterTerm,
164+
AnalyticsParameterTransactionID,
165+
AnalyticsParameterTravelClass,
166+
AnalyticsParameterValue,
167+
AnalyticsParameterVirtualCurrencyName,
168+
]
169+
170+
// MARK: - UserPropertyNames
171+
172+
let _: [String] = [
173+
AnalyticsUserPropertyAllowAdPersonalizationSignals,
174+
AnalyticsUserPropertySignUpMethod,
175+
]
176+
}
177+
}

0 commit comments

Comments
 (0)