expect(html).to.contain('<style class="custom-css-style">' + css + '</style>')
const htmlConfig: HTMLServerConfig = omit(config, 'signup')
- expect(html).to.contain(`<script type="application/javascript">window.PeerTubeServerConfig = '${JSON.stringify(htmlConfig)}'</script>`)
+ const configObjectString = JSON.stringify(htmlConfig)
+ const configEscapedString = JSON.stringify(configObjectString)
+
+ expect(html).to.contain(`<script type="application/javascript">window.PeerTubeServerConfig = ${configEscapedString}</script>`)
}
describe('Test a client controllers', function () {
const port = servers[0].port
const expectedLink = '<link rel="alternate" type="application/json+oembed" href="http://localhost:' + port + '/services/oembed?' +
- `url=http%3A%2F%2Flocalhost%3A${port}%2Fw%2F${servers[0].store.video.uuid}" ` +
+ `url=http%3A%2F%2Flocalhost%3A${port}%2Fw%2F${servers[0].store.video.shortUUID}" ` +
`title="${servers[0].store.video.name}" />`
expect(res.text).to.contain(expectedLink)
const port = servers[0].port
const expectedLink = '<link rel="alternate" type="application/json+oembed" href="http://localhost:' + port + '/services/oembed?' +
- `url=http%3A%2F%2Flocalhost%3A${port}%2Fw%2Fp%2F${playlist.uuid}" ` +
+ `url=http%3A%2F%2Flocalhost%3A${port}%2Fw%2Fp%2F${playlist.shortUUID}" ` +
`title="${playlistName}" />`
expect(res.text).to.contain(expectedLink)
expect(text).to.contain(`<meta property="og:title" content="${videoName}" />`)
expect(text).to.contain(`<meta property="og:description" content="${videoDescriptionPlainText}" />`)
expect(text).to.contain('<meta property="og:type" content="video" />')
- expect(text).to.contain(`<meta property="og:url" content="${servers[0].url}/w/${servers[0].store.video.uuid}" />`)
+ expect(text).to.contain(`<meta property="og:url" content="${servers[0].url}/w/${servers[0].store.video.shortUUID}" />`)
}
async function watchPlaylistPageTest (path: string) {
expect(text).to.contain(`<meta property="og:title" content="${playlistName}" />`)
expect(text).to.contain(`<meta property="og:description" content="${playlistDescription}" />`)
expect(text).to.contain('<meta property="og:type" content="video" />')
- expect(text).to.contain(`<meta property="og:url" content="${servers[0].url}/w/p/${playlist.uuid}" />`)
+ expect(text).to.contain(`<meta property="og:url" content="${servers[0].url}/w/p/${playlist.shortUUID}" />`)
}
it('Should have valid Open Graph tags on the account page', async function () {
}
}
})
+
+ it('Should add noindex meta tag for remote accounts', async function () {
+ const handle = 'root@' + servers[0].host
+ const paths = [ '/accounts/', '/a/', '/@' ]
+
+ for (const path of paths) {
+ {
+ const { text } = await makeHTMLRequest(servers[1].url, path + handle)
+ expect(text).to.contain('<meta name="robots" content="noindex" />')
+ }
+
+ {
+ const { text } = await makeHTMLRequest(servers[0].url, path + handle)
+ expect(text).to.not.contain('<meta name="robots" content="noindex" />')
+ }
+ }
+ })
+
+ it('Should add noindex meta tag for remote accounts', async function () {
+ const handle = 'root_channel@' + servers[0].host
+ const paths = [ '/video-channels/', '/c/', '/@' ]
+
+ for (const path of paths) {
+ {
+ const { text } = await makeHTMLRequest(servers[1].url, path + handle)
+ expect(text).to.contain('<meta name="robots" content="noindex" />')
+ }
+
+ {
+ const { text } = await makeHTMLRequest(servers[0].url, path + handle)
+ expect(text).to.not.contain('<meta name="robots" content="noindex" />')
+ }
+ }
+ })
+
+ it('Should add noindex header for some paths', async function () {
+ const paths = [ '/about/peertube' ]
+
+ for (const path of paths) {
+ const { headers } = await makeHTMLRequest(servers[0].url, path)
+
+ expect(headers['x-robots-tag']).to.equal('noindex')
+ }
+ })
})
describe('Embed HTML', function () {