@@ -188,6 +188,92 @@ describe('igxOverlay', () => {
188188 UIInteractions . clearOverlay ( ) ;
189189 } ) ;
190190
191+ describe ( 'Pure Unit Test' , ( ) => {
192+ configureTestSuite ( ) ;
193+ let mockElement : any ;
194+ let mockElementRef : any ;
195+ let mockFactoryResolver : any ;
196+ let mockApplicationRef : any ;
197+ let mockInjector : any ;
198+ let mockAnimationBuilder : any ;
199+ let mockDocument : any ;
200+ let mockNgZone : any ;
201+ let mockPlatformUtil : any ;
202+ let overlay : IgxOverlayService ;
203+ beforeEach ( ( ) => {
204+ mockElement = {
205+ style : { visibility : '' , cursor : '' , transitionDuration : '' } ,
206+ classList : { add : ( ) => { } , remove : ( ) => { } } ,
207+ appendChild : ( ) => { } ,
208+ removeChild : ( ) => { } ,
209+ addEventListener : ( type : string , listener : ( this : HTMLElement , ev : MouseEvent ) => any ) => { } ,
210+ removeEventListener : ( type : string , listener : ( this : HTMLElement , ev : MouseEvent ) => any ) => { } ,
211+ getBoundingClientRect : ( ) => ( { width : 10 , height : 10 } ) ,
212+ insertBefore : ( newChild : HTMLDivElement , refChild : Node ) => { } ,
213+ contains : ( ) => { }
214+ } ;
215+ mockElement . parent = mockElement ;
216+ mockElement . parentElement = mockElement ;
217+ mockElementRef = { nativeElement : mockElement } ;
218+ mockFactoryResolver = {
219+ resolveComponentFactory : ( c : any ) => {
220+ return {
221+ create : ( i : any ) => {
222+ return {
223+ hostView : '' ,
224+ location : mockElementRef ,
225+ changeDetectorRef : { detectChanges : ( ) => { } } ,
226+ destroy : ( ) => { }
227+ } ;
228+ }
229+ } ;
230+ }
231+ } ;
232+ mockApplicationRef = { attachView : ( h : any ) => { } , detachView : ( h : any ) => { } } ;
233+ mockInjector = { } ;
234+ mockAnimationBuilder = { } ;
235+ mockDocument = {
236+ body : mockElement ,
237+ defaultView : mockElement ,
238+ createElement : ( ) => mockElement ,
239+ appendChild : ( ) => { } ,
240+ addEventListener : ( type : string , listener : ( this : HTMLElement , ev : MouseEvent ) => any ) => { } ,
241+ removeEventListener : ( type : string , listener : ( this : HTMLElement , ev : MouseEvent ) => any ) => { }
242+ } ;
243+ mockNgZone = { } ;
244+ mockPlatformUtil = { isIOS : false } ;
245+
246+ overlay = new IgxOverlayService (
247+ mockFactoryResolver , mockApplicationRef , mockInjector , mockAnimationBuilder , mockDocument , mockNgZone , mockPlatformUtil ) ;
248+ } ) ;
249+
250+ it ( 'Should set cursor to pointer on iOS' , ( ) => {
251+ mockPlatformUtil . isIOS = true ;
252+ mockDocument . body . style . cursor = 'initialCursorValue' ;
253+
254+ const mockOverlaySettings : OverlaySettings = {
255+ modal : false ,
256+ positionStrategy : new GlobalPositionStrategy ( { openAnimation : null , closeAnimation : null } )
257+ } ;
258+ let id = overlay . attach ( mockElementRef , mockOverlaySettings ) ;
259+
260+ overlay . show ( id ) ;
261+ expect ( mockDocument . body . style . cursor ) . toEqual ( 'pointer' ) ;
262+
263+ overlay . hide ( id ) ;
264+ expect ( mockDocument . body . style . cursor ) . toEqual ( 'initialCursorValue' ) ;
265+
266+ mockPlatformUtil . isIOS = false ;
267+ id = overlay . attach ( mockElementRef , mockOverlaySettings ) ;
268+
269+ overlay . show ( id ) ;
270+ expect ( mockDocument . body . style . cursor ) . toEqual ( 'initialCursorValue' ) ;
271+
272+ overlay . hide ( id ) ;
273+ expect ( mockDocument . body . style . cursor ) . toEqual ( 'initialCursorValue' ) ;
274+ } ) ;
275+ } ) ;
276+
191277 describe ( 'Unit Tests: ' , ( ) => {
192278 configureTestSuite ( ) ;
193279 beforeEach ( async ( ( ) => {
0 commit comments