Current File : /home/jvzmxxx/wiki1/extensions/Echo/tests/qunit/model/test_mw.echo.dm.SeenTimeModel.js
( function ( mw ) {
	QUnit.module( 'ext.echo.dm - mw.echo.dm.SeenTimeModel' );

	QUnit.test( 'Constructing the model', function ( assert ) {
		var model = new mw.echo.dm.SeenTimeModel();

		assert.deepEqual(
			model.getTypes(),
			[ 'alert', 'message' ],
			'Default model has both types'
		);
	} );

	QUnit.test( 'Handling seenTime', function ( assert ) {
		var model;

		model = new mw.echo.dm.SeenTimeModel();
		model.setSeenTime( '20160101010000' );

		assert.deepEqual(
			model.getSeenTime(),
			'20160101010000',
			'Model sets seen time for both types'
		);

		model = new mw.echo.dm.SeenTimeModel( { types: 'alert' } );
		model.setSeenTime( '20160101010001' );

		assert.deepEqual(
			model.getSeenTime(),
			'20160101010001',
			'Alerts seen time model returns correct time'
		);
	} );

	QUnit.test( 'Emitting update event', function ( assert ) {
		var results = [],
			model = new mw.echo.dm.SeenTimeModel();

		// Attach a listener
		model.on( 'update', function ( time ) {
			results.push( time );
		} );

		// Trigger events
		model.setSeenTime( '1' ); // [ '1' ]
		model.setSeenTime( '2' ); // [ '1', '2' ]
		model.setSeenTime( '2' ); // (no change, no event) [ '1', '2' ]

		assert.deepEqual(
			results,
			[ '1', '2' ],
			'Update event emitted'
		);
	} );
} )( mediaWiki );