From 9d37633f159aad9d4027fbf85c615b5d0b8bef12 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 5 Dec 2011 12:26:34 +0000 Subject: [PATCH] Experimenting with test rigs for the wikifier This approach seems to be a bit too verbose for comfort --- wikitest.js | 98 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 74 insertions(+), 24 deletions(-) diff --git a/wikitest.js b/wikitest.js index f305d9a06..8ba7fa7a0 100644 --- a/wikitest.js +++ b/wikitest.js @@ -10,29 +10,79 @@ var Tiddler = require("./js/Tiddler.js").Tiddler, utils = require("./js/Utils.js"), util = require("util"); -// Create a store -var store = new TiddlyWiki(); - -// Create some tiddlers -store.addTiddler(new Tiddler({ - title: "First tiddler", - text: "This is the ''text'' of the first tiddler" -})); -store.addTiddler(new Tiddler({ - title: "Second tiddler", - text: "!!Heading\nThis is the text of the second tiddler. It has a list:\n* Item one\n* Item two\n* Item three\nAnd a <>\n" -})); - -// Create the formatter -var formatter = new Formatter(); - -// Create the wikifier attached to the store and the formatter -var wikifier = new Wikifier(store,formatter); - -function wikifyTiddler(title) { - wikifier.wikify(store.getTiddlerText(title)); - console.error(title + " wikified to:\n" + util.inspect(wikifier.tree,false,10)); +var wikiTest = function(spec) { + var t, + store = new TiddlyWiki(), + formatter = new Formatter(), + wikifier = new Wikifier(store,formatter), + w; + for(t=0; t>\n' }, + { title: 'ThirdTiddler', + text: 'An explicit link [[Fourth Tiddler]] and [[a pretty link|Fourth Tiddler]]' }, + { title: 'Fourth Tiddler', + text: 'An image [img[Something.jpg]]' } ], + tests: + [ { tiddler: 'FirstTiddler', + output: + [ { type: 'text', value: 'This is the ' }, + { type: 'strong', + children: [ { type: 'text', value: 'text' } ] }, + { type: 'text', + value: ' of the first tiddler, with a link to the ' }, + { type: 'tiddlerLink', + href: 'SecondTiddler', + children: [ { type: 'text', value: 'SecondTiddler' } ] }, + { type: 'text', value: ', too.' } ] }, + { tiddler: 'SecondTiddler', + output: + [ { type: 'h2', + attributes: {}, + children: [ { type: 'text', value: 'Heading' } ] }, + { type: 'text', + value: 'This is the second tiddler. It has a list:' }, + { type: 'br' }, + { type: 'ul', + attributes: {}, + children: + [ { type: 'li', + attributes: {}, + children: [ { type: 'text', value: ' Item one' } ] }, + { type: 'li', + attributes: {}, + children: [ { type: 'text', value: ' Item two' } ] }, + { type: 'li', + attributes: {}, + children: [ { type: 'text', value: ' Item three' } ] } ] }, + { type: 'text', value: 'And a ' }, + { type: 'macro', name: 'macro', params: 'invocation' }, + { type: 'br' } ] }, + { tiddler: 'ThirdTiddler', + output: + [ { type: 'text', value: 'An explicit link ' }, + { type: 'tiddlerLink', + href: 'Fourth Tiddler', + children: [ { type: 'text', value: 'Fourth Tiddler' } ] }, + { type: 'text', value: ' and ' }, + { type: 'tiddlerLink', + href: 'Fourth Tiddler', + children: [ { type: 'text', value: 'a pretty link' } ] } ] }, + { tiddler: 'Fourth Tiddler', + output: + [ { type: 'text', value: 'An image ' }, + { type: 'img', attributes: {}, src: 'Something.jpg' } ] } ] } +);