99 lines
2.6 KiB
Swift
99 lines
2.6 KiB
Swift
//
|
|
// AttributesTest.swift
|
|
// SwiftSoup
|
|
//
|
|
// Created by Nabil Chatbi on 29/10/16.
|
|
// Copyright © 2016 Nabil Chatbi.. All rights reserved.
|
|
//
|
|
|
|
import XCTest
|
|
import SwiftSoup
|
|
|
|
class AttributesTest: XCTestCase {
|
|
|
|
func testLinuxTestSuiteIncludesAllTests() {
|
|
#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
|
|
let thisClass = type(of: self)
|
|
let linuxCount = thisClass.allTests.count
|
|
let darwinCount = Int(thisClass.defaultTestSuite.testCaseCount)
|
|
XCTAssertEqual(linuxCount, darwinCount, "\(darwinCount - linuxCount) tests are missing from allTests")
|
|
#endif
|
|
}
|
|
|
|
func testHtml() {
|
|
let a: Attributes = Attributes()
|
|
do {
|
|
try a.put("Tot", "a&p")
|
|
try a.put("Hello", "There")
|
|
try a.put("data-name", "Jsoup")
|
|
} catch {}
|
|
|
|
XCTAssertEqual(3, a.size())
|
|
XCTAssertTrue(a.hasKey(key: "Tot"))
|
|
XCTAssertTrue(a.hasKey(key: "Hello"))
|
|
XCTAssertTrue(a.hasKey(key: "data-name"))
|
|
XCTAssertFalse(a.hasKey(key: "tot"))
|
|
XCTAssertTrue(a.hasKeyIgnoreCase(key: "tot"))
|
|
XCTAssertEqual("There", try a.getIgnoreCase(key: "hEllo"))
|
|
|
|
XCTAssertEqual(1, a.dataset().count)
|
|
XCTAssertEqual("Jsoup", a.dataset()["name"])
|
|
XCTAssertEqual("", a.get(key: "tot"))
|
|
XCTAssertEqual("a&p", a.get(key: "Tot"))
|
|
XCTAssertEqual("a&p", try a.getIgnoreCase(key: "tot"))
|
|
|
|
XCTAssertEqual(" Tot=\"a&p\" Hello=\"There\" data-name=\"Jsoup\"", try a.html())
|
|
XCTAssertEqual(try a.html(), try a.toString())
|
|
}
|
|
//todo: se serve
|
|
// func testIteratorRemovable() {
|
|
// let a = Attributes()
|
|
// do{
|
|
// try a.put("Tot", "a&p")
|
|
// try a.put("Hello", "There")
|
|
// try a.put("data-name", "Jsoup")
|
|
// }catch{}
|
|
//
|
|
// var iterator = a.iterator()
|
|
//
|
|
// iterator.next()
|
|
// iterator.dropFirst()
|
|
// XCTAssertEqual(2, a.size())
|
|
// }
|
|
|
|
func testIterator() {
|
|
let a: Attributes = Attributes()
|
|
let datas: [[String]] = [["Tot", "raul"], ["Hello", "pismuth"], ["data-name", "Jsoup"]]
|
|
|
|
for atts in datas {
|
|
try! a.put(atts[0], atts[1])
|
|
}
|
|
|
|
let iterator = a.makeIterator()
|
|
XCTAssertTrue(iterator.next() != nil)
|
|
var i = 0
|
|
for attribute in a {
|
|
XCTAssertEqual(datas[i][0], attribute.getKey())
|
|
XCTAssertEqual(datas[i][1], attribute.getValue())
|
|
i += 1
|
|
}
|
|
XCTAssertEqual(datas.count, i)
|
|
}
|
|
|
|
func testIteratorEmpty() {
|
|
let a = Attributes()
|
|
|
|
let iterator = a.makeIterator()
|
|
XCTAssertNil(iterator.next())
|
|
}
|
|
|
|
static var allTests = {
|
|
return [
|
|
("testLinuxTestSuiteIncludesAllTests", testLinuxTestSuiteIncludesAllTests),
|
|
("testHtml", testHtml),
|
|
("testIterator", testIterator),
|
|
("testIteratorEmpty", testIteratorEmpty)
|
|
]
|
|
}()
|
|
}
|