mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-22 08:27:31 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
63
mobile/ios/AccountTests/FirefoxAccountTests.swift
Normal file
63
mobile/ios/AccountTests/FirefoxAccountTests.swift
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
@testable import Account
|
||||
import Shared
|
||||
import UIKit
|
||||
|
||||
import XCTest
|
||||
|
||||
class FirefoxAccountTests: XCTestCase {
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
continueAfterFailure = false
|
||||
}
|
||||
|
||||
func testSerialization() {
|
||||
let ogPushSub = PushSubscription(channelID: "channel-id",
|
||||
endpoint: URL(string: "https://mozilla.com")!,
|
||||
p256dhPrivateKey: "private-key",
|
||||
p256dhPublicKey: "public-key",
|
||||
authKey: "auth-key")
|
||||
|
||||
let d: [String: Any] = [
|
||||
"version": 1,
|
||||
"configurationLabel": FirefoxAccountConfigurationLabel.production.rawValue,
|
||||
"email": "testtest@test.com",
|
||||
"uid": "uid",
|
||||
"deviceRegistration": FxADeviceRegistration(id: "bogus-device", version: 0, lastRegistered: Date.now()),
|
||||
"pushRegistration": PushRegistration(uaid: "bogus-device-uaid", secret: "secret", subscription: ogPushSub),
|
||||
]
|
||||
|
||||
let account1 = FirefoxAccount(
|
||||
configuration: FirefoxAccountConfigurationLabel.production.toConfiguration(),
|
||||
email: d["email"] as! String,
|
||||
uid: d["uid"] as! String,
|
||||
deviceRegistration: (d["deviceRegistration"] as! FxADeviceRegistration),
|
||||
stateKeyLabel: Bytes.generateGUID(),
|
||||
state: SeparatedState())
|
||||
|
||||
account1.pushRegistration = d["pushRegistration"] as? PushRegistration
|
||||
|
||||
let d1 = account1.dictionary()
|
||||
|
||||
let account2 = FirefoxAccount.fromDictionary(d1)
|
||||
XCTAssertNotNil(account2)
|
||||
let d2 = account2!.dictionary()
|
||||
|
||||
for (k, v) in d {
|
||||
// Skip version, which is an Int.
|
||||
if let s = v as? String {
|
||||
XCTAssertEqual(s, d1[k] as? String, "Value for '\(k)' does not agree for manually created account.")
|
||||
XCTAssertEqual(s, d2[k] as? String, "Value for '\(k)' does not agree for deserialized account.")
|
||||
}
|
||||
}
|
||||
|
||||
if let pubSub = account2?.pushRegistration?.defaultSubscription {
|
||||
XCTAssertEqual(pubSub, ogPushSub)
|
||||
} else {
|
||||
XCTFail("PushSubscription did not get decoded")
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue