2 QUnit
.module( 'mediawiki.ForeignApi', QUnit
.newMwEnvironment( {
4 this.server
= this.sandbox
.useFakeServer();
5 this.server
.respondImmediately
= true;
9 QUnit
.test( 'origin is included in GET requests', function ( assert
) {
10 var api
= new mw
.ForeignApi( '//localhost:4242/w/api.php' );
12 this.server
.respond( function ( request
) {
13 assert
.ok( request
.url
.match( /origin=/ ), 'origin is included in GET requests' );
14 request
.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
20 QUnit
.test( 'origin is included in POST requests', function ( assert
) {
21 var api
= new mw
.ForeignApi( '//localhost:4242/w/api.php' );
23 this.server
.respond( function ( request
) {
24 assert
.ok( request
.requestBody
.match( /origin=/ ), 'origin is included in POST request body' );
25 assert
.ok( request
.url
.match( /origin=/ ), 'origin is included in POST request URL, too' );
26 request
.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
29 return api
.post( {} );
32 QUnit
.test( 'origin is not included in same-origin GET requests', function ( assert
) {
33 var apiUrl
= location
.protocol
+ '//' + location
.host
+ '/w/api.php',
34 api
= new mw
.ForeignApi( apiUrl
);
36 this.server
.respond( function ( request
) {
37 assert
.strictEqual( request
.url
.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in GET requests' );
38 request
.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
44 QUnit
.test( 'origin is not included in same-origin POST requests', function ( assert
) {
45 var apiUrl
= location
.protocol
+ '//' + location
.host
+ '/w/api.php',
46 api
= new mw
.ForeignApi( apiUrl
);
48 this.server
.respond( function ( request
) {
49 assert
.strictEqual( request
.requestBody
.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request body' );
50 assert
.strictEqual( request
.url
.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request URL, either' );
51 request
.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
54 return api
.post( {} );