summaryrefslogtreecommitdiffstats
path: root/test/page.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/page.js')
-rw-r--r--test/page.js102
1 files changed, 80 insertions, 22 deletions
diff --git a/test/page.js b/test/page.js
index b68e894..41a0893 100644
--- a/test/page.js
+++ b/test/page.js
@@ -7,7 +7,9 @@ describe('Page', function() {
before(function() {
return mock.setupDefaultBook({
'heading.md': '# Hello\n\n## World',
+
'links.md': '[link](hello.md) [link 2](variables/page/next.md) [readme](README.md)',
+ 'links/relative.md': '[link](../hello.md) [link 2](/variables/page/next.md) [readme](../README.md)',
'annotations/simple.md': 'A magicien say abracadabra!',
'annotations/code.md': 'A magicien say `abracadabra`!',
@@ -71,12 +73,12 @@ describe('Page', function() {
describe('.relative', function() {
it('should correctly resolve absolute path in the book', function() {
var page = book.addPage('heading.md');
- var page2 = book.addPage('folder/paths.md');
-
page.relative('/test.png').should.equal('test.png');
page.relative('test.png').should.equal('test.png');
+
+ var page2 = book.addPage('folder/paths.md');
page2.relative('/test.png').should.equal('../test.png');
- page2.relative('test.png').should.equal('test.png');
+ page2.relative('test.png').should.equal('../test.png');
});
});
@@ -126,35 +128,91 @@ describe('Page', function() {
});
});
- describe('Links', function() {
+ describe('.resolve', function() {
var page;
before(function() {
- page = book.addPage('links.md');
- return page.toHTML(output);
+ page = book.addPage('links/relative.md');
});
- it('should replace links to page to .html', function() {
- page.content.should.be.html({
- 'a[href="./"]': {
- count: 1
- }
- });
+ it('should resolve to a relative path (same folder)', function() {
+ page.relative('links/test.md').should.equal('test.md');
});
- it('should use directory urls when file is a README', function() {
- page.content.should.be.html({
- 'a[href="./"]': {
- count: 1
- }
+ it('should resolve to a relative path (parent folder)', function() {
+ page.relative('test.md').should.equal('../test.md');
+ page.relative('hello/test.md').should.equal('../hello/test.md');
+ });
+
+ it('should resolve to a relative path (child folder)', function() {
+ page.relative('links/hello/test.md').should.equal('hello/test.md');
+ });
+ });
+
+ describe('Links', function() {
+ describe('From base directory', function() {
+ var page;
+
+ before(function() {
+ page = book.addPage('links.md');
+ return page.toHTML(output);
+ });
+
+ it('should replace links to page to .html', function() {
+ page.content.should.be.html({
+ 'a[href="variables/page/next.html"]': {
+ count: 1
+ }
+ });
+ });
+
+ it('should use directory urls when file is a README', function() {
+ page.content.should.be.html({
+ 'a[href="./"]': {
+ count: 1
+ }
+ });
+ });
+
+ it('should not replace links to file not in SUMMARY', function() {
+ page.content.should.be.html({
+ 'a[href="hello.md"]': {
+ count: 1
+ }
+ });
});
});
- it('should not replace links to file not in SUMMARY', function() {
- page.content.should.be.html({
- 'a[href="hello.md"]': {
- count: 1
- }
+ describe('From sub-directory', function() {
+ var page;
+
+ before(function() {
+ page = book.addPage('links/relative.md');
+ return page.toHTML(output);
+ });
+
+ it('should replace links to page to .html', function() {
+ page.content.should.be.html({
+ 'a[href="../variables/page/next.html"]': {
+ count: 1
+ }
+ });
+ });
+
+ it('should use directory urls when file is a README', function() {
+ page.content.should.be.html({
+ 'a[href="../"]': {
+ count: 1
+ }
+ });
+ });
+
+ it('should not replace links to file not in SUMMARY', function() {
+ page.content.should.be.html({
+ 'a[href="../hello.md"]': {
+ count: 1
+ }
+ });
});
});
});