File: RenderBlockContent%2BCapitalizationTests.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (124 lines) | stat: -rw-r--r-- 5,776 bytes parent folder | download
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/*
 This source file is part of the Swift.org open source project

 Copyright (c) 2024 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 Foundation
import XCTest
import Markdown
@testable import SwiftDocC

class RenderBlockContent_CapitalizationTests: XCTestCase {
    
    // MARK: - Inlines
    // Text, Emphasis, Strong are all auto-capitalized, and everything else defaults to not capitalized.
    
    func testRenderInlineContentText() {
        let text = RenderInlineContent.text("hello, world!").capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", text.plainText)
    }
    
    func testRenderInlineContentEmphasis() {
        let emphasis = RenderInlineContent.emphasis(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", emphasis.plainText)
    }
    
    func testRenderInlineContentStrong() {
        let strong = RenderInlineContent.strong(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", strong.plainText)
    }
    
    func testRenderInlineContentCodeVoice() {
        let codeVoice = RenderInlineContent.codeVoice(code: "code voice").capitalizingFirstWord()
        XCTAssertEqual("code voice", codeVoice.plainText)
    }
    
    func testRenderInlineContentReference() {
        let reference = RenderInlineContent.reference(identifier: .init("Test"), isActive: true, overridingTitle: "hello, world!", overridingTitleInlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", reference.plainText)
    }
    
    func testRenderInlineContentNewTerm() {
        let newTerm = RenderInlineContent.newTerm(inlineContent: [.text("helloWorld")]).capitalizingFirstWord()
        XCTAssertEqual("helloWorld", newTerm.plainText)
    }
    
    func testRenderInlineContentInlineHead() {
        let inlineHead = RenderInlineContent.inlineHead(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", inlineHead.plainText)
    }
    
    func testRenderInlineContentSubscript() {
        let subscriptContent = RenderInlineContent.subscript(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", subscriptContent.plainText)
    }
    
    func testRenderInlineContentSuperscript() {
        let superscriptContent = RenderInlineContent.superscript(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", superscriptContent.plainText)
    }
    
    func testRenderInlineContentStrikethrough() {
        let strikethrough = RenderInlineContent.strikethrough(inlineContent: [.text("hello, world!")]).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", strikethrough.plainText)
    }
    
    // MARK: - Blocks
    // Paragraphs, asides, headings, and small content are all auto-capitalized, and everything else defaults to not capitalized.
    
    func testRenderBlockContentParagraph() {
        let paragraph = RenderBlockContent.paragraph(.init(inlineContent: [.text("hello, world!")])).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", paragraph.rawIndexableTextContent(references: [:]))
    }
    
    func testRenderBlockContentAside() {
        let aside = RenderBlockContent.aside(.init(style: .init(rawValue: "Experiment"), content: [.paragraph(.init(inlineContent: [.text("hello, world!")]))])).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", aside.rawIndexableTextContent(references: [:]))
    }
    
    func testRenderBlockContentSmall() {
        let small = RenderBlockContent.small(.init(inlineContent: [.text("hello, world!")])).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", small.rawIndexableTextContent(references: [:]))
    }
    
    func testRenderBlockContentHeading() {
        let heading = RenderBlockContent.heading(.init(level: 1, text: "hello, world!", anchor: "hi")).capitalizingFirstWord()
        XCTAssertEqual("Hello, world!", heading.rawIndexableTextContent(references: [:]))
    }
    
    func testRenderBlockContentUnorderedList() {
        let list = RenderBlockContent.unorderedList(.init(items: [
            .init(content: [
            .paragraph(.init(inlineContent: [.text("hello,")])),
                ]),
            .init(content: [
                .paragraph(.init(inlineContent: [.text("world!")])),
                ]),
        ])).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", list.rawIndexableTextContent(references: [:]))
    }
    
    func testRenderBlockContentStep() {
        let step = RenderBlockContent.step(.init(content: [.paragraph(.init(inlineContent: [.text("hello, world!")]))], caption: [.paragraph(.init(inlineContent: [.text("Step caption")]))], media: RenderReferenceIdentifier("Media"), code: RenderReferenceIdentifier("Code"), runtimePreview: RenderReferenceIdentifier("Preview"))).capitalizingFirstWord()
        XCTAssertEqual("hello, world! Step caption", step.rawIndexableTextContent(references: [:]))
    }
    
    
    func testRenderBlockContentOrderedList() {
        let list = RenderBlockContent.orderedList(.init(items: [
            .init(content: [
                .paragraph(.init(inlineContent: [.text("hello,")])),
                ]),
            .init(content: [
                .paragraph(.init(inlineContent: [.text("world!")])),
                ]),
        ])).capitalizingFirstWord()
        XCTAssertEqual("hello, world!", list.rawIndexableTextContent(references: [:]))
    }
    
}