Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F584936
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
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
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Jul 5, 5:31 AM (11 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
227418
Default Alt Text
(4 KB)
Attached To
Mode
rMW mediawiki
Attached
Detach File
Event Timeline
Log In to Comment