@samitouri / QOS-React / commits / e6e38d0f9c

SyntheticClipboardEvent unit tests

Adds unit tests for a SyntheticClipboardEvent.

cbrwizard committed Mar 30, 2016 at 23:09 UTC e6e38d0f9cea414975f298854e88476fe3b4ac02
1 file changed +74
src/renderers/dom/client/syntheticEvents/__tests__/SyntheticClipboardEvent-test.js new
+74
@@ -0,0 +1,74 @@
1 +/**
2 + * Copyright 2016-present, Facebook, Inc.
3 + * All rights reserved.
4 + *
5 + * This source code is licensed under the BSD-style license found in the
6 + * LICENSE file in the root directory of this source tree. An additional grant
7 + * of patent rights can be found in the PATENTS file in the same directory.
8 + *
9 + * @emails react-core
10 + */
11 +
12 +'use strict';
13 +
14 +var SyntheticClipboardEvent;
15 +
16 +describe('SyntheticClipboardEvent', function() {
17 + var createEvent;
18 +
19 + beforeEach(function() {
20 + SyntheticClipboardEvent = require('SyntheticClipboardEvent');
21 + createEvent = function(nativeEvent) {
22 + var target = require('getEventTarget')(nativeEvent);
23 + return SyntheticClipboardEvent.getPooled({}, '', nativeEvent, target);
24 + };
25 + });
26 +
27 + describe('ClipboardEvent interface', function() {
28 + describe('clipboardData', function() {
29 + describe('when event has clipboardData', function() {
30 + it("returns event's clipboardData", function() {
31 + // Mock clipboardData since native implementation doesn't have a constructor
32 + var clipboardData = jasmine.createSpyObj(
33 + 'clipboardData',
34 + ['dropEffect', 'effectAllowed', 'files', 'items', 'types']
35 + );
36 + var clipboardEvent = createEvent({clipboardData: clipboardData});
37 +
38 + expect(clipboardEvent.clipboardData).toBe(clipboardData);
39 + });
40 + });
41 + });
42 + });
43 +
44 + describe('EventInterface', function() {
45 + it('normalizes properties from the Event interface', function() {
46 + var target = document.createElement('div');
47 + var syntheticEvent = createEvent({srcElement: target});
48 +
49 + expect(syntheticEvent.target).toBe(target);
50 + expect(syntheticEvent.type).toBe(undefined);
51 + });
52 +
53 + it('is able to `preventDefault` and `stopPropagation`', function() {
54 + var nativeEvent = {};
55 + var syntheticEvent = createEvent(nativeEvent);
56 +
57 + expect(syntheticEvent.isDefaultPrevented()).toBe(false);
58 + syntheticEvent.preventDefault();
59 + expect(syntheticEvent.isDefaultPrevented()).toBe(true);
60 +
61 + expect(syntheticEvent.isPropagationStopped()).toBe(false);
62 + syntheticEvent.stopPropagation();
63 + expect(syntheticEvent.isPropagationStopped()).toBe(true);
64 + });
65 +
66 + it('is able to `persist`', function() {
67 + var syntheticEvent = createEvent({});
68 +
69 + expect(syntheticEvent.isPersistent()).toBe(false);
70 + syntheticEvent.persist();
71 + expect(syntheticEvent.isPersistent()).toBe(true);
72 + });
73 + });
74 +});