Quellcode durchsuchen

RC: Repo-relative imports and SwiftPM (#6015)

Paul Beusterien vor 5 Jahren
Ursprung
Commit
19b65ead65
25 geänderte Dateien mit 97 neuen und 40 gelöschten Zeilen
  1. 1 1
      FirebaseRemoteConfig/Sources/FIRConfigValue.m
  2. 1 1
      FirebaseRemoteConfig/Sources/FIRRemoteConfig.m
  3. 3 3
      FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h
  4. 1 1
      FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h
  5. 1 1
      FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h
  6. 1 1
      FirebaseRemoteConfig/Sources/RCNConfigContent.m
  7. 1 1
      FirebaseRemoteConfig/Sources/RCNConfigValue_Internal.h
  8. 1 1
      FirebaseRemoteConfig/Sources/RCNConstants3P.m
  9. 1 1
      FirebaseRemoteConfig/Sources/RCNUserDefaultsManager.m
  10. 2 2
      FirebaseRemoteConfig/Tests/FakeUtils/Bridging-Header.h
  11. 1 1
      FirebaseRemoteConfig/Tests/FakeUtils/FetchMocks.m
  12. 2 2
      FirebaseRemoteConfig/Tests/Unit/RCNConfigAnalyticsTest.m
  13. 1 1
      FirebaseRemoteConfig/Tests/Unit/RCNConfigContentTest.m
  14. 2 2
      FirebaseRemoteConfig/Tests/Unit/RCNConfigDBManagerTest.m
  15. 10 6
      FirebaseRemoteConfig/Tests/Unit/RCNConfigExperimentTest.m
  16. 1 1
      FirebaseRemoteConfig/Tests/Unit/RCNConfigSettingsTest.m
  17. 3 3
      FirebaseRemoteConfig/Tests/Unit/RCNConfigTest.m
  18. 2 2
      FirebaseRemoteConfig/Tests/Unit/RCNInstanceIDTest.m
  19. 3 3
      FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfig+FIRAppTest.m
  20. 19 3
      FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfigTest.m
  21. 1 1
      FirebaseRemoteConfig/Tests/Unit/RCNThrottlingTests.m
  22. 37 0
      Package.swift
  23. 1 0
      Tests/firebase-test/main.swift
  24. 1 1
      scripts/change_headers.swift
  25. 0 1
      scripts/check_imports.swift

+ 1 - 1
FirebaseRemoteConfig/Sources/FIRConfigValue.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigValue_Internal.h"

+ 1 - 1
FirebaseRemoteConfig/Sources/FIRRemoteConfig.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 #import "FirebaseABTesting/Sources/Public/FIRExperimentController.h"
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"

+ 3 - 3
FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h

@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
-#import <FirebaseRemoteConfig/RCNConfigFetch.h>
-#import <FirebaseRemoteConfig/RCNConfigSettings.h>
+#import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
+#import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
 #import "Interop/Analytics/Public/FIRAnalyticsInterop.h"
 
 @class FIROptions;

+ 1 - 1
FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h

@@ -16,7 +16,7 @@
 
 #import <Foundation/Foundation.h>
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "Interop/Analytics/Public/FIRAnalyticsInterop.h"
 
 @class FIROptions;

+ 1 - 1
FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h

@@ -16,7 +16,7 @@
 
 #import <Foundation/Foundation.h>
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 @class RCNConfigDBManager;
 

+ 1 - 1
FirebaseRemoteConfig/Sources/RCNConfigContent.m

@@ -16,7 +16,7 @@
 
 #import "FirebaseRemoteConfig/Sources/RCNConfigContent.h"
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDBManager.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDefines.h"

+ 1 - 1
FirebaseRemoteConfig/Sources/RCNConfigValue_Internal.h

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 @interface FIRRemoteConfigValue ()
 @property(nonatomic, readwrite, assign) FIRRemoteConfigSource source;

+ 1 - 1
FirebaseRemoteConfig/Sources/RCNConstants3P.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 /// Firebase Remote Config service default namespace.
 NSString *const FIRNamespaceGoogleMobilePlatform = @"firebase";

+ 1 - 1
FirebaseRemoteConfig/Sources/RCNUserDefaultsManager.m

@@ -15,8 +15,8 @@
  */
 
 #import "FirebaseRemoteConfig/Sources/RCNUserDefaultsManager.h"
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 
 static NSString *const kRCNGroupPrefix = @"group";
 static NSString *const kRCNGroupSuffix = @"firebase";

+ 2 - 2
FirebaseRemoteConfig/Tests/FakeUtils/Bridging-Header.h

@@ -12,6 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig_Private.h>
-#import "FetchMocks.h"
+#import "FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
+#import "FirebaseRemoteConfig/Tests/FakeUtils/FetchMocks.h"

+ 1 - 1
FirebaseRemoteConfig/Tests/FakeUtils/FetchMocks.m

@@ -14,8 +14,8 @@
 
 #import <OCMock/OCMock.h>
 
-#import "FetchMocks.h"
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
+#import "FirebaseRemoteConfig/Tests/FakeUtils/FetchMocks.h"
 
 @interface RCNConfigFetch (ExposedForTest)
 - (void)refreshInstallationsTokenWithCompletionHandler:

+ 2 - 2
FirebaseRemoteConfig/Tests/Unit/RCNConfigAnalyticsTest.m

@@ -15,9 +15,9 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import <OCMock/OCMock.h>
-#import "RCNConfigAnalytics.h"
+//#import "RCNConfigAnalytics.h"
 
 @interface RCNConfigAnalyticsTest : XCTestCase {
   id _mockAnalytics;

+ 1 - 1
FirebaseRemoteConfig/Tests/Unit/RCNConfigContentTest.m

@@ -15,8 +15,8 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import <OCMock/OCMock.h>
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
 #import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigContent.h"

+ 2 - 2
FirebaseRemoteConfig/Tests/Unit/RCNConfigDBManagerTest.m

@@ -15,10 +15,10 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import "sqlite3.h"
+#import <sqlite3.h>
 
-#import <OCMock/OCMock.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"

+ 10 - 6
FirebaseRemoteConfig/Tests/Unit/RCNConfigExperimentTest.m

@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-#import "FirebaseRemoteConfig/Sources/RCNConfigExperiment.h"
-
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
+
+#import "FirebaseRemoteConfig/Sources/RCNConfigExperiment.h"
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDBManager.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDefines.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigValue_Internal.h"
@@ -28,7 +29,6 @@
 #import "FirebaseABTesting/Sources/Private/ABTExperimentPayload.h"
 #import "FirebaseABTesting/Sources/Public/FIRExperimentController.h"
 
-#import <OCMock/OCMock.h>
 #import "Interop/Analytics/Public/FIRAnalyticsInterop.h"
 
 // Surface the internal FIRExperimentController initializer.
@@ -253,8 +253,12 @@
 }
 
 + (NSData *)payloadDataFromTestFile {
-  NSString *testJsonDataFilePath =
-      [[NSBundle bundleForClass:[self class]] pathForResource:@"TestABTPayload" ofType:@"txt"];
+#if SWIFT_PACKAGE
+  NSBundle *bundle = Firebase_RemoteConfigUnit_SWIFTPM_MODULE_BUNDLE();
+#else
+  NSBundle *bundle = [NSBundle bundleForClass:[self class]];
+#endif
+  NSString *testJsonDataFilePath = [bundle pathForResource:@"TestABTPayload" ofType:@"txt"];
   NSError *readTextError = nil;
   NSString *fileText = [[NSString alloc] initWithContentsOfFile:testJsonDataFilePath
                                                        encoding:NSUTF8StringEncoding

+ 1 - 1
FirebaseRemoteConfig/Tests/Unit/RCNConfigSettingsTest.m

@@ -15,8 +15,8 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import <OCMock/OCMock.h>
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDBManager.h"

+ 3 - 3
FirebaseRemoteConfig/Tests/Unit/RCNConfigTest.m

@@ -15,10 +15,10 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import <FirebaseInstanceID/FIRInstanceID+Private.h>
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
-#import <OCMock/OCMock.h>
+//#import <FirebaseInstanceID/FIRInstanceID+Private.h>
+//#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigContent.h"

+ 2 - 2
FirebaseRemoteConfig/Tests/Unit/RCNInstanceIDTest.m

@@ -15,17 +15,17 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
 #import "FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h"
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDBManager.h"
 #import "FirebaseRemoteConfig/Sources/RCNUserDefaultsManager.h"
 
 #import "FirebaseRemoteConfig/Tests/Unit/RCNTestUtilities.h"
 
-#import <OCMock/OCMock.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
 #import "GoogleUtilities/NSData+zlib/Private/GULNSDataInternal.h"

+ 3 - 3
FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfig+FIRAppTest.m

@@ -15,12 +15,12 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
 //#import "FIRRemoteConfig+FIRApp.h"
-#import <OCMock/OCMock.h>
-#import "FIRRemoteConfig_Private.h"
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
-#import "third_party/firebase/ios/Releases/FirebaseCore/Tests/FIRTestCase.h"
+#import "FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h"
+//#import "third_party/firebase/ios/Releases/FirebaseCore/Tests/FIRTestCase.h"
 
 @interface RCNRemoteConfig_FIRAppTest : FIRTestCase
 

+ 19 - 3
FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfigTest.m

@@ -15,18 +15,18 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMStubRecorder.h"
+#import "OCMock.h"
 
-#import <FirebaseRemoteConfig/FIRRemoteConfig.h>
 #import "FirebaseRemoteConfig/Sources/Private/FIRRemoteConfig_Private.h"
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
+#import "FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigConstants.h"
 #import "FirebaseRemoteConfig/Sources/RCNConfigDBManager.h"
 #import "FirebaseRemoteConfig/Sources/RCNUserDefaultsManager.h"
 
 #import "FirebaseRemoteConfig/Tests/Unit/RCNTestUtilities.h"
 
-#import <OCMock/OCMStubRecorder.h>
-#import <OCMock/OCMock.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 #import "GoogleUtilities/NSData+zlib/Private/GULNSDataInternal.h"
 
@@ -1143,10 +1143,22 @@ static NSString *UTCToLocal(NSString *utcTime) {
   return [dateFormatter stringFromDate:date];
 }
 
+#if SWIFT_PACKAGE
+- (NSDictionary *)getSPMDefaults {
+  NSBundle *bundle = Firebase_RemoteConfigUnit_SWIFTPM_MODULE_BUNDLE();
+  NSString *plistFile = [bundle pathForResource:@"Defaults-testInfo" ofType:@"plist"];
+  return [[NSDictionary alloc] initWithContentsOfFile:plistFile];
+}
+#endif
+
 - (void)testSetDefaultsFromPlist {
   for (int i = 0; i < RCNTestRCNumTotalInstances; i++) {
     FIRRemoteConfig *config = _configInstances[i];
+#if SWIFT_PACKAGE
+    [config setDefaults:[self getSPMDefaults]];
+#else
     [config setDefaultsFromPlistFileName:@"Defaults-testInfo"];
+#endif
     XCTAssertEqualObjects(_configInstances[i][@"lastCheckTime"].stringValue,
                           UTCToLocal(@"2016-02-28 18:33:31"));
     XCTAssertEqual(_configInstances[i][@"isPaidUser"].boolValue, YES);
@@ -1173,8 +1185,12 @@ static NSString *UTCToLocal(NSString *utcTime) {
 - (void)testSetDefaultsAndNamespaceFromPlist {
   for (int i = 0; i < RCNTestRCNumTotalInstances; i++) {
     if (i == RCNTestRCInstanceDefault) {
+#if SWIFT_PACKAGE
+      [_configInstances[i] setDefaults:[self getSPMDefaults] namespace:RCNTestsPerfNamespace];
+#else
       [_configInstances[i] setDefaultsFromPlistFileName:@"Defaults-testInfo"
                                               namespace:RCNTestsPerfNamespace];
+#endif
       XCTAssertEqualObjects([_configInstances[i] configValueForKey:@"lastCheckTime"
                                                          namespace:RCNTestsPerfNamespace]
                                 .stringValue,

+ 1 - 1
FirebaseRemoteConfig/Tests/Unit/RCNThrottlingTests.m

@@ -15,6 +15,7 @@
  */
 
 #import <XCTest/XCTest.h>
+#import "OCMock.h"
 
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigFetch.h"
 #import "FirebaseRemoteConfig/Sources/Private/RCNConfigSettings.h"
@@ -23,7 +24,6 @@
 #import "FirebaseRemoteConfig/Sources/RCNConfigExperiment.h"
 #import "FirebaseRemoteConfig/Tests/Unit/RCNTestUtilities.h"
 
-#import <OCMock/OCMock.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 
 @interface RCNThrottlingTests : XCTestCase {

+ 37 - 0
Package.swift

@@ -95,6 +95,7 @@ let package = Package(
         "FirebaseCore",
         "FirebaseInstallations",
         // "FirebaseInstanceID",
+        "FirebaseRemoteConfig",
         "FirebaseStorage",
         "FirebaseStorageSwift",
         "GoogleDataTransport",
@@ -391,6 +392,42 @@ let package = Package(
         .headerSearchPath("../"),
       ]
     ),
+    .target(
+      name: "FirebaseRemoteConfig",
+      dependencies: [
+        "FirebaseCore",
+        "FirebaseABTesting",
+        "FirebaseInstallations",
+        "GoogleUtilities_NSData",
+      ],
+      path: "FirebaseRemoteConfig/Sources",
+      publicHeadersPath: "Public",
+      cSettings: [
+        .headerSearchPath("../../"),
+        .define("FIRRemoteConfig_VERSION", to: "0.0.1"), // TODO: Fix version
+      ]
+    ),
+    .testTarget(
+      name: "RemoteConfigUnit",
+      dependencies: ["FirebaseRemoteConfig", "OCMock"],
+      path: "FirebaseRemoteConfig/Tests/Unit",
+      exclude: [
+        // Need to be evaluated/ported to RC V2.
+        "RCNConfigAnalyticsTest.m",
+        "RCNConfigSettingsTest.m",
+        "RCNConfigTest.m",
+        "RCNRemoteConfig+FIRAppTest.m",
+        "RCNThrottlingTests.m",
+      ],
+      resources: [
+        .process("SecondApp-GoogleService-Info.plist"),
+        .process("Defaults-testInfo.plist"),
+        .process("TestABTPayload.txt"),
+      ],
+      cSettings: [
+        .headerSearchPath("../../.."),
+      ]
+    ),
     .target(
       name: "FirebaseStorage",
       dependencies: [

+ 1 - 0
Tests/firebase-test/main.swift

@@ -21,6 +21,7 @@ import FirebaseCrashlytics
 import FirebaseFunctions
 import FirebaseInstallations
 // import FirebaseInstanceID
+import FirebaseRemoteConfig
 import FirebaseStorage
 import FirebaseStorageSwift
 import GoogleDataTransport

+ 1 - 1
scripts/change_headers.swift

@@ -20,7 +20,7 @@
 import Foundation
 
 // Update with directories in which to find headers.
-let findHeaders = ["FirebaseABTesting"]
+let findHeaders = ["FirebaseRemoteConfig"]
 
 // Update with directories in which to change imports.
 let changeImports = ["GoogleUtilities", "FirebaseAuth", "FirebaseCore", "Firebase",

+ 0 - 1
scripts/check_imports.swift

@@ -44,7 +44,6 @@ let skipDirPatterns = ["/Sample/", "/Pods/", "FirebaseStorage/Tests/Integration"
     "FirebaseInstallations/Source/Tests/Unit/",
     "Firebase/InstanceID",
     "FirebaseMessaging",
-    "FirebaseRemoteConfig",
     "Firestore",
     "GoogleUtilitiesComponents",
   ]