jenkins-bot has submitted this change and it was merged.
Change subject: Better coverage of pagebundle POST API endpoints.
......................................................................
Better coverage of pagebundle POST API endpoints.
Change-Id: Ic97f9364282474aeff199123d7e04ce6e576c80c
---
M tests/mocha/api.js
1 file changed, 83 insertions(+), 44 deletions(-)
Approvals:
Arlolra: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/mocha/api.js b/tests/mocha/api.js
index e2337b2..4be573f 100644
--- a/tests/mocha/api.js
+++ b/tests/mocha/api.js
@@ -2,6 +2,7 @@
'use strict';
/*global describe, it, before*/
+var Util = require('../../lib/utils/Util.js').Util;
var apiServer = require('../apiServer.js');
var request = require('supertest');
var domino = require('domino');
@@ -242,32 +243,34 @@
.end(done);
});
- it('should accept the previous revision to reuse
expansions', function(done) {
+ var previousRevHTML = {
+ revid: 0,
+ html: {
+ headers: {
+ 'content-type':
'text/html;profile="mediawiki.org/specs/html/1.0.0"',
+ },
+ body: "<!DOCTYPE html>\n<html
prefix=\"dc: http://purl.org/dc/terms/ mw: http://mediawiki.org/rdf/\"
about=\"http://localhost/index.php/Special:Redirect/revision/1\"><head
prefix=\"mwr: http://localhost/index.php/Special:Redirect/\"><meta
property=\"mw:articleNamespace\" content=\"0\"/><link rel=\"dc:replaces\"
resource=\"mwr:revision/0\"/><meta property=\"dc:modified\"
content=\"2014-09-12T22:46:59.000Z\"/><meta about=\"mwr:user/0\"
property=\"dc:title\" content=\"MediaWiki default\"/><link
rel=\"dc:contributor\" resource=\"mwr:user/0\"/><meta
property=\"mw:revisionSHA1\"
content=\"8e0aa2f2a7829587801db67d0424d9b447e09867\"/><meta
property=\"dc:description\" content=\"\"/><meta property=\"mw:parsoidVersion\"
content=\"0\"/><link rel=\"dc:isVersionOf\"
href=\"http://localhost/index.php/Main_Page\"/><title>Main_Page</title><base
href=\"http://localhost/index.php/\"/><link rel=\"stylesheet\"
href=\"//localhost/load.php?modules=mediawiki.legacy.commonPrint,shared|mediawiki.skinning.elements|mediawiki.skinning.content|mediawiki.skinning.interface|skins.vector.styles|site|mediawiki.skinning.content.parsoid&only=styles&debug=true&skin=vector\"/></head><body
id=\"mwAA\" lang=\"en\" class=\"mw-content-ltr sitedir-ltr ltr mw-body
mw-body-content mediawiki\" dir=\"ltr\"><p id=\"mwAQ\"><strong
id=\"mwAg\">MediaWiki has been successfully installed.</strong></p>\n\n<p
id=\"mwAw\">Consult the <a rel=\"mw:ExtLink\"
href=\"//meta.wikimedia.org/wiki/Help:Contents\" id=\"mwBA\">User's Guide</a>
for information on using the wiki software.</p>\n\n<h2 id=\"mwBQ\"> Getting
started </h2>\n<ul id=\"mwBg\"><li id=\"mwBw\"> <a rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings\"
id=\"mwCA\">Configuration settings list</a></li>\n<li id=\"mwCQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ\"
id=\"mwCg\">MediaWiki FAQ</a></li>\n<li id=\"mwCw\"> <a rel=\"mw:ExtLink\"
href=\"https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce\"
id=\"mwDA\">MediaWiki release mailing list</a></li>\n<li id=\"mwDQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources\"
id=\"mwDg\">Localise MediaWiki for your language</a></li></ul></body></html>",
+ },
+ "data-parsoid": {
+ headers: {
+ 'content-type':
'application/json;profile="mediawiki.org/specs/data-parsoid/0.0.1"',
+ },
+ body: {
+ "counter": 14,
+ "ids": {
+ "mwAA": {"dsr": [0,
592, 0, 0]}, "mwAQ": {"dsr": [0, 59, 0, 0]}, "mwAg": {"stx": "html", "dsr": [0,
59, 8, 9]}, "mwAw": {"dsr": [61, 171, 0, 0]}, "mwBA": {"targetOff": 114,
"contentOffsets": [114, 126], "dsr": [73, 127, 41, 1]}, "mwBQ": {"dsr": [173,
194, 2, 2]}, "mwBg": {"dsr": [195, 592, 0, 0]}, "mwBw": {"dsr": [195, 300, 1,
0]}, "mwCA": {"targetOff": 272, "contentOffsets": [272, 299], "dsr": [197, 300,
75, 1]}, "mwCQ": {"dsr": [301, 373, 1, 0]}, "mwCg": {"targetOff": 359,
"contentOffsets": [359, 372], "dsr": [303, 373, 56, 1]}, "mwCw": {"dsr": [374,
472, 1, 0]}, "mwDA": {"targetOff": 441, "contentOffsets": [441, 471], "dsr":
[376, 472, 65, 1]}, "mwDQ": {"dsr": [473, 592, 1, 0]}, "mwDg": {"targetOff":
555, "contentOffsets": [555, 591], "dsr": [475, 592, 80, 1] },
+ },
+ },
+ },
+ };
+
+ it('should accept the previous revision to reuse
expansions (html)', function(done) {
request(api)
.post(version === 3 ?
mockDomain +
'/v3/transform/wikitext/to/html/Main_Page/1' :
'v2/' + mockDomain +
'/html/Main_Page/1')
.send({
- previous: {
- revid: 0,
- html: {
- headers: {
- 'content-type':
'text/html;profile="mediawiki.org/specs/html/1.0.0"',
- },
- body: "<!DOCTYPE
html>\n<html prefix=\"dc: http://purl.org/dc/terms/ mw:
http://mediawiki.org/rdf/\"
about=\"http://localhost/index.php/Special:Redirect/revision/1\"><head
prefix=\"mwr: http://localhost/index.php/Special:Redirect/\"><meta
property=\"mw:articleNamespace\" content=\"0\"/><link rel=\"dc:replaces\"
resource=\"mwr:revision/0\"/><meta property=\"dc:modified\"
content=\"2014-09-12T22:46:59.000Z\"/><meta about=\"mwr:user/0\"
property=\"dc:title\" content=\"MediaWiki default\"/><link
rel=\"dc:contributor\" resource=\"mwr:user/0\"/><meta
property=\"mw:revisionSHA1\"
content=\"8e0aa2f2a7829587801db67d0424d9b447e09867\"/><meta
property=\"dc:description\" content=\"\"/><meta property=\"mw:parsoidVersion\"
content=\"0\"/><link rel=\"dc:isVersionOf\"
href=\"http://localhost/index.php/Main_Page\"/><title>Main_Page</title><base
href=\"http://localhost/index.php/\"/><link rel=\"stylesheet\"
href=\"//localhost/load.php?modules=mediawiki.legacy.commonPrint,shared|mediawiki.skinning.elements|mediawiki.skinning.content|mediawiki.skinning.interface|skins.vector.styles|site|mediawiki.skinning.content.parsoid&only=styles&debug=true&skin=vector\"/></head><body
id=\"mwAA\" lang=\"en\" class=\"mw-content-ltr sitedir-ltr ltr mw-body
mw-body-content mediawiki\" dir=\"ltr\"><p id=\"mwAQ\"><strong
id=\"mwAg\">MediaWiki has been successfully installed.</strong></p>\n\n<p
id=\"mwAw\">Consult the <a rel=\"mw:ExtLink\"
href=\"//meta.wikimedia.org/wiki/Help:Contents\" id=\"mwBA\">User's Guide</a>
for information on using the wiki software.</p>\n\n<h2 id=\"mwBQ\"> Getting
started </h2>\n<ul id=\"mwBg\"><li id=\"mwBw\"> <a rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings\"
id=\"mwCA\">Configuration settings list</a></li>\n<li id=\"mwCQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ\"
id=\"mwCg\">MediaWiki FAQ</a></li>\n<li id=\"mwCw\"> <a rel=\"mw:ExtLink\"
href=\"https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce\"
id=\"mwDA\">MediaWiki release mailing list</a></li>\n<li id=\"mwDQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources\"
id=\"mwDg\">Localise MediaWiki for your language</a></li></ul></body></html>",
- },
- "data-parsoid": {
- headers: {
- 'content-type':
'application/json;profile="mediawiki.org/specs/data-parsoid/0.0.1"',
- },
- body: {
- "counter": 14,
- "ids": {
- "mwAA":
{"dsr": [0, 592, 0, 0]}, "mwAQ": {"dsr": [0, 59, 0, 0]}, "mwAg": {"stx":
"html", "dsr": [0, 59, 8, 9]}, "mwAw": {"dsr": [61, 171, 0, 0]}, "mwBA":
{"targetOff": 114, "contentOffsets": [114, 126], "dsr": [73, 127, 41, 1]},
"mwBQ": {"dsr": [173, 194, 2, 2]}, "mwBg": {"dsr": [195, 592, 0, 0]}, "mwBw":
{"dsr": [195, 300, 1, 0]}, "mwCA": {"targetOff": 272, "contentOffsets": [272,
299], "dsr": [197, 300, 75, 1]}, "mwCQ": {"dsr": [301, 373, 1, 0]}, "mwCg":
{"targetOff": 359, "contentOffsets": [359, 372], "dsr": [303, 373, 56, 1]},
"mwCw": {"dsr": [374, 472, 1, 0]}, "mwDA": {"targetOff": 441, "contentOffsets":
[441, 471], "dsr": [376, 472, 65, 1]}, "mwDQ": {"dsr": [473, 592, 1, 0]},
"mwDg": {"targetOff": 555, "contentOffsets": [555, 591], "dsr": [475, 592, 80,
1] },
- },
- },
- },
- },
+ previous: previousRevHTML,
})
.expect(validHtmlResponse(function(doc) {
doc.body.firstChild.textContent.should.equal("MediaWiki has been successfully
installed.");
@@ -275,7 +278,23 @@
.end(done);
});
- it('should accept the original and reuse certain
expansions', function(done) {
+ it('should accept the previous revision to reuse
expansions (pagebundle)', function(done) {
+ request(api)
+ .post(version === 3 ?
+ mockDomain +
'/v3/transform/wikitext/to/pagebundle/Main_Page/1' :
+ 'v2/' + mockDomain +
'/pagebundle/Main_Page/1')
+ .send({
+ previous: previousRevHTML,
+ })
+ .expect(validPageBundleResponse(function(doc) {
+
doc.body.firstChild.textContent.should.equal("MediaWiki has been successfully
installed.");
+ }))
+ .end(done);
+ });
+
+ var origHTML = Util.clone(previousRevHTML);
+ origHTML.revid = 1;
+ it('should accept the original and reuse certain
expansions (html)', function(done) {
request(api)
.post(version === 3 ?
mockDomain +
'/v3/transform/wikitext/to/html/Main_Page/1' :
@@ -284,28 +303,26 @@
update: {
templates: true,
},
- original: {
- revid: 1,
- html: {
- headers: {
- 'content-type':
'text/html;profile="mediawiki.org/specs/html/1.0.0"',
- },
- body: "<!DOCTYPE
html>\n<html prefix=\"dc: http://purl.org/dc/terms/ mw:
http://mediawiki.org/rdf/\"
about=\"http://localhost/index.php/Special:Redirect/revision/1\"><head
prefix=\"mwr: http://localhost/index.php/Special:Redirect/\"><meta
property=\"mw:articleNamespace\" content=\"0\"/><link rel=\"dc:replaces\"
resource=\"mwr:revision/0\"/><meta property=\"dc:modified\"
content=\"2014-09-12T22:46:59.000Z\"/><meta about=\"mwr:user/0\"
property=\"dc:title\" content=\"MediaWiki default\"/><link
rel=\"dc:contributor\" resource=\"mwr:user/0\"/><meta
property=\"mw:revisionSHA1\"
content=\"8e0aa2f2a7829587801db67d0424d9b447e09867\"/><meta
property=\"dc:description\" content=\"\"/><meta property=\"mw:parsoidVersion\"
content=\"0\"/><link rel=\"dc:isVersionOf\"
href=\"http://localhost/index.php/Main_Page\"/><title>Main_Page</title><base
href=\"http://localhost/index.php/\"/><link rel=\"stylesheet\"
href=\"//localhost/load.php?modules=mediawiki.legacy.commonPrint,shared|mediawiki.skinning.elements|mediawiki.skinning.content|mediawiki.skinning.interface|skins.vector.styles|site|mediawiki.skinning.content.parsoid&only=styles&debug=true&skin=vector\"/></head><body
id=\"mwAA\" lang=\"en\" class=\"mw-content-ltr sitedir-ltr ltr mw-body
mw-body-content mediawiki\" dir=\"ltr\"><p id=\"mwAQ\"><strong
id=\"mwAg\">MediaWiki has been successfully installed.</strong></p>\n\n<p
id=\"mwAw\">Consult the <a rel=\"mw:ExtLink\"
href=\"//meta.wikimedia.org/wiki/Help:Contents\" id=\"mwBA\">User's Guide</a>
for information on using the wiki software.</p>\n\n<h2 id=\"mwBQ\"> Getting
started </h2>\n<ul id=\"mwBg\"><li id=\"mwBw\"> <a rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings\"
id=\"mwCA\">Configuration settings list</a></li>\n<li id=\"mwCQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ\"
id=\"mwCg\">MediaWiki FAQ</a></li>\n<li id=\"mwCw\"> <a rel=\"mw:ExtLink\"
href=\"https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce\"
id=\"mwDA\">MediaWiki release mailing list</a></li>\n<li id=\"mwDQ\"> <a
rel=\"mw:ExtLink\"
href=\"//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources\"
id=\"mwDg\">Localise MediaWiki for your language</a></li></ul></body></html>",
- },
- "data-parsoid": {
- headers: {
- 'content-type':
'application/json;profile="mediawiki.org/specs/data-parsoid/0.0.1"',
- },
- body: {
- "counter": 14,
- "ids": {
- "mwAA":
{"dsr": [0, 592, 0, 0]}, "mwAQ": {"dsr": [0, 59, 0, 0]}, "mwAg": {"stx":
"html", "dsr": [0, 59, 8, 9]}, "mwAw": {"dsr": [61, 171, 0, 0]}, "mwBA":
{"targetOff": 114, "contentOffsets": [114, 126], "dsr": [73, 127, 41, 1]},
"mwBQ": {"dsr": [173, 194, 2, 2]}, "mwBg": {"dsr": [195, 592, 0, 0]}, "mwBw":
{"dsr": [195, 300, 1, 0]}, "mwCA": {"targetOff": 272, "contentOffsets": [272,
299], "dsr": [197, 300, 75, 1]}, "mwCQ": {"dsr": [301, 373, 1, 0]}, "mwCg":
{"targetOff": 359, "contentOffsets": [359, 372], "dsr": [303, 373, 56, 1]},
"mwCw": {"dsr": [374, 472, 1, 0]}, "mwDA": {"targetOff": 441, "contentOffsets":
[441, 471], "dsr": [376, 472, 65, 1]}, "mwDQ": {"dsr": [473, 592, 1, 0]},
"mwDg": {"targetOff": 555, "contentOffsets": [555, 591], "dsr": [475, 592, 80,
1] },
- },
- },
- },
- },
+ original: origHTML,
})
.expect(validHtmlResponse(function(doc) {
+
doc.body.firstChild.textContent.should.equal("MediaWiki has been successfully
installed.");
+ }))
+ .end(done);
+ });
+
+ it('should accept the original and reuse certain
expansions (pagebundle)', function(done) {
+ request(api)
+ .post(version === 3 ?
+ mockDomain +
'/v3/transform/wikitext/to/pagebundle/Main_Page/1' :
+ 'v2/' + mockDomain +
'/pagebundle/Main_Page/1')
+ .send({
+ update: {
+ templates: true,
+ },
+ original: origHTML,
+ })
+ .expect(validPageBundleResponse(function(doc) {
doc.body.firstChild.textContent.should.equal("MediaWiki has been successfully
installed.");
}))
.end(done);
@@ -358,7 +375,7 @@
.end(done);
});
- it('should require a title when no wikitext is
provided', function(done) {
+ it('should require a title when no wikitext is provided
(html)', function(done) {
request(api)
.post(version === 3 ?
mockDomain +
'/v3/transform/wikitext/to/html/' :
@@ -368,7 +385,17 @@
.end(done);
});
- it('should not require a title when empty wikitext is
provided', function(done) {
+ it('should require a title when no wikitext is provided
(pagebundle)', function(done) {
+ request(api)
+ .post(version === 3 ?
+ mockDomain +
'/v3/transform/wikitext/to/pagebundle/' :
+ 'v2/' + mockDomain + '/pagebundle/')
+ .send()
+ .expect(400)
+ .end(done);
+ });
+
+ it('should not require a title when empty wikitext is
provided (html)', function(done) {
request(api)
.post(version === 3 ?
mockDomain +
'/v3/transform/wikitext/to/html/' :
@@ -382,6 +409,18 @@
.end(done);
});
+ it('should not require a title when empty wikitext is
provided (pagebundle)', function(done) {
+ request(api)
+ .post(version === 3 ?
+ mockDomain +
'/v3/transform/wikitext/to/pagebundle/' :
+ 'v2/' + mockDomain + '/pagebundle/')
+ .send({
+ wikitext: '',
+ })
+ .expect(validPageBundleResponse())
+ .end(done);
+ });
+
it('should not require a title when wikitext is
provided', function(done) {
request(api)
.post(version === 3 ?
--
To view, visit https://gerrit.wikimedia.org/r/252583
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic97f9364282474aeff199123d7e04ce6e576c80c
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: GWicke <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits