@@ -3,6 +3,7 @@ import {Component, ViewChild} from '@angular/core';
33import { MdRipple , MdRippleModule } from './ripple' ;
44import { ViewportRuler } from '../overlay/position/viewport-ruler' ;
55import { RIPPLE_FADE_OUT_DURATION , RIPPLE_FADE_IN_DURATION } from './ripple-renderer' ;
6+ import { dispatchMouseEvent } from '../testing/dispatch-events' ;
67
78
89/** Creates a DOM mouse event. */
@@ -65,15 +66,6 @@ describe('MdRipple', () => {
6566 document . body . style . margin = originalBodyMargin ;
6667 } ) ;
6768
68- function dispatchMouseEvent ( type : string , offsetX = 0 , offsetY = 0 ) {
69- let mouseEvent = createMouseEvent ( type , {
70- clientX : rippleTarget . clientLeft + offsetX ,
71- clientY : rippleTarget . clientTop + offsetY
72- } ) ;
73-
74- rippleTarget . dispatchEvent ( mouseEvent ) ;
75- }
76-
7769 describe ( 'basic ripple' , ( ) => {
7870 let rippleDirective : MdRipple ;
7971
@@ -89,20 +81,20 @@ describe('MdRipple', () => {
8981 } ) ;
9082
9183 it ( 'creates ripple on mousedown' , ( ) => {
92- dispatchMouseEvent ( 'mousedown' ) ;
93- dispatchMouseEvent ( 'mouseup' ) ;
84+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
85+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
9486
9587 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 1 ) ;
9688
97- dispatchMouseEvent ( 'mousedown' ) ;
98- dispatchMouseEvent ( 'mouseup' ) ;
89+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
90+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
9991
10092 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 2 ) ;
10193 } ) ;
10294
10395 it ( 'removes ripple after timeout' , fakeAsync ( ( ) => {
104- dispatchMouseEvent ( 'mousedown' ) ;
105- dispatchMouseEvent ( 'mouseup' ) ;
96+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
97+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
10698
10799 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 1 ) ;
108100
@@ -140,8 +132,8 @@ describe('MdRipple', () => {
140132 let elementRect = rippleTarget . getBoundingClientRect ( ) ;
141133
142134 // Dispatch a ripple at the following relative coordinates (X: 50| Y: 75)
143- dispatchMouseEvent ( 'mousedown' , 50 , 75 ) ;
144- dispatchMouseEvent ( 'mouseup' ) ;
135+ dispatchMouseEvent ( rippleTarget , 'mousedown' , 50 , 75 ) ;
136+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
145137
146138 // Calculate distance from the click to farthest edge of the ripple target.
147139 let maxDistanceX = TARGET_WIDTH - 50 ;
@@ -174,8 +166,8 @@ describe('MdRipple', () => {
174166 fixture . componentInstance . isDestroyed = true ;
175167 fixture . detectChanges ( ) ;
176168
177- dispatchMouseEvent ( 'mousedown' ) ;
178- dispatchMouseEvent ( 'mouseup' ) ;
169+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
170+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
179171
180172 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 0 ) ;
181173 } ) ;
@@ -245,15 +237,10 @@ describe('MdRipple', () => {
245237 rippleTarget . style . top = `${ elementTop } px` ;
246238
247239 // Simulate a keyboard-triggered click by setting event coordinates to 0.
248- let clickEvent = createMouseEvent ( 'mousedown' , {
249- clientX : left + elementLeft - pageScrollLeft ,
250- clientY : top + elementTop - pageScrollTop ,
251- screenX : left + elementLeft ,
252- screenY : top + elementTop
253- } ) ;
254-
255- rippleTarget . dispatchEvent ( clickEvent ) ;
256- dispatchMouseEvent ( 'mouseup' ) ;
240+ dispatchMouseEvent ( rippleTarget , 'mousedown' ,
241+ left + elementLeft - pageScrollLeft ,
242+ top + elementTop - pageScrollTop
243+ ) ;
257244
258245 let expectedRadius = Math . sqrt ( 250 * 250 + 125 * 125 ) ;
259246 let expectedLeft = left - expectedRadius ;
@@ -298,8 +285,8 @@ describe('MdRipple', () => {
298285 controller . color = backgroundColor ;
299286 fixture . detectChanges ( ) ;
300287
301- dispatchMouseEvent ( 'mousedown' ) ;
302- dispatchMouseEvent ( 'mouseup' ) ;
288+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
289+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
303290
304291 let ripple = rippleTarget . querySelector ( '.mat-ripple-element' ) ;
305292 expect ( window . getComputedStyle ( ripple ) . backgroundColor ) . toBe ( backgroundColor ) ;
@@ -309,16 +296,16 @@ describe('MdRipple', () => {
309296 controller . disabled = true ;
310297 fixture . detectChanges ( ) ;
311298
312- dispatchMouseEvent ( 'mousedown' ) ;
313- dispatchMouseEvent ( 'mouseup' ) ;
299+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
300+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
314301
315302 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 0 ) ;
316303
317304 controller . disabled = false ;
318305 fixture . detectChanges ( ) ;
319306
320- dispatchMouseEvent ( 'mousedown' ) ;
321- dispatchMouseEvent ( 'mouseup' ) ;
307+ dispatchMouseEvent ( rippleTarget , 'mousedown' ) ;
308+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
322309
323310 expect ( rippleTarget . querySelectorAll ( '.mat-ripple-element' ) . length ) . toBe ( 1 ) ;
324311 } ) ;
@@ -352,8 +339,8 @@ describe('MdRipple', () => {
352339 let elementRect = rippleTarget . getBoundingClientRect ( ) ;
353340
354341 // Click the ripple element 50 px to the right and 75px down from its upper left.
355- dispatchMouseEvent ( 'mousedown' , 50 , 75 ) ;
356- dispatchMouseEvent ( 'mouseup' ) ;
342+ dispatchMouseEvent ( rippleTarget , 'mousedown' , 50 , 75 ) ;
343+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
357344
358345 // Because the centered input is true, the center of the ripple should be the midpoint of the
359346 // bounding rect. The ripple should expand to cover the rect corners, which are 150px
@@ -379,8 +366,8 @@ describe('MdRipple', () => {
379366 let elementRect = rippleTarget . getBoundingClientRect ( ) ;
380367
381368 // Click the ripple element 50 px to the right and 75px down from its upper left.
382- dispatchMouseEvent ( 'mousedown' , 50 , 75 ) ;
383- dispatchMouseEvent ( 'mouseup' ) ;
369+ dispatchMouseEvent ( rippleTarget , 'mousedown' , 50 , 75 ) ;
370+ dispatchMouseEvent ( rippleTarget , 'mouseup' ) ;
384371
385372 let expectedLeft = elementRect . left + 50 - customRadius ;
386373 let expectedTop = elementRect . top + 75 - customRadius ;
0 commit comments