forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			253 lines
		
	
	
	
		
			6.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
	
		
			6.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const assert = require('assert');
 | |
| 
 | |
| const {
 | |
|   CloseEvent,
 | |
|   ErrorEvent,
 | |
|   Event,
 | |
|   MessageEvent
 | |
| } = require('../lib/event-target');
 | |
| 
 | |
| describe('Event', () => {
 | |
|   describe('#ctor', () => {
 | |
|     it('takes a `type` argument', () => {
 | |
|       const event = new Event('foo');
 | |
| 
 | |
|       assert.strictEqual(event.type, 'foo');
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('Properties', () => {
 | |
|     describe('`target`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           Event.prototype,
 | |
|           'target'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to `null`', () => {
 | |
|         const event = new Event('foo');
 | |
| 
 | |
|         assert.strictEqual(event.target, null);
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     describe('`type`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           Event.prototype,
 | |
|           'type'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('CloseEvent', () => {
 | |
|   it('inherits from `Event`', () => {
 | |
|     assert.ok(CloseEvent.prototype instanceof Event);
 | |
|   });
 | |
| 
 | |
|   describe('#ctor', () => {
 | |
|     it('takes a `type` argument', () => {
 | |
|       const event = new CloseEvent('foo');
 | |
| 
 | |
|       assert.strictEqual(event.type, 'foo');
 | |
|     });
 | |
| 
 | |
|     it('takes an optional `options` argument', () => {
 | |
|       const event = new CloseEvent('close', {
 | |
|         code: 1000,
 | |
|         reason: 'foo',
 | |
|         wasClean: true
 | |
|       });
 | |
| 
 | |
|       assert.strictEqual(event.type, 'close');
 | |
|       assert.strictEqual(event.code, 1000);
 | |
|       assert.strictEqual(event.reason, 'foo');
 | |
|       assert.strictEqual(event.wasClean, true);
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('Properties', () => {
 | |
|     describe('`code`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           CloseEvent.prototype,
 | |
|           'code'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to 0', () => {
 | |
|         const event = new CloseEvent('close');
 | |
| 
 | |
|         assert.strictEqual(event.code, 0);
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     describe('`reason`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           CloseEvent.prototype,
 | |
|           'reason'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to an empty string', () => {
 | |
|         const event = new CloseEvent('close');
 | |
| 
 | |
|         assert.strictEqual(event.reason, '');
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     describe('`wasClean`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           CloseEvent.prototype,
 | |
|           'wasClean'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to false', () => {
 | |
|         const event = new CloseEvent('close');
 | |
| 
 | |
|         assert.strictEqual(event.wasClean, false);
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('ErrorEvent', () => {
 | |
|   it('inherits from `Event`', () => {
 | |
|     assert.ok(ErrorEvent.prototype instanceof Event);
 | |
|   });
 | |
| 
 | |
|   describe('#ctor', () => {
 | |
|     it('takes a `type` argument', () => {
 | |
|       const event = new ErrorEvent('foo');
 | |
| 
 | |
|       assert.strictEqual(event.type, 'foo');
 | |
|     });
 | |
| 
 | |
|     it('takes an optional `options` argument', () => {
 | |
|       const error = new Error('Oops');
 | |
|       const event = new ErrorEvent('error', { error, message: error.message });
 | |
| 
 | |
|       assert.strictEqual(event.type, 'error');
 | |
|       assert.strictEqual(event.error, error);
 | |
|       assert.strictEqual(event.message, error.message);
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('Properties', () => {
 | |
|     describe('`error`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           ErrorEvent.prototype,
 | |
|           'error'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to `null`', () => {
 | |
|         const event = new ErrorEvent('error');
 | |
| 
 | |
|         assert.strictEqual(event.error, null);
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     describe('`message`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           ErrorEvent.prototype,
 | |
|           'message'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to an empty string', () => {
 | |
|         const event = new ErrorEvent('error');
 | |
| 
 | |
|         assert.strictEqual(event.message, '');
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| });
 | |
| 
 | |
| describe('MessageEvent', () => {
 | |
|   it('inherits from `Event`', () => {
 | |
|     assert.ok(MessageEvent.prototype instanceof Event);
 | |
|   });
 | |
| 
 | |
|   describe('#ctor', () => {
 | |
|     it('takes a `type` argument', () => {
 | |
|       const event = new MessageEvent('foo');
 | |
| 
 | |
|       assert.strictEqual(event.type, 'foo');
 | |
|     });
 | |
| 
 | |
|     it('takes an optional `options` argument', () => {
 | |
|       const event = new MessageEvent('message', { data: 'bar' });
 | |
| 
 | |
|       assert.strictEqual(event.type, 'message');
 | |
|       assert.strictEqual(event.data, 'bar');
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('Properties', () => {
 | |
|     describe('`data`', () => {
 | |
|       it('is enumerable and configurable', () => {
 | |
|         const descriptor = Object.getOwnPropertyDescriptor(
 | |
|           MessageEvent.prototype,
 | |
|           'data'
 | |
|         );
 | |
| 
 | |
|         assert.strictEqual(descriptor.configurable, true);
 | |
|         assert.strictEqual(descriptor.enumerable, true);
 | |
|         assert.ok(descriptor.get !== undefined);
 | |
|         assert.ok(descriptor.set === undefined);
 | |
|       });
 | |
| 
 | |
|       it('defaults to `null`', () => {
 | |
|         const event = new MessageEvent('message');
 | |
| 
 | |
|         assert.strictEqual(event.data, null);
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| });
 | 
