feat(RES-34): Fix plist font filename (#14)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Reviewed-on: #14
This commit is contained in:
2025-05-05 09:53:05 +02:00
parent 8442c89944
commit 756de4f1de
96 changed files with 3028 additions and 2852 deletions

View File

@ -84,7 +84,7 @@ final class AnalyticsDefinitionTests: XCTestCase {
name: "Ecran un",
action: "",
category: "",
params: []
params: [:]
)
}
"""
@ -127,7 +127,7 @@ final class AnalyticsDefinitionTests: XCTestCase {
name: "Ecran un",
action: "",
category: "",
params: []
params: [:]
)
}
"""

View File

@ -5,6 +5,8 @@
// Created by Thibaut Schmitt on 06/09/2022.
//
// CPD-OFF
import Foundation
import XCTest
import ToolCore
@ -51,20 +53,24 @@ final class AnalyticsGeneratorTests: XCTestCase {
]
// When
AnalyticsGenerator.targets = [TrackerType.firebase]
let extensionContent = AnalyticsGenerator.getExtensionContent(sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics")
let extensionContent = AnalyticsGenerator.getExtensionContent(
targets: [TrackerType.firebase],
sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics"
)
// Expect Analytics
let expect = """
// Generated by ResgenSwift.Analytics 1.2
// Generated by ResgenSwift.Analytics \(ResgenSwiftVersion)
import Firebase
import FirebaseAnalytics
// MARK: - Protocol
protocol AnalyticsManagerProtocol {
func logScreen(name: String, path: String)
func logEvent(
name: String,
@ -77,9 +83,10 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Firebase
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
func logScreen(name: String, path: String) {
var parameters = [
AnalyticsParameterScreenName: name
AnalyticsParameterScreenName: name as NSObject
]
Analytics.logEvent(
@ -94,19 +101,25 @@ final class AnalyticsGeneratorTests: XCTestCase {
category: String,
params: [String: Any]?
) {
var parameters: [String:Any] = [
"action": action,
"category": category,
var parameters: [String:NSObject] = [
"action": action as NSObject,
"category": category as NSObject,
]
if let supplementaryParameters = params {
parameters.merge(supplementaryParameters) { (origin, new) -> Any in
return origin
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
key == newKey
}) {
continue
}
parameters[newKey] = newValue as? NSObject
}
}
Analytics.logEvent(
name,
name.replacingOccurrences(of: [" "], with: "_"),
parameters: parameters
)
}
@ -115,8 +128,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Manager
class AnalyticsManager {
static var shared = AnalyticsManager()
// MARK: - Properties
var managers: [AnalyticsManagerProtocol] = []
@ -132,15 +146,15 @@ final class AnalyticsGeneratorTests: XCTestCase {
func configure() {
managers.append(FirebaseAnalyticsManager())
}
private func logScreen(name: String, path: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logScreen(name: name, path: path)
}
}
private func logEvent(
name: String,
action: String,
@ -148,7 +162,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
params: [String: Any]?
) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logEvent(
name: name,
@ -173,7 +187,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
name: "s1 def two",
action: "",
category: "",
params: []
params: [:]
)
}
@ -216,20 +230,23 @@ final class AnalyticsGeneratorTests: XCTestCase {
]
// When
AnalyticsGenerator.targets = [TrackerType.matomo]
let extensionContent = AnalyticsGenerator.getExtensionContent(sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics")
let extensionContent = AnalyticsGenerator.getExtensionContent(
targets: [TrackerType.matomo],
sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics"
)
// Expect Analytics
let expect = """
// Generated by ResgenSwift.Analytics 1.2
// Generated by ResgenSwift.Analytics \(ResgenSwiftVersion)
import MatomoTracker
// MARK: - Protocol
protocol AnalyticsManagerProtocol {
func logScreen(name: String, path: String)
func logEvent(
name: String,
@ -242,7 +259,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Matomo
class MatomoAnalyticsManager: AnalyticsManagerProtocol {
// MARK: - Properties
private var tracker: MatomoTracker
@ -256,11 +273,11 @@ final class AnalyticsGeneratorTests: XCTestCase {
siteId: siteId,
baseURL: URL(string: url)!
)
#if DEBUG
tracker.dispatchInterval = 5
#endif
#if DEBUG
tracker.logger = DefaultLogger(minLevel: .verbose)
#endif
@ -268,7 +285,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
debugPrint("[Matomo service] Configured with content base: \\(tracker.contentBase?.absoluteString ?? "-")")
debugPrint("[Matomo service] Opt out: \\(tracker.isOptedOut)")
}
// MARK: - Methods
func logScreen(name: String, path: String) {
@ -289,7 +306,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
params: [String: Any]?
) {
guard !tracker.isOptedOut else { return }
tracker.track(
eventWithCategory: category,
action: action,
@ -303,8 +320,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Manager
class AnalyticsManager {
static var shared = AnalyticsManager()
// MARK: - Properties
var managers: [AnalyticsManagerProtocol] = []
@ -325,15 +343,15 @@ final class AnalyticsGeneratorTests: XCTestCase {
)
)
}
private func logScreen(name: String, path: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logScreen(name: name, path: path)
}
}
private func logEvent(
name: String,
action: String,
@ -341,7 +359,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
params: [String: Any]?
) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logEvent(
name: name,
@ -366,7 +384,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
name: "s1 def two",
action: "test",
category: "test",
params: []
params: [:]
)
}
@ -379,7 +397,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
)
}
}
"""
if extensionContent != expect {
@ -409,21 +427,25 @@ final class AnalyticsGeneratorTests: XCTestCase {
]
// When
AnalyticsGenerator.targets = [TrackerType.matomo, TrackerType.firebase]
let extensionContent = AnalyticsGenerator.getExtensionContent(sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics")
let extensionContent = AnalyticsGenerator.getExtensionContent(
targets: [TrackerType.matomo, TrackerType.firebase],
sections: [sectionOne, sectionTwo, sectionThree],
tags: ["ios", "iosonly"],
staticVar: false,
extensionName: "GenAnalytics"
)
// Expect Analytics
let expect = """
// Generated by ResgenSwift.Analytics 1.2
// Generated by ResgenSwift.Analytics \(ResgenSwiftVersion)
import MatomoTracker
import Firebase
import FirebaseAnalytics
// MARK: - Protocol
protocol AnalyticsManagerProtocol {
func logScreen(name: String, path: String)
func logEvent(
name: String,
@ -436,7 +458,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Matomo
class MatomoAnalyticsManager: AnalyticsManagerProtocol {
// MARK: - Properties
private var tracker: MatomoTracker
@ -450,11 +472,11 @@ final class AnalyticsGeneratorTests: XCTestCase {
siteId: siteId,
baseURL: URL(string: url)!
)
#if DEBUG
tracker.dispatchInterval = 5
#endif
#if DEBUG
tracker.logger = DefaultLogger(minLevel: .verbose)
#endif
@ -462,13 +484,13 @@ final class AnalyticsGeneratorTests: XCTestCase {
debugPrint("[Matomo service] Configured with content base: \\(tracker.contentBase?.absoluteString ?? "-")")
debugPrint("[Matomo service] Opt out: \\(tracker.isOptedOut)")
}
// MARK: - Methods
func logScreen(name: String, path: String) {
guard !tracker.isOptedOut else { return }
guard let trackerUrl = tracker.contentBase?.absoluteString else { return }
let urlString = URL(string: "\\(trackerUrl)" + "/" + "\\(path)" + "iOS")
tracker.track(
view: [name],
@ -483,7 +505,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
params: [String: Any]?
) {
guard !tracker.isOptedOut else { return }
tracker.track(
eventWithCategory: category,
action: action,
@ -493,13 +515,13 @@ final class AnalyticsGeneratorTests: XCTestCase {
)
}
}
// MARK: - Firebase
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
func logScreen(name: String, path: String) {
var parameters = [
AnalyticsParameterScreenName: name
AnalyticsParameterScreenName: name as NSObject
]
Analytics.logEvent(
@ -514,19 +536,25 @@ final class AnalyticsGeneratorTests: XCTestCase {
category: String,
params: [String: Any]?
) {
var parameters: [String:Any] = [
"action": action,
"category": category,
var parameters: [String:NSObject] = [
"action": action as NSObject,
"category": category as NSObject,
]
if let supplementaryParameters = params {
parameters.merge(supplementaryParameters) { (origin, new) -> Any in
return origin
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
key == newKey
}) {
continue
}
parameters[newKey] = newValue as? NSObject
}
}
Analytics.logEvent(
name,
name.replacingOccurrences(of: [" "], with: "_"),
parameters: parameters
)
}
@ -535,8 +563,9 @@ final class AnalyticsGeneratorTests: XCTestCase {
// MARK: - Manager
class AnalyticsManager {
static var shared = AnalyticsManager()
// MARK: - Properties
var managers: [AnalyticsManagerProtocol] = []
@ -558,7 +587,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
)
managers.append(FirebaseAnalyticsManager())
}
private func logScreen(name: String, path: String) {
guard isEnabled else { return }
@ -566,7 +595,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
manager.logScreen(name: name, path: path)
}
}
private func logEvent(
name: String,
action: String,
@ -574,7 +603,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
params: [String: Any]?
) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logEvent(
name: name,
@ -599,7 +628,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
name: "s1 def two",
action: "test",
category: "test",
params: []
params: [:]
)
}
@ -612,7 +641,7 @@ final class AnalyticsGeneratorTests: XCTestCase {
)
}
}
"""
if extensionContent != expect {
@ -621,3 +650,5 @@ final class AnalyticsGeneratorTests: XCTestCase {
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
}
// CPD-ON