Skip to content

Commit 8264390

Browse files
committed
Merge branch 'master' into bs-gullogger
* master: (27 commits) Pass FSTMutations using a vector (#2357) Update CI to use CocoaPods 1.6.0 (#2360) Add NS_ASSUME_NONNULL_NOTATION for game center sign in (#2359) C++ migration: make all methods of `FSTRemoteStore` delegate to C++ (#2337) C++ migration: port write stream-related part of `FSTRemoteStore` (#2335) Resolve hard dependency of GameKit (#2355) Update gRPC certificate bundles locations for Firebase 5.16 (#2353) Start pod lib lint CI for IAM (#2347) Update library name to `fire-fiam`. (#2352) Bump FirebaseAnalyticsInterop version (#2315) Add IAM headless to CI (#2341) C++ migration: port watch stream-related part of `FSTRemoteStore` (#2331) Open source FIAM headless SDK (#2312) Port flaky test fix from web. (#2332) Make scripts/style.sh compatible with newer swiftformat versions (0.38) (#2334) C++ migration: port `FSTOnlineStateTracker` (#2325) Don't build fuzz tests target on Travis (#2330) Remove FSTMutationQueue (#2319) C++ migration: port `FSTRemoteEvent` (#2320) C++ migration: port `FSTTargetChange` (#2318) ...
2 parents 45e7209 + a22b4cd commit 8264390

File tree

243 files changed

+19870
-3912
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

243 files changed

+19870
-3912
lines changed

.travis.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec
6969
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec
7070
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec
71+
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessaging.podspec
7172
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec
7273

7374
- stage: test
@@ -98,6 +99,7 @@ jobs:
9899
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec --use-libraries --allow-warnings
99100
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec --use-libraries
100101
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec --use-libraries
102+
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessaging.podspec --use-libraries
101103
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec --use-libraries
102104

103105
- stage: test
@@ -186,6 +188,7 @@ jobs:
186188
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec
187189
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec
188190
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec
191+
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessaging.podspec
189192
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec
190193

191194
- stage: test

Carthage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.jso
6565
into the Xcode project and make sure they're added to the
6666
`Copy Bundle Resources` Build Phase :
6767
- For Firestore:
68-
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates-Firestore.bundle
68+
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates.bundle
6969
- For Invites:
7070
- ./Carthage/Build/iOS/FirebaseInvites.framework/GoogleSignIn.bundle
7171
- ./Carthage/Build/iOS/FirebaseInvites.framework/GPPACLPickerResources.bundle

Example/DynamicLinks/Tests/FIRDLScionLoggingTest.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,20 @@ - (void)setUserPropertyWithOrigin:(nonnull NSString *)origin
7474
name:(nonnull NSString *)name
7575
value:(nonnull id)value {
7676
}
77+
78+
- (void)checkLastNotificationForOrigin:(nonnull NSString *)origin
79+
queue:(nonnull dispatch_queue_t)queue
80+
callback:(nonnull void (^)(NSString *_Nullable))
81+
currentLastNotificationProperty {
82+
}
83+
84+
- (void)registerAnalyticsListener:(nonnull id<FIRAnalyticsInteropListener>)listener
85+
withOrigin:(nonnull NSString *)origin {
86+
}
87+
88+
- (void)unregisterAnalyticsListenerWithOrigin:(nonnull NSString *)origin {
89+
}
90+
7791
@end
7892

7993
@interface FIRDLScionLoggingTest : XCTestCase

Example/Firebase.xcodeproj/project.pbxproj

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,7 @@
617617
EDD53E2A211B08A300376BFF /* FIRComponentTestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD53E28211B08A300376BFF /* FIRComponentTestUtilities.m */; };
618618
EDD53E2B211B08A300376BFF /* FIRComponentTestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD53E28211B08A300376BFF /* FIRComponentTestUtilities.m */; };
619619
EDD53E2C211B08A300376BFF /* FIRComponentTestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD53E28211B08A300376BFF /* FIRComponentTestUtilities.m */; };
620+
EDF5242C21EA37AA00BB24C6 /* FIRMessagingTestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = EDF5242B21EA364600BB24C6 /* FIRMessagingTestUtilities.m */; };
620621
/* End PBXBuildFile section */
621622

