Skip to content

Commit c46da88

Browse files
authored
Merge pull request #4837 from atmire/w2p-136225_fix-upstream-private-items-issue-11569-7_x
Add noindex robots meta tag for non-discoverable items (7_x)
2 parents 6d46dfa + 323e18b commit c46da88

3 files changed

Lines changed: 94 additions & 1 deletion

File tree

src/app/core/metadata/metadata.service.spec.ts

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
ItemMock,
1313
MockBitstream1,
1414
MockBitstream3,
15-
MockBitstream2
15+
MockBitstream2, NonDiscoverableItemMock
1616
} from '../../shared/mocks/item.mock';
1717
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
1818
import { PaginatedList } from '../data/paginated-list.model';
@@ -119,6 +119,37 @@ describe('MetadataService', () => {
119119
);
120120
});
121121

122+
describe(`robots tag`, () => {
123+
it(`should be set to noindex for non-discoverable items`, fakeAsync(() => {
124+
(metadataService as any).processRouteChange({
125+
data: {
126+
value: {
127+
dso: createSuccessfulRemoteDataObject(NonDiscoverableItemMock),
128+
},
129+
},
130+
});
131+
tick();
132+
expect(meta.addTag).toHaveBeenCalledWith({
133+
name: 'robots',
134+
content: 'noindex',
135+
});
136+
}));
137+
it(`should not be set for discoverable items`, fakeAsync(() => {
138+
(metadataService as any).processRouteChange({
139+
data: {
140+
value: {
141+
dso: createSuccessfulRemoteDataObject(ItemMock),
142+
},
143+
},
144+
});
145+
tick();
146+
expect(meta.addTag).not.toHaveBeenCalledWith({
147+
name: 'robots',
148+
content: 'noindex',
149+
});
150+
}));
151+
});
152+
122153
it('items page should set meta tags', fakeAsync(() => {
123154
(metadataService as any).processRouteChange({
124155
data: {

src/app/core/metadata/metadata.service.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ export class MetadataService {
148148

149149
private setDSOMetaTags(): void {
150150

151+
this.setNoIndexTag();
152+
151153
this.setTitleTag();
152154
this.setDescriptionTag();
153155

@@ -185,6 +187,15 @@ export class MetadataService {
185187

186188
}
187189

190+
/**
191+
* Add <meta name="robots" content="noindex"> to the <head> if non-discoverable item
192+
*/
193+
protected setNoIndexTag(): void {
194+
if (this.currentObject.value instanceof Item && this.currentObject.value.isDiscoverable === false) {
195+
this.addMetaTag('robots', 'noindex');
196+
}
197+
}
198+
188199
/**
189200
* Add <meta name="title" ... > to the <head>
190201
*/

src/app/shared/mocks/item.mock.ts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,4 +293,55 @@ export const ItemMock: Item = Object.assign(new Item(), {
293293
}
294294
)
295295
});
296+
297+
export const NonDiscoverableItemMock: Item = Object.assign(new Item(), {
298+
handle: '10673/7',
299+
lastModified: '2017-04-24T19:44:08.178+0000',
300+
isArchived: true,
301+
isDiscoverable: false,
302+
isWithdrawn: false,
303+
bundles: createSuccessfulRemoteDataObject$(createPaginatedList([
304+
MockOriginalBundle,
305+
])),
306+
_links:{
307+
self: {
308+
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/items/0ec7ff22-f211-40ab-a69e-c819b0b1f358',
309+
},
310+
},
311+
id: '0ec7ff22-f211-40ab-a69e-c819b0b1f358',
312+
uuid: '0ec7ff22-f211-40ab-a69e-c819b0b1f358',
313+
type: 'item',
314+
metadata: {
315+
'dc.date.accessioned': [
316+
{
317+
language: null,
318+
value: '1650-06-26T19:58:25Z',
319+
},
320+
],
321+
'dc.date.available': [
322+
{
323+
language: null,
324+
value: '1650-06-26T19:58:25Z',
325+
},
326+
],
327+
'dc.date.issued': [
328+
{
329+
language: null,
330+
value: '1650-06-26',
331+
},
332+
],
333+
'dc.identifier.uri': [
334+
{
335+
language: null,
336+
value: 'http://dspace7.4science.it/xmlui/handle/10673/7',
337+
},
338+
],
339+
'dc.title': [
340+
{
341+
language: 'en_US',
342+
value: 'Test Non-Discoverable',
343+
},
344+
],
345+
},
346+
});
296347
/* eslint-enable @typescript-eslint/no-shadow */

0 commit comments

Comments
 (0)