tests
This commit is contained in:
parent
1d7e552d4a
commit
85e28d807b
|
@ -12,4 +12,22 @@ import XCTest
|
|||
|
||||
XCTMain([
|
||||
testCase(CssTest.allTests),
|
||||
testCase(ElementsTest.allTests)])
|
||||
testCase(ElementsTest.allTests),
|
||||
testCase(QueryParserTest.allTests),
|
||||
testCase(SelectorTest.allTests),
|
||||
testCase(AttributeParseTest.allTests),
|
||||
testCase(CharacterReaderTest.allTests),
|
||||
testCase(HtmlParserTest.allTests),
|
||||
testCase(ParseSettingsTest.allTests),
|
||||
testCase(TagTest.allTests),
|
||||
testCase(TokenQueueTest.allTests),
|
||||
testCase(XmlTreeBuilderTest.allTests),
|
||||
testCase(FormElementTest.allTests),
|
||||
testCase(EntitiesTest.allTests),
|
||||
testCase(DocumentTypeTest.allTests),
|
||||
testCase(TextNodeTest.allTests),
|
||||
testCase(DocumentTest.allTests),
|
||||
testCase(AttributesTest.allTests),
|
||||
testCase(NodeTest.allTests),
|
||||
testCase(AttributeTest.allTests)
|
||||
])
|
||||
|
|
|
@ -14,16 +14,6 @@ import SwiftSoup
|
|||
|
||||
class AttributeParseTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testparsesRoughAttributeString()throws {
|
||||
let html: String = "<a id=\"123\" class=\"baz = 'bar'\" style = 'border: 2px'qux zim foo = 12 mux=18 />"
|
||||
// should be: <id=123>, <class=baz = 'bar'>, <qux=>, <zim=>, <foo=12>, <mux.=18>
|
||||
|
@ -106,11 +96,17 @@ class AttributeParseTest: XCTestCase {
|
|||
XCTAssertEqual("<img onerror=\"doMyJob\" />", try doc.html())
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
static var allTests = {
|
||||
return [
|
||||
("testparsesRoughAttributeString" , testparsesRoughAttributeString),
|
||||
("testhandlesNewLinesAndReturns" , testhandlesNewLinesAndReturns),
|
||||
("testparsesEmptyString" , testparsesEmptyString),
|
||||
("testcanStartWithEq" , testcanStartWithEq),
|
||||
("teststrictAttributeUnescapes" , teststrictAttributeUnescapes),
|
||||
("testmoreAttributeUnescapes" , testmoreAttributeUnescapes),
|
||||
("testparsesBooleanAttributes" , testparsesBooleanAttributes),
|
||||
("testdropsSlashFromAttributeName" , testdropsSlashFromAttributeName),
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -10,16 +10,6 @@ import XCTest
|
|||
@testable import SwiftSoup
|
||||
class AttributeTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testHtml()
|
||||
{
|
||||
let attr = try! Attribute(key: "key", value: "value &")
|
||||
|
@ -34,12 +24,11 @@ class AttributeTest: XCTestCase {
|
|||
XCTAssertEqual(attr.html(), attr.toString())
|
||||
}
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testHtml" , testHtml),
|
||||
("testWithSupplementaryCharacterInAttributeKeyAndValue" , testWithSupplementaryCharacterInAttributeKeyAndValue)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -11,16 +11,6 @@ import SwiftSoup
|
|||
|
||||
class AttributesTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testHtml() {
|
||||
let a: Attributes = Attributes()
|
||||
do{
|
||||
|
@ -90,11 +80,11 @@ class AttributesTest: XCTestCase {
|
|||
XCTAssertNil(iterator.next())
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testHtml" , testHtml),
|
||||
("testIterator" , testIterator),
|
||||
("testIteratorEmpty" , testIteratorEmpty)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -11,23 +11,6 @@ import SwiftSoup
|
|||
|
||||
class CharacterReaderTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
func testConsume() {
|
||||
let r = CharacterReader("one")
|
||||
XCTAssertEqual(0, r.getPos())
|
||||
|
@ -259,5 +242,29 @@ class CharacterReaderTest: XCTestCase {
|
|||
XCTAssertTrue(r.rangeEquals(18, 5, "CHOKE"))
|
||||
XCTAssertFalse(r.rangeEquals(18, 5, "CHIKE"))
|
||||
}
|
||||
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testConsume" , testConsume),
|
||||
("testUnconsume" , testUnconsume),
|
||||
("testMark" , testMark),
|
||||
("testConsumeToEnd" , testConsumeToEnd),
|
||||
("testNextIndexOfChar" , testNextIndexOfChar),
|
||||
("testNextIndexOfString" , testNextIndexOfString),
|
||||
("testNextIndexOfUnmatched" , testNextIndexOfUnmatched),
|
||||
("testConsumeToChar" , testConsumeToChar),
|
||||
("testConsumeToString" , testConsumeToString),
|
||||
("testAdvance" , testAdvance),
|
||||
("testConsumeToAny" , testConsumeToAny),
|
||||
("testConsumeLetterSequence" , testConsumeLetterSequence),
|
||||
("testConsumeLetterThenDigitSequence" , testConsumeLetterThenDigitSequence),
|
||||
("testMatches" , testMatches),
|
||||
("testMatchesIgnoreCase" , testMatchesIgnoreCase),
|
||||
("testContainsIgnoreCase" , testContainsIgnoreCase),
|
||||
("testMatchesAny" , testMatchesAny),
|
||||
("testCachesStrings" , testCachesStrings),
|
||||
("testRangeEquals" , testRangeEquals)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -13,24 +13,7 @@ class DocumentTest: XCTestCase {
|
|||
|
||||
private static let charsetUtf8 = String.Encoding.utf8
|
||||
private static let charsetIso8859 = String.Encoding.iso2022JP //"ISO-8859-1"
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func testSetTextPreservesDocumentStructure() {
|
||||
do{
|
||||
let doc: Document = try SwiftSoup.parse("<p>Hello</p>")
|
||||
|
@ -438,4 +421,35 @@ class DocumentTest: XCTestCase {
|
|||
// output.contains(" ") || output.contains(" "));
|
||||
// }
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testSetTextPreservesDocumentStructure" , testSetTextPreservesDocumentStructure),
|
||||
("testTitles" , testTitles),
|
||||
("testOutputEncoding" , testOutputEncoding),
|
||||
("testXhtmlReferences" , testXhtmlReferences),
|
||||
("testNormalisesStructure" , testNormalisesStructure),
|
||||
("testClone" , testClone),
|
||||
("testClonesDeclarations" , testClonesDeclarations),
|
||||
("testHtmlAndXmlSyntax" , testHtmlAndXmlSyntax),
|
||||
("testHtmlParseDefaultsToHtmlOutputSyntax" , testHtmlParseDefaultsToHtmlOutputSyntax),
|
||||
("testHtmlAppendable" , testHtmlAppendable),
|
||||
("testDocumentsWithSameContentAreEqual" , testDocumentsWithSameContentAreEqual),
|
||||
("testDocumentsWithSameContentAreVerifialbe" , testDocumentsWithSameContentAreVerifialbe),
|
||||
("testMetaCharsetUpdateUtf8" , testMetaCharsetUpdateUtf8),
|
||||
("testMetaCharsetUpdateIsoLatin2" , testMetaCharsetUpdateIsoLatin2),
|
||||
("testMetaCharsetUpdateNoCharset" , testMetaCharsetUpdateNoCharset),
|
||||
("testMetaCharsetUpdateDisabled" , testMetaCharsetUpdateDisabled),
|
||||
("testMetaCharsetUpdateDisabledNoChanges" , testMetaCharsetUpdateDisabledNoChanges),
|
||||
("testMetaCharsetUpdateEnabledAfterCharsetChange" , testMetaCharsetUpdateEnabledAfterCharsetChange),
|
||||
("testMetaCharsetUpdateCleanup" , testMetaCharsetUpdateCleanup),
|
||||
("testMetaCharsetUpdateXmlUtf8" , testMetaCharsetUpdateXmlUtf8),
|
||||
("testMetaCharsetUpdateXmlIso2022JP" , testMetaCharsetUpdateXmlIso2022JP),
|
||||
("testMetaCharsetUpdateXmlNoCharset" , testMetaCharsetUpdateXmlNoCharset),
|
||||
("testMetaCharsetUpdateXmlDisabled" , testMetaCharsetUpdateXmlDisabled),
|
||||
("testMetaCharsetUpdateXmlDisabledNoChanges" , testMetaCharsetUpdateXmlDisabledNoChanges),
|
||||
("testMetaCharsetUpdatedDisabledPerDefault" , testMetaCharsetUpdatedDisabledPerDefault),
|
||||
("createXmlDocument" , createXmlDocument)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -10,16 +10,6 @@ import XCTest
|
|||
import SwiftSoup
|
||||
|
||||
class DocumentTypeTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testConstructorValidationOkWithBlankName() {
|
||||
let fail: DocumentType? = DocumentType("","", "", "")
|
||||
|
@ -51,11 +41,12 @@ class DocumentTypeTest: XCTestCase {
|
|||
XCTAssertEqual("<!DOCTYPE notHtml PUBLIC \"--public\" \"--system\">", try! combo.outerHtml())
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testConstructorValidationOkWithBlankName" , testConstructorValidationOkWithBlankName),
|
||||
("testConstructorValidationThrowsExceptionOnNulls" , testConstructorValidationThrowsExceptionOnNulls),
|
||||
("testConstructorValidationOkWithBlankPublicAndSystemIds" , testConstructorValidationOkWithBlankPublicAndSystemIds),
|
||||
("testOuterHtmlGeneration" , testOuterHtmlGeneration),
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -12,21 +12,6 @@ class ElementTest: XCTestCase {
|
|||
|
||||
private let reference = "<div id=div1><p>Hello</p><p>Another <b>element</b></p><div id=div2><img src=foo.png></div></div>"
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testGetElementsByTagName() {
|
||||
let doc: Document = try! SwiftSoup.parse(reference)
|
||||
let divs = try! doc.getElementsByTag("div")
|
||||
|
@ -945,12 +930,77 @@ class ElementTest: XCTestCase {
|
|||
XCTAssertEqual("html > body > fb|comments", try els.get(0).cssSelector())
|
||||
}
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testGetElementsByTagName" , testGetElementsByTagName),
|
||||
("testGetNamespacedElementsByTag" , testGetNamespacedElementsByTag),
|
||||
("testGetElementById" , testGetElementById),
|
||||
("testGetText" , testGetText),
|
||||
("testGetChildText" , testGetChildText),
|
||||
("testNormalisesText" , testNormalisesText),
|
||||
("testKeepsPreText" , testKeepsPreText),
|
||||
("testKeepsPreTextInCode" , testKeepsPreTextInCode),
|
||||
("testBrHasSpace" , testBrHasSpace),
|
||||
("testGetSiblings" , testGetSiblings),
|
||||
("testGetSiblingsWithDuplicateContent" , testGetSiblingsWithDuplicateContent),
|
||||
("testGetParents" , testGetParents),
|
||||
("testElementSiblingIndex" , testElementSiblingIndex),
|
||||
("testElementSiblingIndexSameContent" , testElementSiblingIndexSameContent),
|
||||
("testGetElementsWithClass" , testGetElementsWithClass),
|
||||
("testGetElementsWithAttribute" , testGetElementsWithAttribute),
|
||||
("testGetElementsWithAttributeDash" , testGetElementsWithAttributeDash),
|
||||
("testGetElementsWithAttributeValue" , testGetElementsWithAttributeValue),
|
||||
("testClassDomMethods" , testClassDomMethods),
|
||||
("testHasClassDomMethods" , testHasClassDomMethods),
|
||||
("testClassUpdates" , testClassUpdates),
|
||||
("testOuterHtml" , testOuterHtml),
|
||||
("testInnerHtml" , testInnerHtml),
|
||||
("testFormatHtml" , testFormatHtml),
|
||||
("testFormatOutline" , testFormatOutline),
|
||||
("testSetIndent" , testSetIndent),
|
||||
("testNotPretty" , testNotPretty),
|
||||
("testEmptyElementFormatHtml" , testEmptyElementFormatHtml),
|
||||
("testNoIndentOnScriptAndStyle" , testNoIndentOnScriptAndStyle),
|
||||
("testContainerOutput" , testContainerOutput),
|
||||
("testSetText" , testSetText),
|
||||
("testAddNewElement" , testAddNewElement),
|
||||
("testAddBooleanAttribute" , testAddBooleanAttribute),
|
||||
("testAppendRowToTable" , testAppendRowToTable),
|
||||
("testPrependRowToTable" , testPrependRowToTable),
|
||||
("testPrependElement" , testPrependElement),
|
||||
("testAddNewText" , testAddNewText),
|
||||
("testPrependText" , testPrependText),
|
||||
("testAddNewHtml" , testAddNewHtml),
|
||||
("testPrependNewHtml" , testPrependNewHtml),
|
||||
("testSetHtml" , testSetHtml),
|
||||
("testSetHtmlTitle" , testSetHtmlTitle),
|
||||
("testWrap" , testWrap),
|
||||
("testBefore" , testBefore),
|
||||
("testAfter" , testAfter),
|
||||
("testWrapWithRemainder" , testWrapWithRemainder),
|
||||
("testHasText" , testHasText),
|
||||
("testDataset" , testDataset),
|
||||
("testpParentlessToString" , testpParentlessToString),
|
||||
("testClone" , testClone),
|
||||
("testClonesClassnames" , testClonesClassnames),
|
||||
("testTagNameSet" , testTagNameSet),
|
||||
("testHtmlContainsOuter" , testHtmlContainsOuter),
|
||||
("testGetTextNodes" , testGetTextNodes),
|
||||
("testManipulateTextNodes" , testManipulateTextNodes),
|
||||
("testGetDataNodes" , testGetDataNodes),
|
||||
("testElementIsNotASiblingOfItself" , testElementIsNotASiblingOfItself),
|
||||
("testChildThrowsIndexOutOfBoundsOnMissing" , testChildThrowsIndexOutOfBoundsOnMissing),
|
||||
("testMoveByAppend" , testMoveByAppend),
|
||||
("testInsertChildrenArgumentValidation" , testInsertChildrenArgumentValidation),
|
||||
("testInsertChildrenAtPosition" , testInsertChildrenAtPosition),
|
||||
("testInsertChildrenAsCopy" , testInsertChildrenAsCopy),
|
||||
("testCssPath" , testCssPath),
|
||||
("testClassNames" , testClassNames),
|
||||
("testHashAndEqualsAndValue" , testHashAndEqualsAndValue),
|
||||
("testRelativeUrls" , testRelativeUrls),
|
||||
("testAppendMustCorrectlyMoveChildrenInsideOneParentElement" , testAppendMustCorrectlyMoveChildrenInsideOneParentElement),
|
||||
("testHashcodeIsStableWithContentChanges" , testHashcodeIsStableWithContentChanges),
|
||||
("testNamespacedElements" , testNamespacedElements)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -12,16 +12,6 @@ import SwiftSoup
|
|||
|
||||
class EntitiesTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testEscape()throws {
|
||||
let text = "Hello &<> Å å π 新 there ¾ © »"
|
||||
|
||||
|
@ -150,6 +140,22 @@ class EntitiesTest: XCTestCase {
|
|||
XCTAssertEqual("<a title=\"<p>One</p>\">One</a>",try element.outerHtml())
|
||||
}
|
||||
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testEscape" , testEscape),
|
||||
("testXhtml" , testXhtml),
|
||||
("testGetByName" , testGetByName),
|
||||
("testEscapeSupplementaryCharacter" , testEscapeSupplementaryCharacter),
|
||||
("testNotMissingMultis" , testNotMissingMultis),
|
||||
("testnotMissingSupplementals" , testnotMissingSupplementals),
|
||||
("testUnescape" , testUnescape),
|
||||
("testStrictUnescape" , testStrictUnescape),
|
||||
("testCaseSensitive" , testCaseSensitive),
|
||||
("testQuoteReplacements" , testQuoteReplacements),
|
||||
("testLetterDigitEntities" , testLetterDigitEntities),
|
||||
("testNoSpuriousDecodes" , testNoSpuriousDecodes),
|
||||
("testUscapesGtInXmlAttributesButNotInHtml" , testUscapesGtInXmlAttributesButNotInHtml)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
||||
|
|
|
@ -11,17 +11,6 @@ import SwiftSoup
|
|||
|
||||
class FormElementTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
|
||||
func testHasAssociatedControls()throws {
|
||||
//"button", "fieldset", "input", "keygen", "object", "output", "select", "textarea"
|
||||
let html = "<form id=1><button id=1><fieldset id=2 /><input id=3><keygen id=4><object id=5><output id=6>" +
|
||||
|
@ -161,13 +150,11 @@ class FormElementTest: XCTestCase {
|
|||
// assertEquals("login", data.get(2).key());
|
||||
// }
|
||||
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testHasAssociatedControls" , testHasAssociatedControls),
|
||||
("testFormsAddedAfterParseAreFormElements" , testFormsAddedAfterParseAreFormElements),
|
||||
("testControlsAddedAfterParseAreLinkedWithForms" , testControlsAddedAfterParseAreLinkedWithForms)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -14,16 +14,6 @@ import SwiftSoup
|
|||
|
||||
class HtmlParserTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testParsesSimpleDocument()throws {
|
||||
let html: String = "<html><head><title>First!</title></head><body><p>First post! <img src=\"foo.png\" /></p></body></html>"
|
||||
let doc: Document = try SwiftSoup.parse(html)
|
||||
|
@ -595,14 +585,76 @@ class HtmlParserTest: XCTestCase {
|
|||
XCTAssertEqual(try doc.select("table").size(), 1) // only one table
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
static var allTests = {
|
||||
return [
|
||||
("testParsesSimpleDocument" , testParsesSimpleDocument),
|
||||
("testParsesRoughAttributes" , testParsesRoughAttributes),
|
||||
("testParsesQuiteRoughAttributes" , testParsesQuiteRoughAttributes),
|
||||
("testParsesComments" , testParsesComments),
|
||||
("testParsesUnterminatedComments" , testParsesUnterminatedComments),
|
||||
("testDropsUnterminatedTag" , testDropsUnterminatedTag),
|
||||
("testDropsUnterminatedAttribute" , testDropsUnterminatedAttribute),
|
||||
("testParsesUnterminatedTextarea" , testParsesUnterminatedTextarea),
|
||||
("testParsesUnterminatedOption" , testParsesUnterminatedOption),
|
||||
("testSpaceAfterTag" , testSpaceAfterTag),
|
||||
("testCreatesDocumentStructure" , testCreatesDocumentStructure),
|
||||
("testCreatesStructureFromBodySnippet" , testCreatesStructureFromBodySnippet),
|
||||
("testHandlesEscapedData" , testHandlesEscapedData),
|
||||
("testHandlesDataOnlyTags" , testHandlesDataOnlyTags),
|
||||
("testHandlesTextAfterData" , testHandlesTextAfterData),
|
||||
("testHandlesTextArea" , testHandlesTextArea),
|
||||
("testPreservesSpaceInTextArea" , testPreservesSpaceInTextArea),
|
||||
("testPreservesSpaceInScript" , testPreservesSpaceInScript),
|
||||
("testDoesNotCreateImplicitLists" , testDoesNotCreateImplicitLists),
|
||||
("testDiscardsNakedTds" , testDiscardsNakedTds),
|
||||
("testHandlesNestedImplicitTable" , testHandlesNestedImplicitTable),
|
||||
("testHandlesWhatWgExpensesTableExample" , testHandlesWhatWgExpensesTableExample),
|
||||
("testHandlesTbodyTable" , testHandlesTbodyTable),
|
||||
("testHandlesImplicitCaptionClose" , testHandlesImplicitCaptionClose),
|
||||
("testNoTableDirectInTable" , testNoTableDirectInTable),
|
||||
("testIgnoresDupeEndTrTag" , testIgnoresDupeEndTrTag),
|
||||
("testHandlesBaseTags" , testHandlesBaseTags),
|
||||
("testHandlesProtocolRelativeUrl" , testHandlesProtocolRelativeUrl),
|
||||
("testHandlesCdata" , testHandlesCdata),
|
||||
("testHandlesUnclosedCdataAtEOF" , testHandlesUnclosedCdataAtEOF),
|
||||
("testHandlesInvalidStartTags" , testHandlesInvalidStartTags),
|
||||
("testHandlesUnknownTags" , testHandlesUnknownTags),
|
||||
("testHandlesUnknownInlineTags" , testHandlesUnknownInlineTags),
|
||||
("testParsesBodyFragment" , testParsesBodyFragment),
|
||||
("testHandlesUnknownNamespaceTags" , testHandlesUnknownNamespaceTags),
|
||||
("testHandlesKnownEmptyBlocks" , testHandlesKnownEmptyBlocks),
|
||||
("testHandlesSolidusAtAttributeEnd" , testHandlesSolidusAtAttributeEnd),
|
||||
("testHandlesMultiClosingBody" , testHandlesMultiClosingBody),
|
||||
("testHandlesUnclosedDefinitionLists" , testHandlesUnclosedDefinitionLists),
|
||||
("testHandlesBlocksInDefinitions" , testHandlesBlocksInDefinitions),
|
||||
("testHandlesFrames" , testHandlesFrames),
|
||||
("testIgnoresContentAfterFrameset" , testIgnoresContentAfterFrameset),
|
||||
("testHandlesJavadocFont" , testHandlesJavadocFont),
|
||||
("testHandlesBaseWithoutHref" , testHandlesBaseWithoutHref),
|
||||
("testNormalisesDocument" , testNormalisesDocument),
|
||||
("testNormalisesEmptyDocument" , testNormalisesEmptyDocument),
|
||||
("testNormalisesHeadlessBody" , testNormalisesHeadlessBody),
|
||||
("testNormalisedBodyAfterContent" , testNormalisedBodyAfterContent),
|
||||
("testfindsCharsetInMalformedMeta" , testfindsCharsetInMalformedMeta),
|
||||
("testHgroup" , testHgroup),
|
||||
("testRelaxedTags" , testRelaxedTags),
|
||||
("testHeaderContents" , testHeaderContents),
|
||||
("testSpanContents" , testSpanContents),
|
||||
("testNoImagesInNoScriptInHead" , testNoImagesInNoScriptInHead),
|
||||
("testAFlowContents" , testAFlowContents),
|
||||
("testFontFlowContents" , testFontFlowContents),
|
||||
("testhandlesMisnestedTagsBI" , testhandlesMisnestedTagsBI),
|
||||
("testhandlesMisnestedTagsBP" , testhandlesMisnestedTagsBP),
|
||||
("testhandlesUnexpectedMarkupInTables" , testhandlesUnexpectedMarkupInTables),
|
||||
("testHandlesUnclosedFormattingElements" , testHandlesUnclosedFormattingElements),
|
||||
("testhandlesUnclosedAnchors" , testhandlesUnclosedAnchors),
|
||||
("testreconstructFormattingElements" , testreconstructFormattingElements),
|
||||
("testreconstructFormattingElementsInTable" , testreconstructFormattingElementsInTable),
|
||||
("testcommentBeforeHtml" , testcommentBeforeHtml),
|
||||
("testemptyTdTag" , testemptyTdTag),
|
||||
("testhandlesSolidusInA" , testhandlesSolidusInA),
|
||||
("testhandlesSpanInTbody" , testhandlesSpanInTbody)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -10,21 +10,6 @@ import XCTest
|
|||
import SwiftSoup
|
||||
|
||||
class NodeTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testHandlesBaseUri() {
|
||||
do{
|
||||
|
@ -386,12 +371,30 @@ class NodeTest: XCTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testHandlesBaseUri" , testHandlesBaseUri),
|
||||
("testSetBaseUriIsRecursive" , testSetBaseUriIsRecursive),
|
||||
("testHandlesAbsPrefix" , testHandlesAbsPrefix),
|
||||
("testHandlesAbsOnImage" , testHandlesAbsOnImage),
|
||||
("testHandlesAbsPrefixOnHasAttr" , testHandlesAbsPrefixOnHasAttr),
|
||||
("testLiteralAbsPrefix" , testLiteralAbsPrefix),
|
||||
("testHandleAbsOnLocalhostFileUris" , testHandleAbsOnLocalhostFileUris),
|
||||
("testHandlesAbsOnProtocolessAbsoluteUris" , testHandlesAbsOnProtocolessAbsoluteUris),
|
||||
("testAbsHandlesRelativeQuery" , testAbsHandlesRelativeQuery),
|
||||
("testAbsHandlesDotFromIndex" , testAbsHandlesDotFromIndex),
|
||||
("testRemove" , testRemove),
|
||||
("testReplace" , testReplace),
|
||||
("testOwnerDocument" , testOwnerDocument),
|
||||
("testBefore" , testBefore),
|
||||
("testAfter" , testAfter),
|
||||
("testUnwrap" , testUnwrap),
|
||||
("testUnwrapNoChildren" , testUnwrapNoChildren),
|
||||
("testTraverse" , testTraverse),
|
||||
("testOrphanNodeReturnsNullForSiblingElements" , testOrphanNodeReturnsNullForSiblingElements),
|
||||
("testNodeIsNotASiblingOfItself" , testNodeIsNotASiblingOfItself),
|
||||
("testChildNodesCopy" , testChildNodesCopy),
|
||||
("testSupportsClone" , testSupportsClone)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -10,29 +10,7 @@ import XCTest
|
|||
import SwiftSoup
|
||||
|
||||
class ParseSettingsTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func testCaseSupport() {
|
||||
let bothOn = ParseSettings(true, true)
|
||||
let bothOff = ParseSettings(false, false)
|
||||
|
@ -50,7 +28,11 @@ class ParseSettingsTest: XCTestCase {
|
|||
|
||||
XCTAssertEqual("foo", attrOn.normalizeTag("FOO"))
|
||||
XCTAssertEqual("FOO", attrOn.normalizeAttribute("FOO"))
|
||||
|
||||
}
|
||||
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testCaseSupport" , testCaseSupport)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -10,23 +10,6 @@ import XCTest
|
|||
import SwiftSoup
|
||||
|
||||
class QueryParserTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
func testOrGetsCorrectPrecedence()throws {
|
||||
// tests that a selector "a b, c d, e f" evals to (a AND b) OR (c AND d) OR (e AND f)"
|
||||
|
@ -59,4 +42,11 @@ class QueryParserTest: XCTestCase {
|
|||
XCTAssertEqual(2, andRight.evaluators.count)
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testOrGetsCorrectPrecedence" , testOrGetsCorrectPrecedence),
|
||||
("testParsesMultiCorrectly" , testParsesMultiCorrectly)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -11,23 +11,6 @@ import SwiftSoup
|
|||
|
||||
class SelectorTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
func testByTag()throws {
|
||||
// should be case insensitive
|
||||
let els: Elements = try SwiftSoup.parse("<div id=1><div id=2><p>Hello</p></div></div><DIV id=3>").select("DIV")
|
||||
|
@ -708,5 +691,61 @@ class SelectorTest: XCTestCase {
|
|||
XCTAssertEqual("Two", try doc.select("div[data=\"[Another)]]\"").first()?.text())
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testByTag" , testByTag),
|
||||
("testById" , testById),
|
||||
("testByClass" , testByClass),
|
||||
("testByAttribute" , testByAttribute),
|
||||
("testNamespacedTag" , testNamespacedTag),
|
||||
("testWildcardNamespacedTag" , testWildcardNamespacedTag),
|
||||
("testByAttributeStarting" , testByAttributeStarting),
|
||||
("testByAttributeRegex" , testByAttributeRegex),
|
||||
("testByAttributeRegexCharacterClass" , testByAttributeRegexCharacterClass),
|
||||
("testByAttributeRegexCombined" , testByAttributeRegexCombined),
|
||||
("testCombinedWithContains" , testCombinedWithContains),
|
||||
("testAllElements" , testAllElements),
|
||||
("testAllWithClass" , testAllWithClass),
|
||||
("testGroupOr" , testGroupOr),
|
||||
("testGroupOrAttribute" , testGroupOrAttribute),
|
||||
("testDescendant" , testDescendant),
|
||||
("testAnd" , testAnd),
|
||||
("testDeeperDescendant" , testDeeperDescendant),
|
||||
("testParentChildElement" , testParentChildElement),
|
||||
("testParentWithClassChild" , testParentWithClassChild),
|
||||
("testParentChildStar" , testParentChildStar),
|
||||
("testMultiChildDescent" , testMultiChildDescent),
|
||||
("testCaseInsensitive" , testCaseInsensitive),
|
||||
("testAdjacentSiblings" , testAdjacentSiblings),
|
||||
("testAdjacentSiblingsWithId" , testAdjacentSiblingsWithId),
|
||||
("testNotAdjacent" , testNotAdjacent),
|
||||
("testMixCombinator" , testMixCombinator),
|
||||
("testMixCombinatorGroup" , testMixCombinatorGroup),
|
||||
("testGeneralSiblings" , testGeneralSiblings),
|
||||
("testCharactersInIdAndClass" , testCharactersInIdAndClass),
|
||||
("testSupportsLeadingCombinator" , testSupportsLeadingCombinator),
|
||||
("testPseudoLessThan" , testPseudoLessThan),
|
||||
("testPseudoGreaterThan" , testPseudoGreaterThan),
|
||||
("testPseudoEquals" , testPseudoEquals),
|
||||
("testPseudoBetween" , testPseudoBetween),
|
||||
("testPseudoCombined" , testPseudoCombined),
|
||||
("testPseudoHas" , testPseudoHas),
|
||||
("testNestedHas" , testNestedHas),
|
||||
("testPseudoContains" , testPseudoContains),
|
||||
("testPsuedoContainsWithParentheses" , testPsuedoContainsWithParentheses),
|
||||
("testContainsOwn" , testContainsOwn),
|
||||
("testMatches" , testMatches),
|
||||
("testMatchesOwn" , testMatchesOwn),
|
||||
("testRelaxedTags" , testRelaxedTags),
|
||||
("testNotParas" , testNotParas),
|
||||
("testNotAll" , testNotAll),
|
||||
("testNotClass" , testNotClass),
|
||||
("testHandlesCommasInSelector" , testHandlesCommasInSelector),
|
||||
("testSelectSupplementaryCharacter" , testSelectSupplementaryCharacter),
|
||||
("testSelectClassWithSpace" , testSelectClassWithSpace),
|
||||
("testSelectSameElements" , testSelectSameElements),
|
||||
("testAttributeWithBrackets" , testAttributeWithBrackets)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -11,16 +11,6 @@ import SwiftSoup
|
|||
|
||||
class TagTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testIsCaseSensitive()throws {
|
||||
let p1: Tag = try Tag.valueOf("P")
|
||||
let p2: Tag = try Tag.valueOf("p")
|
||||
|
@ -75,20 +65,22 @@ class TagTest: XCTestCase {
|
|||
XCTAssertTrue(foo.isInline())
|
||||
XCTAssertTrue(foo.formatAsBlock())
|
||||
}
|
||||
|
||||
// func testValueOfChecksNotNull() {
|
||||
// XCTAssertThrowsError(try Tag.valueOf(nil))
|
||||
// }
|
||||
|
||||
|
||||
func testValueOfChecksNotEmpty() {
|
||||
XCTAssertThrowsError(try Tag.valueOf(" "))
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testIsCaseSensitive" , testIsCaseSensitive),
|
||||
("testCanBeInsensitive" , testCanBeInsensitive),
|
||||
("testTrims" , testTrims),
|
||||
("testEquality" , testEquality),
|
||||
("testDivSemantics" , testDivSemantics),
|
||||
("testPSemantics" , testPSemantics),
|
||||
("testImgSemantics" , testImgSemantics),
|
||||
("testDefaultSemantics" , testDefaultSemantics),
|
||||
("testValueOfChecksNotEmpty" , testValueOfChecksNotEmpty),
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -10,16 +10,6 @@ import XCTest
|
|||
@testable import SwiftSoup
|
||||
|
||||
class TextNodeTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testBlank() {
|
||||
let one = TextNode("", "")
|
||||
|
@ -83,12 +73,14 @@ class TextNodeTest: XCTestCase {
|
|||
XCTAssertEqual(String(Character(UnicodeScalar(135361)!)), try t.outerHtml().trim())
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testBlank" , testBlank),
|
||||
("testTextBean" , testTextBean),
|
||||
("testSplitText" , testSplitText),
|
||||
("testSplitAnEmbolden" , testSplitAnEmbolden),
|
||||
("testWithSupplementaryCharacter" , testWithSupplementaryCharacter)
|
||||
]
|
||||
}()
|
||||
}
|
||||
|
||||
|
|
|
@ -10,29 +10,7 @@ import XCTest
|
|||
import SwiftSoup
|
||||
|
||||
class TokenQueueTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func testChompBalanced() {
|
||||
let tq = TokenQueue(":contains(one (two) three) four")
|
||||
let pre = tq.consumeTo("(")
|
||||
|
@ -84,5 +62,16 @@ class TokenQueueTest: XCTestCase {
|
|||
tq.addFirst("Three")
|
||||
XCTAssertEqual("Three Two", tq.remainder())
|
||||
}
|
||||
|
||||
static var allTests = {
|
||||
return [
|
||||
("testChompBalanced" , testChompBalanced),
|
||||
("testChompEscapedBalanced" , testChompEscapedBalanced),
|
||||
("testChompBalancedMatchesAsMuchAsPossible" , testChompBalancedMatchesAsMuchAsPossible),
|
||||
("testUnescape" , testUnescape),
|
||||
("testChompToIgnoreCase" , testChompToIgnoreCase),
|
||||
("testAddFirst" , testAddFirst)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
|
@ -11,16 +11,6 @@ import SwiftSoup
|
|||
|
||||
class XmlTreeBuilderTest: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testSimpleXmlParse()throws {
|
||||
let xml = "<doc id=2 href='/bar'>Foo <br /><link>One</link><link>Two</link></doc>"
|
||||
let tb: XmlTreeBuilder = XmlTreeBuilder()
|
||||
|
@ -138,7 +128,7 @@ class XmlTreeBuilderTest: XCTestCase {
|
|||
try XCTAssertEqual("<?xml version=\"1\" encoding=\"UTF-8\" something=\"else\"?>", decl.outerHtml())
|
||||
}
|
||||
|
||||
func caseSensitiveDeclaration()throws {
|
||||
func testCaseSensitiveDeclaration()throws {
|
||||
let xml = "<?XML version='1' encoding='UTF-8' something='else'?>"
|
||||
let doc = try SwiftSoup.parse(xml, "", Parser.xmlParser())
|
||||
try XCTAssertEqual("<?XML version=\"1\" encoding=\"UTF-8\" something=\"else\"?>", doc.outerHtml())
|
||||
|
@ -167,13 +157,24 @@ class XmlTreeBuilderTest: XCTestCase {
|
|||
try XCTAssertEqual("<test id=\"1\">Check</test>", TextUtil.stripNewlines(doc.html()))
|
||||
}
|
||||
|
||||
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
static var allTests = {
|
||||
return [
|
||||
("testSimpleXmlParse" , testSimpleXmlParse),
|
||||
("testPopToClose" , testPopToClose),
|
||||
("testCommentAndDocType" , testCommentAndDocType),
|
||||
("testSupplyParserToJsoupClass" , testSupplyParserToJsoupClass),
|
||||
("testDoesNotForceSelfClosingKnownTags" , testDoesNotForceSelfClosingKnownTags),
|
||||
|
||||
("testHandlesXmlDeclarationAsDeclaration" , testHandlesXmlDeclarationAsDeclaration),
|
||||
("testXmlFragment" , testXmlFragment),
|
||||
("testXmlParseDefaultsToHtmlOutputSyntax" , testXmlParseDefaultsToHtmlOutputSyntax),
|
||||
("testDoesHandleEOFInTag" , testDoesHandleEOFInTag),
|
||||
("testParseDeclarationAttributes" , testParseDeclarationAttributes),
|
||||
("testCaseSensitiveDeclaration" , testCaseSensitiveDeclaration),
|
||||
("testCreatesValidProlog" , testCreatesValidProlog),
|
||||
("preservesCaseByDefault" , preservesCaseByDefault),
|
||||
("canNormalizeCase" , canNormalizeCase)
|
||||
]
|
||||
}()
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue