|
|
@ -10,7 +10,13 @@ var JSDOMParser = readability.JSDOMParser;
|
|
|
|
|
|
|
|
|
|
|
|
var testPages = require("./bootstrap").getTestPages();
|
|
|
|
var testPages = require("./bootstrap").getTestPages();
|
|
|
|
|
|
|
|
|
|
|
|
function suite(result, expectedContent, expectedMetadata) {
|
|
|
|
function runTestsWithItems(label, beforeFn, expectedContent, expectedMetadata) {
|
|
|
|
|
|
|
|
describe(label, function() {
|
|
|
|
|
|
|
|
var result;
|
|
|
|
|
|
|
|
before(function() {
|
|
|
|
|
|
|
|
result = beforeFn();
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
it("should return a result object", function() {
|
|
|
|
it("should return a result object", function() {
|
|
|
|
expect(result).to.include.keys("content", "title", "excerpt", "byline");
|
|
|
|
expect(result).to.include.keys("content", "title", "excerpt", "byline");
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -34,6 +40,7 @@ function suite(result, expectedContent, expectedMetadata) {
|
|
|
|
it("should probably be readerable", function() {
|
|
|
|
it("should probably be readerable", function() {
|
|
|
|
expect(expectedMetadata.readerable).eql(result.readerable);
|
|
|
|
expect(expectedMetadata.readerable).eql(result.readerable);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function removeCommentNodesRecursively(node) {
|
|
|
|
function removeCommentNodesRecursively(node) {
|
|
|
@ -57,7 +64,7 @@ describe("Test page", function() {
|
|
|
|
pathBase: "http://fakehost/test/"
|
|
|
|
pathBase: "http://fakehost/test/"
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
describe("jsdom", function() {
|
|
|
|
runTestsWithItems("jsdom", function() {
|
|
|
|
var doc = jsdom(testPage.source, {
|
|
|
|
var doc = jsdom(testPage.source, {
|
|
|
|
features: {
|
|
|
|
features: {
|
|
|
|
FetchExternalResources: false,
|
|
|
|
FetchExternalResources: false,
|
|
|
@ -69,17 +76,17 @@ describe("Test page", function() {
|
|
|
|
var readerable = readability.isProbablyReaderable();
|
|
|
|
var readerable = readability.isProbablyReaderable();
|
|
|
|
var result = readability.parse();
|
|
|
|
var result = readability.parse();
|
|
|
|
result.readerable = readerable;
|
|
|
|
result.readerable = readerable;
|
|
|
|
suite(result, testPage.expectedContent, testPage.expectedMetadata);
|
|
|
|
return result;
|
|
|
|
});
|
|
|
|
}, testPage.expectedContent, testPage.expectedMetadata);
|
|
|
|
|
|
|
|
|
|
|
|
describe("JSDOMParser", function() {
|
|
|
|
runTestsWithItems("JSDOMParser", function() {
|
|
|
|
var doc = new JSDOMParser().parse(testPage.source);
|
|
|
|
var doc = new JSDOMParser().parse(testPage.source);
|
|
|
|
var readability = new Readability(uri, doc);
|
|
|
|
var readability = new Readability(uri, doc);
|
|
|
|
var readerable = readability.isProbablyReaderable();
|
|
|
|
var readerable = readability.isProbablyReaderable();
|
|
|
|
var result = readability.parse();
|
|
|
|
var result = readability.parse();
|
|
|
|
result.readerable = readerable;
|
|
|
|
result.readerable = readerable;
|
|
|
|
suite(result, testPage.expectedContent, testPage.expectedMetadata);
|
|
|
|
return result;
|
|
|
|
});
|
|
|
|
}, testPage.expectedContent, testPage.expectedMetadata);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|