( function ( mw ) {
QUnit.module( 'ext.RevisionSlider.Revision' );
QUnit.test( 'create Revision', function ( assert ) {
var data = {
size: 5,
comment: 'hello',
parsedcomment: 'hello',
timestamp: '2016-04-26T10:27:14Z', // 10:27, 26 Apr 2016
user: 'meh'
},
rev = new mw.libs.revisionSlider.Revision( data );
mw.config.values.extRevisionSliderTimeOffset = 0;
mw.user.options.values.timecorrection = 0;
assert.equal( rev.getSize(), data.size );
assert.equal( rev.getComment(), data.comment );
assert.equal( rev.getParsedComment(), data.parsedcomment );
assert.equal( rev.getFormattedDate(), '10:27, 26 Apr 2016' );
assert.equal( rev.getUser(), data.user );
assert.equal( rev.isMinor(), false );
} );
QUnit.test( 'create minor Revision (minor empty string)', function ( assert ) {
var data = {
size: 5,
comment: 'hello',
parsedcomment: 'hello',
timestamp: '2016-04-26T10:27:14Z', // 10:27, 26 Apr 2016
user: 'meh',
minor: ''
},
rev = new mw.libs.revisionSlider.Revision( data );
mw.config.values.extRevisionSliderTimeOffset = 0;
mw.user.options.values.timecorrection = 0;
assert.equal( rev.getSize(), data.size );
assert.equal( rev.getComment(), data.comment );
assert.equal( rev.getParsedComment(), data.parsedcomment );
assert.equal( rev.getFormattedDate(), '10:27, 26 Apr 2016' );
assert.equal( rev.getUser(), data.user );
assert.equal( rev.isMinor(), true );
} );
QUnit.test( 'create minor Revision (minor true, as if from another Revision object)', function ( assert ) {
var data = {
size: 5,
comment: 'hello',
parsedcomment: 'hello',
timestamp: '2016-04-26T10:27:14Z', // 10:27, 26 Apr 2016
user: 'meh',
minor: true
},
rev = new mw.libs.revisionSlider.Revision( data );
mw.config.values.extRevisionSliderTimeOffset = 0;
mw.user.options.values.timecorrection = 0;
assert.equal( rev.getSize(), data.size );
assert.equal( rev.getComment(), data.comment );
assert.equal( rev.getParsedComment(), data.parsedcomment );
assert.equal( rev.getFormattedDate(), '10:27, 26 Apr 2016' );
assert.equal( rev.getUser(), data.user );
assert.equal( rev.isMinor(), true );
} );
QUnit.test( 'get Revision with section', function ( assert ) {
var data = {
comment: '/* section */ comment'
},
rev = new mw.libs.revisionSlider.Revision( data );
assert.equal( rev.getSection(), 'section' );
} );
QUnit.test( 'get Revision without section', function ( assert ) {
var data = {
comment: 'no section comment'
},
rev = new mw.libs.revisionSlider.Revision( data );
assert.equal( rev.getSection(), '' );
} );
QUnit.test( 'get and set relative size', function ( assert ) {
var size = 5,
rev = new mw.libs.revisionSlider.Revision( {} );
rev.setRelativeSize( size );
assert.equal( rev.getRelativeSize(), size );
} );
QUnit.test( 'getFormattedDate No user offset, 0 default offset', function ( assert ) {
var rev = new mw.libs.revisionSlider.Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
mw.user.options.values.timecorrection = undefined;
mw.config.values.extRevisionSliderTimeOffset = 0;
assert.equal( rev.getFormattedDate(), '10:27, 26 Apr 2016' );
} );
QUnit.test( 'getFormattedDate No user offset, 1 default offset', function ( assert ) {
var rev = new mw.libs.revisionSlider.Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
mw.user.options.values.timecorrection = undefined;
mw.config.values.extRevisionSliderTimeOffset = 60;
assert.equal( rev.getFormattedDate(), '11:27, 26 Apr 2016' );
} );
QUnit.test( 'getFormattedDate 2 user offset, 1 default offset', function ( assert ) {
var rev = new mw.libs.revisionSlider.Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
mw.user.options.values.timecorrection = 'FOO|120|BAR';
mw.config.values.extRevisionSliderTimeOffset = 60;
assert.equal( rev.getFormattedDate(), '12:27, 26 Apr 2016' );
} );
} )( mediaWiki );