@@ -56,6 +56,45 @@ public class LoginFields: NSObject {
5656
5757 return loginFields
5858 }
59+
60+ /// Using a convenience initializer for its Objective-C usage in unit tests.
61+ convenience init ( username: String ,
62+ password: String ,
63+ siteAddress: String ,
64+ multifactorCode: String ,
65+ nonceInfo: SocialLogin2FANonceInfo ? ,
66+ nonceUserID: Int ,
67+ restrictToWPCom: Bool ,
68+ emailAddress: String ,
69+ meta: LoginFieldsMeta ,
70+ storedCredentials: SafariStoredCredentials ? ) {
71+ self . init ( )
72+ self . username = username
73+ self . password = password
74+ self . siteAddress = siteAddress
75+ self . multifactorCode = multifactorCode
76+ self . nonceInfo = nonceInfo
77+ self . nonceUserID = nonceUserID
78+ self . restrictToWPCom = restrictToWPCom
79+ self . emailAddress = emailAddress
80+ self . meta = meta
81+ self . storedCredentials = storedCredentials
82+ }
83+ }
84+
85+ extension LoginFields {
86+ func copy( ) -> LoginFields {
87+ . init( username: username,
88+ password: password,
89+ siteAddress: siteAddress,
90+ multifactorCode: multifactorCode,
91+ nonceInfo: nonceInfo,
92+ nonceUserID: nonceUserID,
93+ restrictToWPCom: restrictToWPCom,
94+ emailAddress: emailAddress,
95+ meta: meta. copy ( ) ,
96+ storedCredentials: storedCredentials)
97+ }
5998}
6099
61100/// A helper class for storing safari saved password information.
@@ -116,4 +155,44 @@ public class LoginFieldsMeta: NSObject {
116155 var googleUser : GIDGoogleUser ?
117156
118157 var appleUser : AppleUser ?
158+
159+ init ( emailMagicLinkSource: EmailMagicLinkSource ? = nil ,
160+ jetpackLogin: Bool = false ,
161+ userIsDotCom: Bool = true ,
162+ passwordless: Bool = false ,
163+ xmlrpcURL: NSURL ? = nil ,
164+ siteInfo: WordPressComSiteInfo ? = nil ,
165+ requiredMultifactor: Bool = false ,
166+ socialService: SocialServiceName ? = nil ,
167+ socialServiceIDToken: String ? = nil ,
168+ googleUser: GIDGoogleUser ? = nil ,
169+ appleUser: AppleUser ? = nil ) {
170+ self . emailMagicLinkSource = emailMagicLinkSource
171+ self . jetpackLogin = jetpackLogin
172+ self . userIsDotCom = userIsDotCom
173+ self . passwordless = passwordless
174+ self . xmlrpcURL = xmlrpcURL
175+ self . siteInfo = siteInfo
176+ self . requiredMultifactor = requiredMultifactor
177+ self . socialService = socialService
178+ self . socialServiceIDToken = socialServiceIDToken
179+ self . googleUser = googleUser
180+ self . appleUser = appleUser
181+ }
182+ }
183+
184+ extension LoginFieldsMeta {
185+ func copy( ) -> LoginFieldsMeta {
186+ . init( emailMagicLinkSource: emailMagicLinkSource,
187+ jetpackLogin: jetpackLogin,
188+ userIsDotCom: userIsDotCom,
189+ passwordless: passwordless,
190+ xmlrpcURL: xmlrpcURL,
191+ siteInfo: siteInfo,
192+ requiredMultifactor: requiredMultifactor,
193+ socialService: socialService,
194+ socialServiceIDToken: socialServiceIDToken,
195+ googleUser: googleUser,
196+ appleUser: appleUser)
197+ }
119198}
0 commit comments