2020-11-21 18:34:20 +00:00
|
|
|
"
|
|
|
|
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 :=
|
|
|
|
'<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>{{title}}</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>{{title}}</h1>
|
|
|
|
<p>
|
|
|
|
{{#show}} You should see me. {{/show}}
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
{{#unhide}} You should not see me. {{/unhide}}
|
|
|
|
</p>
|
2020-11-21 19:15:38 +00:00
|
|
|
{{{ contents }}}
|
2020-11-21 18:34:20 +00:00
|
|
|
</body>
|
|
|
|
</html>'.
|
|
|
|
|
|
|
|
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 [
|
|
|
|
^ '<h1 id="level-one-header">Level one header</h1>
|
|
|
|
<p>And paragraph contents with <em>emphasis</em> and <strong>strong emphasis</strong>.</p>
|
|
|
|
'
|
|
|
|
]
|
|
|
|
|
|
|
|
{ #category : #'as yet unclassified' }
|
|
|
|
BreaPageTest >> htmlOutput [
|
|
|
|
^ '<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>This is a test</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>This is a test</h1>
|
|
|
|
<p>
|
2020-11-21 19:15:38 +00:00
|
|
|
You should see me.
|
2020-11-21 18:34:20 +00:00
|
|
|
</p>
|
|
|
|
<p>
|
2020-11-21 19:15:38 +00:00
|
|
|
|
|
|
|
</p>
|
|
|
|
', self htmlBodyContents,
|
|
|
|
'
|
|
|
|
</body>
|
2020-11-21 18:34:20 +00:00
|
|
|
</html>'
|
|
|
|
]
|
|
|
|
|
|
|
|
{ #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.
|
|
|
|
]
|
|
|
|
|
|
|
|
{ #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 }
|
2020-11-21 19:15:38 +00:00
|
|
|
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 }
|
2020-11-21 18:34:20 +00:00
|
|
|
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)
|
|
|
|
]
|