mediawiki-skins-MinervaNeue/tests/qunit/skins.minerva.scripts/UriUtil.test.js
Timo Tijhof 5a65bd5200 tests: Minor clean up of in TitleUtil/UriUtil tests
* Declare variables inline, as per the current code conventions.

* Use built-in assert.true() and assert.false() in a few places.

* Use built-in QUnit.test.each() to remove need for ad-hoc loops and
  inline composing of assertion messages with common prefixes. This
  also creates clearer and more detailed test reports, and more granular
  ability to re-run specific test cases.

* Remove unneeded use of `QUnit.newMwEnvironment()`.

* Simplify restoring of mw.Uri by storing the original reference
  once outside the test, and then re-using that each time.

* Use mw.config.set() for improved familiarity and rely on natural
  restoration instead of the extra 'config' key abstraction which is
  another thing to learn and understand.

Change-Id: I796e034854203d2e0e78e510458f4b34603e9901
2022-05-15 00:46:28 +00:00

41 lines
1.1 KiB
JavaScript

( function () {
var UriUtil = require( '../../../resources/skins.minerva.scripts/UriUtil.js' );
var mwUriOrg = mw.Uri;
QUnit.module( 'Minerva UriUtil', {
beforeEach: function () {
mw.Uri = mw.UriRelative( 'https://meta.wikimedia.org/w/index.php' );
},
afterEach: function () {
mw.Uri = mwUriOrg;
}
} );
QUnit.test( '.isInternal()', function ( assert ) {
assert.true(
UriUtil.isInternal( new mw.Uri( '/relative' ) ),
'relative URLs are internal'
);
assert.true(
UriUtil.isInternal( new mw.Uri( 'http://meta.wikimedia.org/' ) ),
'matching hosts are internal'
);
assert.true(
UriUtil.isInternal( new mw.Uri( 'https:/meta.wikimedia.org/' ) ),
'protocol is irrelevant'
);
assert.true(
UriUtil.isInternal( new mw.Uri( 'https://meta.wikimedia.org/path' ) ),
'path is irrelevant'
);
assert.false(
UriUtil.isInternal( new mw.Uri( 'https://archive.org/' ) ),
'external links are not internal'
);
assert.false(
UriUtil.isInternal( new mw.Uri( 'https://www.meta.wikimedia.org/' ) ),
'differing subdomains are not internal'
);
} );
}() );