X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fqunit%2Fsuites%2Fresources%2Fmediawiki.api%2Fmediawiki.api.edit.test.js;h=4ce7c5db039b520771e6112418f1ae3adf3ff729;hp=13d7dcc2878a04598cb1f7a1fedbf06c5e9cf226;hb=8fd5a99f4e261d37cd7237a1992b1bcf03a764d3;hpb=01e599dd8782f318e760a44bd9eb3d22960c65e5 diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js index 13d7dcc287..4ce7c5db03 100644 --- a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js +++ b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js @@ -47,6 +47,47 @@ } ); } ); + QUnit.test( 'edit( mw.Title, transform String )', function ( assert ) { + this.server.respond( function ( req ) { + if ( /query.+titles=Sandbox/.test( req.url ) ) { + req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( { + curtimestamp: '2016-01-02T12:00:00Z', + query: { + pages: [ { + pageid: 1, + ns: 0, + title: 'Sandbox', + revisions: [ { + timestamp: '2016-01-01T12:00:00Z', + contentformat: 'text/x-wiki', + contentmodel: 'wikitext', + content: 'Sand.' + } ] + } ] + } + } ) ); + } + if ( /edit.+basetimestamp=2016-01-01.+starttimestamp=2016-01-02.+text=Box%2E/.test( req.requestBody ) ) { + req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( { + edit: { + result: 'Success', + oldrevid: 11, + newrevid: 13, + newtimestamp: '2016-01-03T12:00:00Z' + } + } ) ); + } + } ); + + return new mw.Api() + .edit( new mw.Title( 'Sandbox' ), function ( revision ) { + return revision.content.replace( 'Sand', 'Box' ); + } ) + .then( function ( edit ) { + assert.equal( edit.newrevid, 13 ); + } ); + } ); + QUnit.test( 'edit( title, transform Promise )', function ( assert ) { this.server.respond( function ( req ) { if ( /query.+titles=Async/.test( req.url ) ) { @@ -129,6 +170,32 @@ } ); } ); + QUnit.test( 'edit( invalid-title, transform String )', function ( assert ) { + this.server.respond( function ( req ) { + if ( /query.+titles=%1F%7C/.test( req.url ) ) { + req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( { + query: { + pages: [ { + title: '|', + invalidreason: 'The requested page title contains invalid characters: "|".', + invalid: true + } ] + } + } ) ); + } + } ); + + return new mw.Api() + .edit( '|', function ( revision ) { + return revision.content.replace( 'Sand', 'Box' ); + } ) + .then( function () { + return $.Deferred().reject( 'Unexpected success' ); + }, function ( reason ) { + assert.equal( reason, 'invalidtitle' ); + } ); + } ); + QUnit.test( 'create( title, content )', function ( assert ) { this.server.respond( function ( req ) { if ( /edit.+text=Sand/.test( req.requestBody ) ) {