From f16e98dd9866876fd37ef4cd2703383feeae6a55 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Thu, 14 Nov 2024 21:30:14 +1300 Subject: [PATCH] Append "+testing" to feedback form email for Automatticians --- WordPress/Classes/Utility/ZendeskUtils.swift | 34 ++++++++++++++++-- .../Support/SupportTableViewController.swift | 3 +- WordPress/WordPress.xcodeproj/project.pbxproj | 4 +++ .../ZendeskUtilsTests+A8CEmail.swift | 35 +++++++++++++++++++ 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 WordPress/WordPressTest/ZendeskUtilsTests+A8CEmail.swift diff --git a/WordPress/Classes/Utility/ZendeskUtils.swift b/WordPress/Classes/Utility/ZendeskUtils.swift index 696a45881647..22bc6cff823a 100644 --- a/WordPress/Classes/Utility/ZendeskUtils.swift +++ b/WordPress/Classes/Utility/ZendeskUtils.swift @@ -42,7 +42,6 @@ protocol ZendeskUtilsProtocol { /// as well as displaying views for the Help Center, new tickets, and ticket list. /// @objc class ZendeskUtils: NSObject, ZendeskUtilsProtocol { - // MARK: - Public Properties static var sharedInstance: ZendeskUtils = ZendeskUtils(contextManager: ContextManager.shared) @@ -63,7 +62,15 @@ protocol ZendeskUtilsProtocol { private var sourceTag: WordPressSupportSourceTag? private var userName: String? - private var userEmail: String? + private var userEmail: String? { + set { + _userEmail = newValue.map(ZendeskUtils.a8cTestEmail(_:)) + } + get { + _userEmail + } + } + private var _userEmail: String? private var userNameConfirmed = false private var deviceID: String? @@ -1201,3 +1208,26 @@ extension ZendeskUtils { } } } + +extension ZendeskUtils { + static var automatticEmails = ["@automattic.com", "@a8c.com"] + + /// Insert "+testing" to Automattic email address. + /// - SeeAlso: https://github.com/wordpress-mobile/WordPress-iOS/issues/23794 + static func a8cTestEmail(_ email: String) -> String { + guard let suffix = ZendeskUtils.automatticEmails.first(where: { email.lowercased().hasSuffix($0) }) else { + return email + } + + let atSymbolIndex = email.index(email.endIndex, offsetBy: -suffix.count) + + // Do nothing if the email is already an "alias email". + if email[email.startIndex..