1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/*
This source file is part of the Swift.org open source project
Copyright (c) 2021-2022 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
import XCTest
@testable import Markdown
class AsideTests: XCTestCase {
func testTags() {
for kind in Aside.Kind.allCases {
let source = "> \(kind.rawValue): This is a `\(kind.rawValue)` aside."
let document = Document(parsing: source)
let blockQuote = document.child(at: 0) as! BlockQuote
let aside = Aside(blockQuote)
XCTAssertEqual(kind, aside.kind)
// Note that the initial text in the paragraph has been adjusted
// to after the tag.
let expectedRootDump = """
Document
└─ BlockQuote
└─ Paragraph
├─ Text "This is a "
├─ InlineCode `\(kind.rawValue)`
└─ Text " aside."
"""
XCTAssertEqual(expectedRootDump, aside.content[0].root.debugDescription())
}
}
func testMissingTag() {
let source = "> This is a regular block quote."
let document = Document(parsing: source)
let blockQuote = document.child(at: 0) as! BlockQuote
let aside = Aside(blockQuote)
XCTAssertEqual(.note, aside.kind)
XCTAssertTrue(aside.content[0].root.isIdentical(to: document))
}
func testCustomTag() {
let source = "> Hmm: This is something"
let document = Document(parsing: source)
let blockQuote = document.child(at: 0) as! BlockQuote
let aside = Aside(blockQuote)
XCTAssertEqual(.init(rawValue: "Hmm")!, aside.kind)
// Note that the initial text in the paragraph has been adjusted
// to after the tag.
let expectedRootDump = """
Document
└─ BlockQuote
└─ Paragraph
└─ Text "This is something"
"""
XCTAssertEqual(expectedRootDump, aside.content[0].root.debugDescription())
}
func testNoParagraphAtStart() {
let source = """
> - A
> - List?
"""
let document = Document(parsing: source)
let blockQuote = document.child(at: 0) as! BlockQuote
let aside = Aside(blockQuote)
XCTAssertEqual(.note, aside.kind)
XCTAssertTrue(aside.content[0].root.isIdentical(to: document))
}
}
|