mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-17 08:05:19 +00:00
66 lines
2.5 KiB
JavaScript
66 lines
2.5 KiB
JavaScript
var should = require('should');
|
|
var fs = require('fs');
|
|
var _ = require('lodash');
|
|
var path = require('path');
|
|
var cheerio = require('cheerio');
|
|
|
|
var links = require("../lib/utils/links");
|
|
|
|
describe('Links', function () {
|
|
it('should correctly test external links', function() {
|
|
links.isExternal("http://google.fr").should.be.exactly(true);
|
|
links.isExternal("https://google.fr").should.be.exactly(true);
|
|
links.isExternal("test.md").should.be.exactly(false);
|
|
links.isExternal("folder/test.md").should.be.exactly(false);
|
|
links.isExternal("/folder/test.md").should.be.exactly(false);
|
|
});
|
|
|
|
it('should correctly detect anchor links', function() {
|
|
links.isAnchor("#test").should.be.exactly(true);
|
|
links.isAnchor(" #test").should.be.exactly(true);
|
|
links.isAnchor("https://google.fr#test").should.be.exactly(false);
|
|
links.isAnchor("test.md#test").should.be.exactly(false);
|
|
});
|
|
|
|
describe('toAbsolute', function() {
|
|
it('should correctly transform as absolute', function() {
|
|
links.toAbsolute("http://google.fr").should.be.equal("http://google.fr");
|
|
links.toAbsolute("test.md", "./", "./").should.be.equal("test.md");
|
|
links.toAbsolute("folder/test.md", "./", "./").should.be.equal("folder/test.md");
|
|
});
|
|
|
|
it('should correctly handle windows path', function() {
|
|
links.toAbsolute("folder\\test.md", "./", "./").should.be.equal("folder/test.md");
|
|
});
|
|
|
|
it('should correctly handle absolute path', function() {
|
|
links.toAbsolute("/test.md", "./", "./").should.be.equal("test.md");
|
|
links.toAbsolute("/test.md", "test", "test").should.be.equal("../test.md");
|
|
links.toAbsolute("/sub/test.md", "test", "test").should.be.equal("../sub/test.md");
|
|
});
|
|
});
|
|
|
|
describe('page', function() {
|
|
var book;
|
|
|
|
before(function() {
|
|
return books.generate("links", "website")
|
|
.then(function(_book) {
|
|
book = _book;
|
|
});
|
|
});
|
|
|
|
it('should correctly replace relative links', function() {
|
|
var readme = fs.readFileSync(
|
|
path.join(book.options.output, "folder1/index.html"),
|
|
{ encoding: "utf-8" }
|
|
);
|
|
var $ = cheerio.load(readme);
|
|
var $a = $(".page-inner a");
|
|
|
|
$a.attr('href').should.be.exactly("../folder2/index.html");
|
|
})
|
|
});
|
|
|
|
});
|