From ac10633449eed554954da79d265ad4b2b9fe091f Mon Sep 17 00:00:00 2001 From: pikciu Date: Thu, 11 Apr 2024 17:46:58 +0200 Subject: [PATCH] fix issue: #8427 copy seedFilePath --- Realm/RLMRealmConfiguration.mm | 1 + Realm/Tests/RealmConfigurationTests.mm | 10 ++++++++++ RealmSwift/RealmConfiguration.swift | 1 + RealmSwift/Tests/RealmConfigurationTests.swift | 5 ++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Realm/RLMRealmConfiguration.mm b/Realm/RLMRealmConfiguration.mm index bfeeadace7..685431a4d3 100644 --- a/Realm/RLMRealmConfiguration.mm +++ b/Realm/RLMRealmConfiguration.mm @@ -132,6 +132,7 @@ - (instancetype)copyWithZone:(NSZone *)zone { configuration->_migrationObjectClass = _migrationObjectClass; configuration->_initialSubscriptions = _initialSubscriptions; configuration->_rerunOnOpen = _rerunOnOpen; + configuration->_seedFilePath = _seedFilePath; return configuration; } diff --git a/Realm/Tests/RealmConfigurationTests.mm b/Realm/Tests/RealmConfigurationTests.mm index 3766511ae0..69390c6de4 100644 --- a/Realm/Tests/RealmConfigurationTests.mm +++ b/Realm/Tests/RealmConfigurationTests.mm @@ -231,4 +231,14 @@ - (void)testDefaultRealmUsesDefaultConfiguration { XCTAssertTrue(migrationCalled); } +-(void)testCopyConfiguration { + RLMRealmConfiguration *configuration = [[RLMRealmConfiguration alloc] init]; + configuration.fileURL = [NSURL fileURLWithPath:@"/dev/null"]; + configuration.seedFilePath = [NSURL fileURLWithPath:@"/dev/null/seed"]; + + RLMRealmConfiguration *copy = [configuration copy]; + XCTAssertEqualObjects(copy.fileURL, [NSURL fileURLWithPath:@"/dev/null"]); + XCTAssertEqualObjects(copy.seedFilePath, [NSURL fileURLWithPath:@"/dev/null/seed"]); +} + @end diff --git a/RealmSwift/RealmConfiguration.swift b/RealmSwift/RealmConfiguration.swift index 226d82193f..5e7486c174 100644 --- a/RealmSwift/RealmConfiguration.swift +++ b/RealmSwift/RealmConfiguration.swift @@ -342,6 +342,7 @@ extension Realm { configuration.initialSubscriptions = rlmConfiguration.initialSubscriptions.map(ObjectiveCSupport.convert(block:)) configuration.rerunOnOpen = rlmConfiguration.rerunOnOpen + configuration.seedFilePath = rlmConfiguration.seedFilePath return configuration } diff --git a/RealmSwift/Tests/RealmConfigurationTests.swift b/RealmSwift/Tests/RealmConfigurationTests.swift index 062415a319..309fe3720b 100644 --- a/RealmSwift/Tests/RealmConfigurationTests.swift +++ b/RealmSwift/Tests/RealmConfigurationTests.swift @@ -34,10 +34,13 @@ class RealmConfigurationTests: TestCase { func testSetDefaultConfiguration() { let fileURL = Realm.Configuration.defaultConfiguration.fileURL - let configuration = Realm.Configuration(fileURL: URL(fileURLWithPath: "/dev/null")) + let seedFileURL = URL(fileURLWithPath: "/dev/null/seed") + let configuration = Realm.Configuration(fileURL: URL(fileURLWithPath: "/dev/null"), seedFilePath: seedFileURL) Realm.Configuration.defaultConfiguration = configuration XCTAssertEqual(Realm.Configuration.defaultConfiguration.fileURL, URL(fileURLWithPath: "/dev/null")) + XCTAssertEqual(Realm.Configuration.defaultConfiguration.seedFilePath, seedFileURL) Realm.Configuration.defaultConfiguration.fileURL = fileURL + Realm.Configuration.defaultConfiguration.seedFilePath = nil } func testCannotSetMutuallyExclusiveProperties() {