mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 07:18:39 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
109
mobile/ios/ClientTests/SyncStatusResolverTests.swift
Normal file
109
mobile/ios/ClientTests/SyncStatusResolverTests.swift
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
/* 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 Client
|
||||
@testable import Sync
|
||||
|
||||
import Shared
|
||||
import Storage
|
||||
import XCTest
|
||||
|
||||
private class RandomError: MaybeErrorType {
|
||||
var description = "random_error"
|
||||
}
|
||||
|
||||
class SyncStatusResolverTests: XCTestCase {
|
||||
|
||||
private func mockStatsForCollection(collection: String) -> SyncEngineStatsSession {
|
||||
return SyncEngineStatsSession(collection: collection)
|
||||
}
|
||||
|
||||
func testAllCompleted() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .completed(mockStatsForCollection(collection: "tabs"))),
|
||||
("clients", .completed(mockStatsForCollection(collection: "clients")))
|
||||
]
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.good)
|
||||
}
|
||||
|
||||
func testAllCompletedExceptOneDisabledRemotely() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .completed(mockStatsForCollection(collection: "tabs"))),
|
||||
("clients", .notStarted(.engineRemotelyNotEnabled(collection: "clients")))
|
||||
]
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.good)
|
||||
}
|
||||
|
||||
func testAllCompletedExceptNotStartedBecauseNoAccount() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .completed(mockStatsForCollection(collection: "tabs"))),
|
||||
("clients", .notStarted(.noAccount))
|
||||
]
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.warning(message: Strings.FirefoxSyncOfflineTitle))
|
||||
}
|
||||
|
||||
func testAllCompletedExceptNotStartedBecauseOffline() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .completed(mockStatsForCollection(collection: "tabs"))),
|
||||
("clients", .notStarted(.offline))
|
||||
]
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.bad(message: Strings.FirefoxSyncOfflineTitle))
|
||||
}
|
||||
|
||||
func testOfflineAndNoAccount() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .notStarted(.noAccount)),
|
||||
("clients", .notStarted(.offline))
|
||||
]
|
||||
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.bad(message: Strings.FirefoxSyncOfflineTitle))
|
||||
}
|
||||
|
||||
func testAllPartial() {
|
||||
let results: EngineResults = [
|
||||
("tabs", .partial(SyncEngineStatsSession(collection: "tabs"))),
|
||||
("clients", .partial(SyncEngineStatsSession(collection: "clients")))
|
||||
]
|
||||
let maybeResults = Maybe(success: results)
|
||||
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
XCTAssertTrue(resolver.resolveResults() == SyncDisplayState.good)
|
||||
}
|
||||
|
||||
func testBookmarkMergeError() {
|
||||
let maybeResults: Maybe<EngineResults> = Maybe(failure: BookmarksMergeError())
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
let expected = SyncDisplayState.warning(message: String(format: Strings.FirefoxSyncPartialTitle, Strings.localizedStringForSyncComponent("bookmarks") ?? ""))
|
||||
XCTAssertTrue(resolver.resolveResults() == expected)
|
||||
}
|
||||
|
||||
func testBufferInvalidError() {
|
||||
let maybeResults: Maybe<EngineResults> = Maybe(failure: BufferInvalidError(inconsistencies: [:], validationDuration: 0))
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
let expected = SyncDisplayState.warning(message: String(format: Strings.FirefoxSyncPartialTitle, Strings.localizedStringForSyncComponent("bookmarks") ?? ""))
|
||||
XCTAssertTrue(resolver.resolveResults() == expected)
|
||||
}
|
||||
|
||||
func testRandomFailure() {
|
||||
let maybeResults: Maybe<EngineResults> = Maybe(failure: RandomError())
|
||||
let resolver = SyncStatusResolver(engineResults: maybeResults)
|
||||
let expected = SyncDisplayState.bad(message: nil)
|
||||
XCTAssertTrue(resolver.resolveResults() == expected)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue