@@ -4,7 +4,7 @@ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
44import { TranslateLoaderMock } from '../../shared/mocks/translate-loader.mock' ;
55import { BitstreamDataService } from '../../core/data/bitstream-data.service' ;
66import { createRelationshipsObservable } from '../simple/item-types/shared/item.component.spec' ;
7- import { NO_ERRORS_SCHEMA } from '@angular/core' ;
7+ import { NO_ERRORS_SCHEMA , PLATFORM_ID } from '@angular/core' ;
88import { MetadataMap } from '../../core/shared/metadata.models' ;
99import { Item } from '../../core/shared/item.model' ;
1010import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils' ;
@@ -13,6 +13,7 @@ import { of as observableOf } from 'rxjs';
1313import { MiradorViewerService } from './mirador-viewer.service' ;
1414import { HostWindowService } from '../../shared/host-window.service' ;
1515import { BundleDataService } from '../../core/data/bundle-data.service' ;
16+ import { NativeWindowRef , NativeWindowService } from '../../core/services/window.service' ;
1617
1718
1819function getItem ( metadata : MetadataMap ) {
@@ -48,7 +49,9 @@ describe('MiradorViewerComponent with search', () => {
4849 providers : [
4950 { provide : BitstreamDataService , useValue : { } } ,
5051 { provide : BundleDataService , useValue : { } } ,
51- { provide : HostWindowService , useValue : mockHostWindowService }
52+ { provide : HostWindowService , useValue : mockHostWindowService } ,
53+ { provide : NativeWindowService , useValue : new NativeWindowRef ( ) } ,
54+ { provide : Location , useValue : { } } ,
5255 ] ,
5356 schemas : [ NO_ERRORS_SCHEMA ]
5457 } ) . overrideComponent ( MiradorViewerComponent , {
@@ -111,7 +114,9 @@ describe('MiradorViewerComponent with multiple images', () => {
111114 providers : [
112115 { provide : BitstreamDataService , useValue : { } } ,
113116 { provide : BundleDataService , useValue : { } } ,
114- { provide : HostWindowService , useValue : mockHostWindowService }
117+ { provide : HostWindowService , useValue : mockHostWindowService } ,
118+ { provide : NativeWindowService , useValue : new NativeWindowRef ( ) } ,
119+ { provide : Location , useValue : { } } ,
115120 ] ,
116121 schemas : [ NO_ERRORS_SCHEMA ]
117122 } ) . overrideComponent ( MiradorViewerComponent , {
@@ -171,7 +176,9 @@ describe('MiradorViewerComponent with a single image', () => {
171176 providers : [
172177 { provide : BitstreamDataService , useValue : { } } ,
173178 { provide : BundleDataService , useValue : { } } ,
174- { provide : HostWindowService , useValue : mockHostWindowService }
179+ { provide : HostWindowService , useValue : mockHostWindowService } ,
180+ { provide : NativeWindowService , useValue : new NativeWindowRef ( ) } ,
181+ { provide : Location , useValue : { } } ,
175182 ] ,
176183 schemas : [ NO_ERRORS_SCHEMA ]
177184 } ) . overrideComponent ( MiradorViewerComponent , {
@@ -200,7 +207,58 @@ describe('MiradorViewerComponent with a single image', () => {
200207 it ( 'should call mirador service image count' , ( ) => {
201208 expect ( viewerService . getImageCount ) . toHaveBeenCalled ( ) ;
202209 } ) ;
210+ } ) ;
211+
212+ } ) ;
203213
214+ describe ( 'MiradorViewerComponent on browser in prod mode' , ( ) => {
215+ let comp : MiradorViewerComponent ;
216+ let fixture : ComponentFixture < MiradorViewerComponent > ;
217+ const viewerService = jasmine . createSpyObj ( 'MiradorViewerService' , [ 'showEmbeddedViewer' , 'getImageCount' ] ) ;
218+
219+ beforeEach ( waitForAsync ( ( ) => {
220+ viewerService . showEmbeddedViewer . and . returnValue ( true ) ;
221+ viewerService . getImageCount . and . returnValue ( observableOf ( 1 ) ) ;
222+ TestBed . configureTestingModule ( {
223+ imports : [ TranslateModule . forRoot ( {
224+ loader : {
225+ provide : TranslateLoader ,
226+ useClass : TranslateLoaderMock
227+ }
228+ } ) ] ,
229+ declarations : [ MiradorViewerComponent ] ,
230+ providers : [
231+ { provide : BitstreamDataService , useValue : { } } ,
232+ { provide : BundleDataService , useValue : { } } ,
233+ { provide : HostWindowService , useValue : mockHostWindowService } ,
234+ { provide : NativeWindowService , useValue : new NativeWindowRef ( ) } ,
235+ { provide : Location , useValue : { } } ,
236+ { provide : PLATFORM_ID , useValue : 'browser' } ,
237+ ] ,
238+ schemas : [ NO_ERRORS_SCHEMA ]
239+ } ) . overrideComponent ( MiradorViewerComponent , {
240+ set : {
241+ providers : [
242+ { provide : MiradorViewerService , useValue : viewerService }
243+ ]
244+ }
245+ } ) . compileComponents ( ) ;
246+ } ) ) ;
247+
248+ describe ( 'viewer init' , ( ) => {
249+ beforeEach ( waitForAsync ( ( ) => {
250+ fixture = TestBed . createComponent ( MiradorViewerComponent ) ;
251+ comp = fixture . componentInstance ;
252+ comp . object = getItem ( noMetadata ) ;
253+ fixture . detectChanges ( ) ;
254+ } ) ) ;
255+
256+ it ( 'should set iframe listener' , ( ) => {
257+ const compAsAny = comp as any ;
258+ spyOn ( compAsAny . _window . nativeWindow , 'addEventListener' ) ;
259+ compAsAny . ngOnInit ( ) ;
260+ expect ( compAsAny . _window . nativeWindow . addEventListener ) . toHaveBeenCalled ( ) ;
261+ } ) ;
204262 } ) ;
205263
206264} ) ;
@@ -222,15 +280,17 @@ describe('MiradorViewerComponent in development mode', () => {
222280 } ) ] ,
223281 declarations : [ MiradorViewerComponent ] ,
224282 providers : [
225- { provide : BitstreamDataService , useValue : { } }
283+ { provide : BitstreamDataService , useValue : { } } ,
226284 ] ,
227285 schemas : [ NO_ERRORS_SCHEMA ]
228286 } ) . overrideComponent ( MiradorViewerComponent , {
229287 set : {
230288 providers : [
231289 { provide : MiradorViewerService , useValue : viewerService } ,
232290 { provide : BundleDataService , useValue : { } } ,
233- { provide : HostWindowService , useValue : mockHostWindowService }
291+ { provide : HostWindowService , useValue : mockHostWindowService } ,
292+ { provide : NativeWindowService , useValue : new NativeWindowRef ( ) } ,
293+ { provide : Location , useValue : { } } ,
234294 ]
235295 }
236296 } ) . compileComponents ( ) ;
0 commit comments