Move html injection plugin tests in its own file

pull/3105/head
Chocobozzz 2020-08-24 13:37:49 +02:00
parent 6c733e4617
commit 1f5221fb4a
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 89 additions and 43 deletions

View File

@ -11,7 +11,6 @@ import {
getPlugin, getPlugin,
getPluginPackageJSON, getPluginPackageJSON,
getPluginRegisteredSettings, getPluginRegisteredSettings,
getPluginsCSS,
getPublicSettings, getPublicSettings,
installPlugin, installPlugin,
killallServers, killallServers,
@ -28,17 +27,16 @@ import {
updatePluginPackageJSON, updatePluginPackageJSON,
updatePluginSettings, updatePluginSettings,
wait, wait,
waitUntilLog, waitUntilLog
makeHTMLRequest
} from '../../../../shared/extra-utils' } from '../../../../shared/extra-utils'
import { PluginType } from '../../../../shared/models/plugins/plugin.type'
import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model' import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model'
import { ServerConfig } from '../../../../shared/models/server'
import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model' import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
import { User } from '../../../../shared/models/users'
import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model' import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model'
import { RegisteredServerSettings } from '../../../../shared/models/plugins/register-server-setting.model' import { PluginType } from '../../../../shared/models/plugins/plugin.type'
import { PublicServerSetting } from '../../../../shared/models/plugins/public-server.setting' import { PublicServerSetting } from '../../../../shared/models/plugins/public-server.setting'
import { RegisteredServerSettings } from '../../../../shared/models/plugins/register-server-setting.model'
import { ServerConfig } from '../../../../shared/models/server'
import { User } from '../../../../shared/models/users'
const expect = chai.expect const expect = chai.expect
@ -119,18 +117,6 @@ describe('Test plugins', function () {
} }
}) })
it('Should have an empty global css', async function () {
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.be.empty
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.not.include('link rel="stylesheet" href="/plugins/global.css')
}
})
it('Should install a plugin and a theme', async function () { it('Should install a plugin and a theme', async function () {
this.timeout(30000) this.timeout(30000)
@ -147,18 +133,6 @@ describe('Test plugins', function () {
}) })
}) })
it('Should have the correct global css', async function () {
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.contain('background-color: red')
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.include('link rel="stylesheet" href="/plugins/global.css')
}
})
it('Should have the plugin loaded in the configuration', async function () { it('Should have the plugin loaded in the configuration', async function () {
const res = await getConfig(server.url) const res = await getConfig(server.url)
const config: ServerConfig = res.body const config: ServerConfig = res.body
@ -400,18 +374,6 @@ describe('Test plugins', function () {
expect(res.body.data).to.have.lengthOf(0) expect(res.body.data).to.have.lengthOf(0)
}) })
it('Should have an empty global css', async function () {
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.be.empty
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.not.include('link rel="stylesheet" href="/plugins/global.css')
}
})
it('Should list uninstalled plugins', async function () { it('Should list uninstalled plugins', async function () {
const res = await listPlugins({ const res = await listPlugins({
url: server.url, url: server.url,

View File

@ -0,0 +1,83 @@
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import 'mocha'
import * as chai from 'chai'
import {
cleanupTests,
flushAndRunServer,
getPluginsCSS,
installPlugin,
makeHTMLRequest,
ServerInfo,
setAccessTokensToServers,
uninstallPlugin
} from '../../../shared/extra-utils'
const expect = chai.expect
describe('Test plugins HTML inection', function () {
let server: ServerInfo = null
before(async function () {
this.timeout(30000)
server = await flushAndRunServer(1)
await setAccessTokensToServers([ server ])
})
it('Should not inject global css file in HTML', async function () {
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.be.empty
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.not.include('link rel="stylesheet" href="/plugins/global.css')
}
})
it('Should install a plugin and a theme', async function () {
this.timeout(30000)
await installPlugin({
url: server.url,
accessToken: server.accessToken,
npmName: 'peertube-plugin-hello-world'
})
})
it('Should have the correct global css', async function () {
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.contain('background-color: red')
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.include('link rel="stylesheet" href="/plugins/global.css')
}
})
it('Should have an empty global css on uninstall', async function () {
await uninstallPlugin({
url: server.url,
accessToken: server.accessToken,
npmName: 'peertube-plugin-hello-world'
})
{
const res = await getPluginsCSS(server.url)
expect(res.text).to.be.empty
}
for (const path of [ '/', '/videos/embed/1', '/video-playlists/embed/1' ]) {
const res = await makeHTMLRequest(server.url, path)
expect(res.text).to.not.include('link rel="stylesheet" href="/plugins/global.css')
}
})
after(async function () {
await cleanupTests([ server ])
})
})

View File

@ -1,4 +1,5 @@
import './action-hooks' import './action-hooks'
import './html-injection'
import './id-and-pass-auth' import './id-and-pass-auth'
import './external-auth' import './external-auth'
import './filter-hooks' import './filter-hooks'