" A BreaPageTest is a test class for testing the behavior of BreaPage " Class { #name : #BreaPageTest, #superclass : #TestCase, #category : #'Brea-Tests' } { #category : #initialization } BreaPageTest >> createHTMLTemplateFile [ | testFile contents | testFile := FileLocator temp / 'template.mus.html'. testFile ensureCreateFile. contents := '
{{#show}} You should see me. {{/show}}
{{#unhide}} You should not see me. {{/unhide}}
{{{ contents }}} '. MarkupFile exportAsFileOn: testFile containing: contents. ] { #category : #initialization } BreaPageTest >> createJSONFile [ | testFile contents | testFile := self jsonTestFile. testFile ensureCreateFile. contents := '{ "title": "This is a test", "show": true, "unhide": false }'. MarkupFile exportAsFileOn: testFile containing: contents. ] { #category : #initialization } BreaPageTest >> createMarkdownFile [ | testFile contents | testFile := self markdownTestFile. testFile ensureCreateFile. contents := '--- title: This is a test show: true unhide: false --- # Level one header And paragraph contents with _emphasis_ and **strong emphasis**.'. MarkupFile exportAsFileOn: testFile containing: contents. ] { #category : #'as yet unclassified' } BreaPageTest >> htmlBodyContents [ ^ 'And paragraph contents with emphasis and strong emphasis.
' ] { #category : #'as yet unclassified' } BreaPageTest >> htmlOutput [ ^ 'You should see me.
', self htmlBodyContents, ' ' ] { #category : #'as yet unclassified' } BreaPageTest >> jsonTestFile [ ^ FileLocator temp / 'test1.json'. ] { #category : #'as yet unclassified' } BreaPageTest >> markdownTestFile [ ^ FileLocator temp / 'test.md'. ] { #category : #'as yet unclassified' } BreaPageTest >> setUp [ "I create disposable simple files for testing purposes." super setUp. self createMarkdownFile. self createHTMLTemplateFile. self createJSONFile ] { #category : #tests } BreaPageTest >> testJSONMetadataExtraction [ | page testMetadata | testMetadata := {'title' -> 'This is a test' . 'show' -> true. 'unhide' -> false} asDictionary. page := BreaPage new. page shortName: 'test1'; folder: FileLocator temp. self assert: page metadata equals: testMetadata ] { #category : #tests } BreaPageTest >> testJSONPopulateMetadata [ | page testMetadata | testMetadata := {'title' -> 'This is a test' . 'show' -> true. 'unhide' -> false} asDictionary. page := BreaPage new. page shortName: 'test1'; folder: FileLocator temp. page templateData at: 'extra' put: 'value'. self assert: page populateMetadata equals: (testMetadata at: 'extra' put: 'value'; yourself) ] { #category : #tests } BreaPageTest >> testMarkdownContentExtraction [ | page | page := BreaPage new. page shortName: 'test'; folder: FileLocator temp. self assert: page contents equals: self markdownTestFile contents. ] { #category : #tests } BreaPageTest >> testMarkdownHTMLExport [ | page | page := BreaPage new. page shortName: 'test'; folder: FileLocator temp; template: 'template.mus.html'; bodyTag: 'contents'. self assert: (page exportAsHTML contents) equals: self htmlOutput. ] { #category : #tests } BreaPageTest >> testMarkdownMetadataExtraction [ | page testMetadata | testMetadata := {'title' -> 'This is a test' . 'show' -> true. 'unhide' -> false} asDictionary. page := BreaPage new. page shortName: 'test'; folder: FileLocator temp. self assert: page metadata equals: testMetadata ] { #category : #tests } BreaPageTest >> testMarkdownPopulateBody [ | page | page := BreaPage new. page shortName: 'test'; folder: FileLocator temp; bodyTag: 'contents'. page populateTaggedBody. self assert: (page templateData at: 'contents') equals: self htmlBodyContents. ] { #category : #tests } BreaPageTest >> testMarkdownPopulateMetadata [ | page testMetadata | testMetadata := {'title' -> 'This is a test' . 'show' -> true. 'unhide' -> false} asDictionary. page := BreaPage new. page shortName: 'test'; folder: FileLocator temp. page templateData at: 'extra' put: 'value'. self assert: page populateMetadata equals: (testMetadata at: 'extra' put: 'value'; yourself) ]