Page MenuHomePhorge

No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None
diff --git a/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignApi.test.js b/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignApi.test.js
index 62b5ea0f4b0..631ce12dd25 100644
--- a/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignApi.test.js
+++ b/tests/qunit/resources/mediawiki.ForeignApi/mediawiki.ForeignApi.test.js
@@ -4,54 +4,53 @@ QUnit.module( 'mediawiki.ForeignApi', ( hooks ) => {
hooks.beforeEach( function () {
this.server = this.sandbox.useFakeServer();
this.server.respondImmediately = true;
+
+ // Display debug errors from mw.Api, because the default exception value is
+ // a useless "http" with details like "404 Not Found" hidden in secondary arguments
+ // that require a custom Deferred handler, or mw.log.
+ this.sandbox.stub( mw, 'log', mw.log.warn );
} );
- QUnit.test( 'origin is included in GET requests', function ( assert ) {
- const api = new CoreForeignApi( '//localhost:4242/w/api.php' );
+ QUnit.test( 'origin is included in GET requests', async function ( assert ) {
+ this.server.respondWith( 'GET', /origin=/, [ 200, { 'Content-Type': 'application/json' }, '[]' ] );
- this.server.respond( ( request ) => {
- assert.true( /origin=/.test( request.url ), 'origin is included in GET requests' );
- request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
- } );
+ const api = new CoreForeignApi( '//example.test/w/api.php' );
+ const res = await api.get( {} );
- return api.get( {} );
+ assert.deepEqual( res, [], 'result' );
} );
- QUnit.test( 'origin is included in POST requests', function ( assert ) {
- const api = new CoreForeignApi( '//localhost:4242/w/api.php' );
+ QUnit.test( 'origin is included in POST requests', async function ( assert ) {
+ this.server.respondWith( 'POST', /origin=/, [ 200, { 'Content-Type': 'application/json' }, '[]' ] );
- this.server.respond( ( request ) => {
- assert.true( /origin=/.test( request.requestBody ), 'origin is included in POST request body' );
- assert.true( /origin=/.test( request.url ), 'origin is included in POST request URL, too' );
- request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
- } );
+ const api = new CoreForeignApi( '//example.test/w/api.php' );
+ const res = await api.post( {} );
- return api.post( {} );
+ assert.deepEqual( res, [], 'result' );
+ const { requestBody } = this.server.requests[ 0 ];
+ assert.true( /origin=/.test( requestBody ), 'origin is included in POST request body' );
} );
- QUnit.test( 'origin is not included in same-origin GET requests', function ( assert ) {
- const apiUrl = location.protocol + '//' + location.host + '/w/api.php',
- api = new CoreForeignApi( apiUrl );
+ QUnit.test( 'origin is not included in same-origin GET requests', async function ( assert ) {
+ this.server.respond( [ 200, { 'Content-Type': 'application/json' }, '[]' ] );
- this.server.respond( ( request ) => {
- assert.strictEqual( request.url.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in GET requests' );
- request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
- } );
+ const api = new CoreForeignApi( location.origin + '/w/api.php' );
+ const res = await api.get( {} );
- return api.get( {} );
+ assert.deepEqual( res, [], 'result' );
+ const { url } = this.server.requests[ 0 ];
+ assert.strictEqual( url.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in GET requests' );
} );
- QUnit.test( 'origin is not included in same-origin POST requests', function ( assert ) {
- const apiUrl = location.protocol + '//' + location.host + '/w/api.php',
- api = new CoreForeignApi( apiUrl );
+ QUnit.test( 'origin is not included in same-origin POST requests', async function ( assert ) {
+ this.server.respond( [ 200, { 'Content-Type': 'application/json' }, '[]' ] );
- this.server.respond( ( request ) => {
- assert.strictEqual( request.requestBody.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request body' );
- assert.strictEqual( request.url.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request URL, either' );
- request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
- } );
+ const api = new CoreForeignApi( location.origin + '/w/api.php' );
+ const res = await api.post( {} );
- return api.post( {} );
+ assert.deepEqual( res, [], 'result' );
+ const { requestBody, url } = this.server.requests[ 0 ];
+ assert.strictEqual( requestBody.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request body' );
+ assert.strictEqual( url.match( /origin=.*?(?:&|$)/ ), null, 'origin is not included in POST request URL, either' );
} );
-
} );

File Metadata

Mime Type
text/x-diff
Expires
Sat, Jul 5, 5:31 AM (11 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
227418
Default Alt Text
(4 KB)

Event Timeline