@@ -11,6 +11,9 @@ import { ActivatedRoute, Router } from '@angular/router';
1111import { getForbiddenRoute } from '../../app-routing-paths' ;
1212import { TranslateModule } from '@ngx-translate/core' ;
1313import { CommonModule } from '@angular/common' ;
14+ import { SignpostingDataService } from '../../core/data/signposting-data.service' ;
15+ import { ServerResponseService } from '../../core/services/server-response.service' ;
16+ import { PLATFORM_ID } from '@angular/core' ;
1417
1518describe ( 'BitstreamDownloadPageComponent' , ( ) => {
1619 let component : BitstreamDownloadPageComponent ;
@@ -24,6 +27,20 @@ describe('BitstreamDownloadPageComponent', () => {
2427 let router ;
2528
2629 let bitstream : Bitstream ;
30+ let serverResponseService : jasmine . SpyObj < ServerResponseService > ;
31+ let signpostingDataService : jasmine . SpyObj < SignpostingDataService > ;
32+
33+ const mocklink = {
34+ href : 'http://test.org' ,
35+ rel : 'test' ,
36+ type : 'test'
37+ } ;
38+
39+ const mocklink2 = {
40+ href : 'http://test2.org' ,
41+ rel : 'test' ,
42+ type : 'test'
43+ } ;
2744
2845 function init ( ) {
2946 authService = jasmine . createSpyObj ( 'authService' , {
@@ -44,8 +61,8 @@ describe('BitstreamDownloadPageComponent', () => {
4461 bitstream = Object . assign ( new Bitstream ( ) , {
4562 uuid : 'bitstreamUuid' ,
4663 _links : {
47- content : { href : 'bitstream-content-link' } ,
48- self : { href : 'bitstream-self-link' } ,
64+ content : { href : 'bitstream-content-link' } ,
65+ self : { href : 'bitstream-self-link' } ,
4966 }
5067 } ) ;
5168
@@ -54,23 +71,37 @@ describe('BitstreamDownloadPageComponent', () => {
5471 bitstream : createSuccessfulRemoteDataObject (
5572 bitstream
5673 )
74+ } ) ,
75+ params : observableOf ( {
76+ id : 'testid'
5777 } )
5878 } ;
5979
6080 router = jasmine . createSpyObj ( 'router' , [ 'navigateByUrl' ] ) ;
81+
82+ serverResponseService = jasmine . createSpyObj ( 'ServerResponseService' , {
83+ setHeader : jasmine . createSpy ( 'setHeader' ) ,
84+ } ) ;
85+
86+ signpostingDataService = jasmine . createSpyObj ( 'SignpostingDataService' , {
87+ getLinks : observableOf ( [ mocklink , mocklink2 ] )
88+ } ) ;
6189 }
6290
6391 function initTestbed ( ) {
6492 TestBed . configureTestingModule ( {
6593 imports : [ CommonModule , TranslateModule . forRoot ( ) ] ,
6694 declarations : [ BitstreamDownloadPageComponent ] ,
6795 providers : [
68- { provide : ActivatedRoute , useValue : activatedRoute } ,
69- { provide : Router , useValue : router } ,
70- { provide : AuthorizationDataService , useValue : authorizationService } ,
71- { provide : AuthService , useValue : authService } ,
72- { provide : FileService , useValue : fileService } ,
73- { provide : HardRedirectService , useValue : hardRedirectService } ,
96+ { provide : ActivatedRoute , useValue : activatedRoute } ,
97+ { provide : Router , useValue : router } ,
98+ { provide : AuthorizationDataService , useValue : authorizationService } ,
99+ { provide : AuthService , useValue : authService } ,
100+ { provide : FileService , useValue : fileService } ,
101+ { provide : HardRedirectService , useValue : hardRedirectService } ,
102+ { provide : ServerResponseService , useValue : serverResponseService } ,
103+ { provide : SignpostingDataService , useValue : signpostingDataService } ,
104+ { provide : PLATFORM_ID , useValue : 'server' }
74105 ]
75106 } )
76107 . compileComponents ( ) ;
@@ -107,6 +138,9 @@ describe('BitstreamDownloadPageComponent', () => {
107138 it ( 'should redirect to the content link' , ( ) => {
108139 expect ( hardRedirectService . redirect ) . toHaveBeenCalledWith ( 'bitstream-content-link' ) ;
109140 } ) ;
141+ it ( 'should add the signposting links' , ( ) => {
142+ expect ( serverResponseService . setHeader ) . toHaveBeenCalled ( ) ;
143+ } ) ;
110144 } ) ;
111145 describe ( 'when the user is authorized and logged in' , ( ) => {
112146 beforeEach ( waitForAsync ( ( ) => {
@@ -134,7 +168,7 @@ describe('BitstreamDownloadPageComponent', () => {
134168 fixture . detectChanges ( ) ;
135169 } ) ;
136170 it ( 'should navigate to the forbidden route' , ( ) => {
137- expect ( router . navigateByUrl ) . toHaveBeenCalledWith ( getForbiddenRoute ( ) , { skipLocationChange : true } ) ;
171+ expect ( router . navigateByUrl ) . toHaveBeenCalledWith ( getForbiddenRoute ( ) , { skipLocationChange : true } ) ;
138172 } ) ;
139173 } ) ;
140174 describe ( 'when the user is not authorized and not logged in' , ( ) => {
0 commit comments