summaryrefslogtreecommitdiffstats
path: root/test/codehighlighting.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/codehighlighting.js')
-rw-r--r--test/codehighlighting.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/codehighlighting.js b/test/codehighlighting.js
new file mode 100644
index 0000000..e35f37e
--- /dev/null
+++ b/test/codehighlighting.js
@@ -0,0 +1,58 @@
+var _ = require('lodash');
+var should = require('should');
+var path = require('path');
+var fs = require('fs');
+
+var Plugin = require('../lib/plugin');
+var PLUGINS_ROOT = path.resolve(__dirname, 'plugins');
+
+describe('Code Highlighting', function () {
+ var book, PAGE;
+
+ before(function() {
+ return books.generate('highlight', 'website', {
+ prepare: function(_book) {
+ book = _book;
+
+ var plugin = new Plugin(book, "replace_highlight");
+ plugin.load("./replace_highlight", PLUGINS_ROOT);
+
+ book.plugins.load(plugin);
+ }
+ })
+ .then(function() {
+ PAGE = fs.readFileSync(
+ path.join(book.options.output, "index.html"),
+ { encoding: "utf-8" }
+ );
+ });
+ });
+
+ it('should correctly replace highlighting', function() {
+ PAGE.should.be.html({
+ "code": {
+ index: 0,
+ text: 'code_test 1\n_code'
+ }
+ });
+ });
+
+ it('should correctly replace highlighting with language', function() {
+ PAGE.should.be.html({
+ "code": {
+ index: 1,
+ text: 'lang_test 2\n_lang'
+ }
+ });
+ });
+
+ it('should correctly replace highlighting for inline code', function() {
+ PAGE.should.be.html({
+ "code": {
+ index: 2,
+ text: 'code_test 3_code'
+ }
+ });
+ });
+});
+