622623
/* Begin PBXContainerItemProxy section */
@@ -1345,6 +1346,8 @@
13451346
EDD53E24211A442D00376BFF /* FIRAuthInteropFake.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FIRAuthInteropFake.m; path = Shared/FIRAuthInteropFake.m; sourceTree = "<group>"; };
13461347
EDD53E28211B08A300376BFF /* FIRComponentTestUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FIRComponentTestUtilities.m; path = Shared/FIRComponentTestUtilities.m; sourceTree = "<group>"; };
13471348
EDD53E29211B08A300376BFF /* FIRComponentTestUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIRComponentTestUtilities.h; path = Shared/FIRComponentTestUtilities.h; sourceTree = "<group>"; };
1349+
EDF5242A21EA364600BB24C6 /* FIRMessagingTestUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRMessagingTestUtilities.h; sourceTree = "<group>"; };
1350+
EDF5242B21EA364600BB24C6 /* FIRMessagingTestUtilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRMessagingTestUtilities.m; sourceTree = "<group>"; };
13481351
/* End PBXFileReference section */
13491352

13501353
/* Begin PBXFrameworksBuildPhase section */
@@ -2340,6 +2343,8 @@
23402343
DE9315D71E8738B70083EDBF /* FIRMessagingTestNotificationUtilities.m */,
23412344
DE37C63A2163D5F30025D03E /* FIRMessagingAnalyticsTest.m */,
23422345
DE9315D81E8738B70083EDBF /* Info.plist */,
2346+
EDF5242A21EA364600BB24C6 /* FIRMessagingTestUtilities.h */,
2347+
EDF5242B21EA364600BB24C6 /* FIRMessagingTestUtilities.m */,
23432348
);
23442349
path = Tests;
23452350
sourceTree = "<group>";
@@ -4419,6 +4424,7 @@
44194424
DE9315F91E8738E60083EDBF /* FIRMessagingFakeConnection.m in Sources */,
44204425
DE9316021E8738E60083EDBF /* FIRMessagingServiceTest.m in Sources */,
44214426
DE9315FE1E8738E60083EDBF /* FIRMessagingRegistrarTest.m in Sources */,
4427+
EDF5242C21EA37AA00BB24C6 /* FIRMessagingTestUtilities.m in Sources */,
44224428
DE9316031E8738E60083EDBF /* FIRMessagingSyncMessageManagerTest.m in Sources */,
44234429
DE9315FF1E8738E60083EDBF /* FIRMessagingRemoteNotificationsProxyTest.m in Sources */,
44244430
DEF61BFD216E8B1100A738D4 /* FIRMessagingReceiverTest.m in Sources */,
@@ -6452,6 +6458,7 @@
64526458
buildSettings = {
64536459
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
64546460
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
6461+
BUNDLE_LOADER = "$(TEST_HOST)";
64556462
CLANG_ANALYZER_NONNULL = YES;
64566463
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
64576464
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -6476,11 +6483,6 @@
64766483
INFOPLIST_FILE = "$(SRCROOT)/Auth/App/iOS/Auth-Info.plist";
64776484
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
64786485
MTL_ENABLE_DEBUG_INFO = YES;
6479-
OTHER_LDFLAGS = (
6480-
"$(inherited)",
6481-
"-framework",
6482-
FirebaseAuth,
6483-
);
64846486
PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-tvOS";
64856487
PRODUCT_NAME = "$(TARGET_NAME)";
64866488
SDKROOT = appletvos;
@@ -6495,6 +6497,7 @@
64956497
buildSettings = {
64966498
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
64976499
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
6500+
BUNDLE_LOADER = "$(TEST_HOST)";
64986501
CLANG_ANALYZER_NONNULL = YES;
64996502
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
65006503
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -6520,11 +6523,6 @@
65206523
INFOPLIST_FILE = "$(SRCROOT)/Auth/App/iOS/Auth-Info.plist";
65216524
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
65226525
MTL_ENABLE_DEBUG_INFO = NO;
6523-
OTHER_LDFLAGS = (
6524-
"$(inherited)",
6525-
"-framework",
6526-
FirebaseAuth,
6527-
);
65286526
PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-tvOS";
65296527
PRODUCT_NAME = "$(TARGET_NAME)";
65306528
SDKROOT = appletvos;

Example/Messaging/Tests/FIRMessagingAnalyticsTest.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@ - (NSInteger)maxUserProperties:(nonnull NSString *)origin {
9797
- (void)setConditionalUserProperty:(nonnull FIRAConditionalUserProperty *)conditionalUserProperty {
9898
}
9999

100+
- (void)checkLastNotificationForOrigin:(nonnull NSString *)origin
101+
queue:(nonnull dispatch_queue_t)queue
102+
callback:(nonnull void (^)(NSString *_Nullable))
103+
currentLastNotificationProperty {
104+
}
105+
106+
- (void)registerAnalyticsListener:(nonnull id<FIRAnalyticsInteropListener>)listener
107+
withOrigin:(nonnull NSString *)origin {
108+
}
109+
110+
- (void)unregisterAnalyticsListenerWithOrigin:(nonnull NSString *)origin {
111+
}
112+
113+
100114
@end
101115

102116
@interface FIRMessagingAnalytics (ExposedForTest)

Example/Messaging/Tests/FIRMessagingLinkHandlingTest.m

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
#import "FIRMessaging.h"
2222
#import "FIRMessagingConstants.h"
2323
#import "FIRMessagingTestNotificationUtilities.h"
24+
#import "FIRMessagingTestUtilities.h"
25+
26+
NSString *const kFIRMessagingTestsLinkHandlingSuiteName = @"com.messaging.test_linkhandling";
2427

2528
@interface FIRMessaging ()
2629

27-
+ (FIRMessaging *)messagingForTests;
2830
- (NSURL *)linkURLFromMessage:(NSDictionary *)message;
2931

3032
@end
@@ -39,10 +41,13 @@ @implementation FIRMessagingLinkHandlingTest
3941

4042
- (void)setUp {
4143
[super setUp];
42-
_messaging = [FIRMessaging messagingForTests];
44+
45+
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:kFIRMessagingTestsLinkHandlingSuiteName];
46+
_messaging = [FIRMessagingTestUtilities messagingForTestsWithUserDefaults:defaults];
4347
}
4448

4549
- (void)tearDown {
50+
[self.messaging.messagingUserDefaults removePersistentDomainForName:kFIRMessagingTestsLinkHandlingSuiteName];
4651
_messaging = nil;
4752
[super tearDown];
4853
}

Example/Messaging/Tests/FIRMessagingReceiverTest.m

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222

2323
#import "FIRMessaging.h"
2424
#import "FIRMessaging_Private.h"
25+
#import "FIRMessagingTestUtilities.h"
2526

26-
@interface FIRMessaging ()
27-
+ (FIRMessaging *)messagingForTests;
28-
@end
27+
NSString *const kFIRMessagingTestsReceiverSuiteName = @"com.messaging.test_receiverTest";
2928

3029
@interface FIRMessagingReceiverTest : XCTestCase
3130
@property(nonatomic, readonly, strong) FIRMessaging *messaging;
@@ -36,9 +35,15 @@ @implementation FIRMessagingReceiverTest
3635
- (void)setUp {
3736
[super setUp];
3837

39-
_messaging = [FIRMessaging messagingForTests];
40-
[[NSUserDefaults standardUserDefaults]
41-
removePersistentDomainForName:[NSBundle mainBundle].bundleIdentifier];
38+
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:kFIRMessagingTestsReceiverSuiteName];
39+
_messaging = [FIRMessagingTestUtilities messagingForTestsWithUserDefaults:defaults];
40+
}
41+
42+
- (void)tearDown {
43+
[self.messaging.messagingUserDefaults removePersistentDomainForName:kFIRMessagingTestsReceiverSuiteName];
44+
_messaging = nil;
45+
46+
[super tearDown];
4247
}
4348

4449
- (void)testUseMessagingDelegate {

Example/Messaging/Tests/FIRMessagingServiceTest.m

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#import "FIRMessaging.h"
2323
#import "FIRMessagingClient.h"
2424
#import "FIRMessagingPubSub.h"
25+
#import "FIRMessagingTestUtilities.h"
2526
#import "FIRMessagingTopicsCommon.h"
2627
#import "InternalHeaders/FIRMessagingInternalUtilities.h"
2728
#import "NSError+FIRMessaging.h"
@@ -31,8 +32,9 @@
3132
@"yUTTzK6dhIvLqzqqCSabaa4TQVM0pGTmF6r7tmMHPe6VYiGMHuCwJFgj5v97xl78sUNMLwuPPhoci8z_"
3233
@"QGlCrTbxCFGzEUfvA3fGpGgIVQU2W6";
3334

35+
NSString *const kFIRMessagingTestsServiceSuiteName = @"com.messaging.test_serviceTest";
36+
3437
@interface FIRMessaging () <FIRMessagingClientDelegate>
35-
+ (FIRMessaging *)messagingForTests;
3638
@property(nonatomic, readwrite, strong) FIRMessagingClient *client;
3739
@property(nonatomic, readwrite, strong) FIRMessagingPubSub *pubsub;
3840
@property(nonatomic, readwrite, strong) NSString *defaultFcmToken;
@@ -55,14 +57,17 @@ @interface FIRMessagingServiceTest : XCTestCase {
5557
@implementation FIRMessagingServiceTest
5658

5759
- (void)setUp {
58-
_messaging = [FIRMessaging messagingForTests];
60+
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:kFIRMessagingTestsServiceSuiteName];
61+
_messaging = [FIRMessagingTestUtilities messagingForTestsWithUserDefaults:defaults];
5962
_messaging.defaultFcmToken = kFakeToken;
6063
_mockPubSub = OCMPartialMock(_messaging.pubsub);
6164
[_mockPubSub setClient:nil];
6265
[super setUp];
6366
}
6467

6568
- (void)tearDown {
69+
[_messaging.messagingUserDefaults removePersistentDomainForName:kFIRMessagingTestsServiceSuiteName];
70+
_messaging = nil;
6671
[_mockPubSub stopMocking];
6772
[super tearDown];
6873
}

Example/Messaging/Tests/FIRMessagingTest.m

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,22 @@
2020

2121
#import <FirebaseCore/FIRAppInternal.h>
2222
#import <FirebaseInstanceID/FirebaseInstanceID.h>
23+
#import <FirebaseAnalyticsInterop/FIRAnalyticsInterop.h>
2324

2425
#import "FIRMessaging.h"
2526
#import "FIRMessaging_Private.h"
27+
#import "FIRMessagingTestUtilities.h"
2628

2729
extern NSString *const kFIRMessagingFCMTokenFetchAPNSOption;
2830

29-
@interface FIRInstanceID (ExposedForTest)
30-
31-
+ (FIRInstanceID *)instanceIDForTests;
32-
33-
@end
31+
/// The NSUserDefaults domain for testing.
32+
NSString *const kFIRMessagingDefaultsTestDomain = @"com.messaging.tests";
3433

3534
@interface FIRMessaging ()
36-
+ (FIRMessaging *)messagingForTests;
3735

3836
@property(nonatomic, readwrite, strong) NSString *defaultFcmToken;
3937
@property(nonatomic, readwrite, strong) NSData *apnsTokenData;
4038
@property(nonatomic, readwrite, strong) FIRInstanceID *instanceID;
41-
@property(nonatomic, readwrite, strong) NSUserDefaults *messagingUserDefaults;
4239

4340
// Direct Channel Methods
4441
- (void)updateAutomaticClientConnection;
@@ -59,8 +56,12 @@ @implementation FIRMessagingTest
5956

6057
- (void)setUp {
6158
[super setUp];
62-
_messaging = [FIRMessaging messagingForTests];
63-
_messaging.instanceID = [FIRInstanceID instanceIDForTests];
59+
60+
// Create the messaging instance with all the necessary dependencies.
61+
NSUserDefaults *defaults =
62+
[[NSUserDefaults alloc] initWithSuiteName:kFIRMessagingDefaultsTestDomain];
63+
_messaging = [FIRMessagingTestUtilities messagingForTestsWithUserDefaults:defaults];
64+
6465
_mockFirebaseApp = OCMClassMock([FIRApp class]);
6566
OCMStub([_mockFirebaseApp defaultApp]).andReturn(_mockFirebaseApp);
6667
_mockInstanceID = OCMPartialMock(self.messaging.instanceID);
@@ -69,12 +70,14 @@ - (void)setUp {
6970
}
7071

7172
- (void)tearDown {
73+
[self.messaging.messagingUserDefaults removePersistentDomainForName:kFIRMessagingDefaultsTestDomain];
7274
self.messaging.shouldEstablishDirectChannel = NO;
7375
self.messaging.defaultFcmToken = nil;
7476
self.messaging.apnsTokenData = nil;
7577
[_mockMessaging stopMocking];
7678
[_mockInstanceID stopMocking];
7779
[_mockFirebaseApp stopMocking];
80+
_messaging = nil;
7881
[super tearDown];
7982
}
8083

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright 2019 Google
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+
#import <Foundation/Foundation.h>
18+
19+
#import "FIRMessaging.h"
20+
21+
NS_ASSUME_NONNULL_BEGIN
22+
23+
@interface FIRMessaging (TestUtilities)
24+
// Surface the user defaults instance to clean up after tests.
25+
@property(nonatomic, strong) NSUserDefaults *messagingUserDefaults;
26+
@end
27+
28+
@interface FIRMessagingTestUtilities : NSObject
29+
30+
/**
31+
Creates an instance of FIRMessaging to use with tests, and will instantiate a new instance of
32+
InstanceID.
33+
34+
Note: This does not create a FIRApp instance and call `configureWithApp:`. If required, it's up to
35+
each test to do so.
36+
37+
@param userDefaults The user defaults to be used for Messaging.
38+
@return An instance of FIRMessaging with everything initialized.
39+
*/
40+
+ (FIRMessaging *)messagingForTestsWithUserDefaults:(NSUserDefaults *)userDefaults;
41+
42+
@end
43+
44+
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)