@@ -5,6 +5,7 @@ import {TemplatePortal, ComponentPortal} from '../portal/portal';
55import { Overlay } from './overlay' ;
66import { OverlayContainer } from './overlay-container' ;
77import { OverlayState } from './overlay-state' ;
8+ import { OverlayRef } from './overlay-ref' ;
89import { PositionStrategy } from './position/position-strategy' ;
910import { OverlayModule } from './overlay-directives' ;
1011import { ScrollStrategy } from './scroll/scroll-strategy' ;
@@ -298,46 +299,44 @@ describe('Overlay', () => {
298299 } ) ;
299300
300301 describe ( 'scroll strategy' , ( ) => {
301- let fakeScrollStrategy : ScrollStrategy ;
302+ let fakeScrollStrategy : FakeScrollStrategy ;
302303 let config : OverlayState ;
303304
304305 beforeEach ( ( ) => {
305306 config = new OverlayState ( ) ;
306- fakeScrollStrategy = {
307- attach : jasmine . createSpy ( 'attach spy' ) ,
308- enable : jasmine . createSpy ( 'enable spy' ) ,
309- disable : jasmine . createSpy ( 'disable spy' )
310- } ;
307+ fakeScrollStrategy = new FakeScrollStrategy ( ) ;
311308 config . scrollStrategy = fakeScrollStrategy ;
312309 } ) ;
313310
314311 it ( 'should attach the overlay ref to the scroll strategy' , ( ) => {
315312 let overlayRef = overlay . create ( config ) ;
316313
317- expect ( fakeScrollStrategy . attach ) . toHaveBeenCalledWith ( overlayRef ) ;
314+ expect ( fakeScrollStrategy . overlayRef ) . toBe ( overlayRef ,
315+ 'Expected scroll strategy to have been attached to the current overlay ref.' ) ;
318316 } ) ;
319317
320318 it ( 'should enable the scroll strategy when the overlay is attached' , ( ) => {
321319 let overlayRef = overlay . create ( config ) ;
322320
323321 overlayRef . attach ( componentPortal ) ;
324- expect ( fakeScrollStrategy . enable ) . toHaveBeenCalled ( ) ;
322+ expect ( fakeScrollStrategy . isEnabled ) . toBe ( true , 'Expected scroll strategy to be enabled.' ) ;
325323 } ) ;
326324
327325 it ( 'should disable the scroll strategy once the overlay is detached' , ( ) => {
328326 let overlayRef = overlay . create ( config ) ;
329327
330328 overlayRef . attach ( componentPortal ) ;
331- overlayRef . detach ( ) ;
329+ expect ( fakeScrollStrategy . isEnabled ) . toBe ( true , 'Expected scroll strategy to be enabled.' ) ;
332330
333- expect ( fakeScrollStrategy . disable ) . toHaveBeenCalled ( ) ;
331+ overlayRef . detach ( ) ;
332+ expect ( fakeScrollStrategy . isEnabled ) . toBe ( false , 'Expected scroll strategy to be disabled.' ) ;
334333 } ) ;
335334
336335 it ( 'should disable the scroll strategy when the overlay is destroyed' , ( ) => {
337336 let overlayRef = overlay . create ( config ) ;
338337
339338 overlayRef . dispose ( ) ;
340- expect ( fakeScrollStrategy . disable ) . toHaveBeenCalled ( ) ;
339+ expect ( fakeScrollStrategy . isEnabled ) . toBe ( false , 'Expected scroll strategy to be disabled.' ) ;
341340 } ) ;
342341 } ) ;
343342} ) ;
@@ -410,3 +409,19 @@ class FakePositionStrategy implements PositionStrategy {
410409 dispose ( ) { }
411410}
412411
412+ class FakeScrollStrategy implements ScrollStrategy {
413+ isEnabled = false ;
414+ overlayRef : OverlayRef ;
415+
416+ attach ( overlayRef : OverlayRef ) {
417+ this . overlayRef = overlayRef ;
418+ }
419+
420+ enable ( ) {
421+ this . isEnabled = true ;
422+ }
423+
424+ disable ( ) {
425+ this . isEnabled = false ;
426+ }
427+ }
0 commit comments