mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
126 lines
4.7 KiB
Swift
126 lines
4.7 KiB
Swift
/* 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 ReadingList
|
|
import Foundation
|
|
|
|
import XCTest
|
|
|
|
class ReadingListClientRecordTestCase: XCTestCase {
|
|
|
|
func testInitWithRow() {
|
|
let now = ReadingListNow()
|
|
let row: [String: Any] = [
|
|
"client_id": Int64(1234),
|
|
"client_last_modified": now,
|
|
"id": "5DB5597A-8E60-454D-B1F5-51810C2A5FFE",
|
|
"last_modified": now,
|
|
"url": "http://localhost/article/1",
|
|
"title": "Article 1",
|
|
"added_by": "Stefan's iPhone",
|
|
"unread": true,
|
|
"archived": false,
|
|
"favorite": true
|
|
]
|
|
|
|
let record = ReadingListClientRecord(row: row)
|
|
XCTAssert(record != nil)
|
|
|
|
if let record = record {
|
|
XCTAssertEqual(record.url, "http://localhost/article/1")
|
|
XCTAssertEqual(record.title, "Article 1")
|
|
XCTAssertEqual(record.addedBy, "Stefan's iPhone")
|
|
XCTAssertEqual(record.unread, true)
|
|
XCTAssertEqual(record.archived, false)
|
|
XCTAssertEqual(record.favorite, true)
|
|
|
|
XCTAssert(record.clientMetadata.id == 1234)
|
|
XCTAssert(record.clientMetadata.lastModified == now)
|
|
|
|
XCTAssert(record.serverMetadata != nil)
|
|
XCTAssertEqual(record.serverMetadata!.guid, "5DB5597A-8E60-454D-B1F5-51810C2A5FFE")
|
|
XCTAssertEqual(record.serverMetadata!.lastModified, now)
|
|
}
|
|
}
|
|
|
|
func testInitWithRowWithoutServerMeta() {
|
|
let now = ReadingListNow()
|
|
let row: [String:Any] = [
|
|
"client_id": Int64(1234),
|
|
"client_last_modified": now,
|
|
"url": "http://localhost/article/1",
|
|
"title": "Article 1",
|
|
"added_by": "Stefan's iPhone",
|
|
"unread": true,
|
|
"archived": false,
|
|
"favorite": true
|
|
]
|
|
|
|
let record = ReadingListClientRecord(row: row)
|
|
XCTAssert(record != nil)
|
|
|
|
if let record = record {
|
|
XCTAssertEqual(record.url, "http://localhost/article/1")
|
|
XCTAssertEqual(record.title, "Article 1")
|
|
XCTAssertEqual(record.addedBy, "Stefan's iPhone")
|
|
XCTAssertEqual(record.unread, true)
|
|
XCTAssertEqual(record.archived, false)
|
|
XCTAssertEqual(record.favorite, true)
|
|
|
|
XCTAssert(record.clientMetadata.id == 1234)
|
|
XCTAssert(record.clientMetadata.lastModified == now)
|
|
|
|
XCTAssert(record.serverMetadata == nil)
|
|
}
|
|
}
|
|
|
|
func testInitWithEmptyRow() {
|
|
let row = NSDictionary()
|
|
let record = ReadingListClientRecord(row: row as! [String : Any])
|
|
XCTAssert(record == nil)
|
|
}
|
|
|
|
// func testInit() {
|
|
// let record = ReadingListClientRecord(url: "http://localhost/some/article", title: "Some Article", addedBy: "Stefan's iPad Mini")
|
|
// XCTAssertNil(record.clientMetadata.id)
|
|
// XCTAssert(record.clientMetadata.lastModified != 0)
|
|
// XCTAssert(record.serverMetadata == nil)
|
|
// XCTAssertEqual(record.url, "http://localhost/some/article")
|
|
// XCTAssertEqual(record.title, "Some Article")
|
|
// XCTAssertEqual(record.addedBy, "Stefan's iPad Mini")
|
|
// XCTAssertEqual(record.unread, ReadingListDefaultUnread)
|
|
// XCTAssertEqual(record.favorite, ReadingListDefaultFavorite)
|
|
// XCTAssertEqual(record.archived, ReadingListDefaultArchived)
|
|
// }
|
|
|
|
func testJSON() {
|
|
let now = ReadingListNow()
|
|
let row: [String:Any] = [
|
|
"client_id": Int64(1234),
|
|
"client_last_modified": now,
|
|
"id": "5DB5597A-8E60-454D-B1F5-51810C2A5FFE",
|
|
"last_modified": now,
|
|
"url": "http://localhost/article/1",
|
|
"title": "Article 1",
|
|
"added_by": "Stefan's iPhone 3GS",
|
|
"unread": true,
|
|
"archived": false,
|
|
"favorite": true
|
|
]
|
|
|
|
let record = ReadingListClientRecord(row: row)
|
|
XCTAssert(record != nil)
|
|
|
|
if let record = record {
|
|
let json: AnyObject = record.json
|
|
XCTAssertEqual(json.value(forKeyPath: "url") as? String, "http://localhost/article/1")
|
|
XCTAssertEqual(json.value(forKeyPath: "title") as? String, "Article 1")
|
|
XCTAssertEqual(json.value(forKeyPath: "added_by") as? String, "Stefan's iPhone 3GS")
|
|
|
|
XCTAssertEqual(json.value(forKeyPath: "unread") as? Bool, true)
|
|
XCTAssertEqual(json.value(forKeyPath: "archived") as? Bool, false)
|
|
XCTAssertEqual(json.value(forKeyPath: "favorite") as? Bool, true)
|
|
}
|
|
}
|
|
}
|