Files
overleaf-cep/services/web/test/unit/src/HelperFiles/UrlHelperTests.js
T
Jakob Ackermann 6eeb7857e3 Merge pull request #3390 from overleaf/jpa-faster-unit-tests
[perf] faster unit tests

GitOrigin-RevId: 188b8f3752638fde7a27a8d83b416bb9a6e3c95e
2020-11-28 03:04:01 +00:00

46 lines
1.3 KiB
JavaScript

const chai = require('chai')
const { expect } = chai
const SandboxedModule = require('sandboxed-module')
const modulePath = require('path').join(
__dirname,
'../../../../app/src/Features/Helpers/UrlHelper.js'
)
describe('UrlHelper', function() {
beforeEach(function() {
this.settings = {
apis: { linkedUrlProxy: { url: undefined } },
siteUrl: 'http://localhost:3000'
}
this.UrlHelper = SandboxedModule.require(modulePath, {
requires: { 'settings-sharelatex': this.settings }
})
})
describe('getSafeRedirectPath', function() {
it('sanitize redirect path to prevent open redirects', function() {
expect(this.UrlHelper.getSafeRedirectPath('https://evil.com')).to.be
.undefined
expect(this.UrlHelper.getSafeRedirectPath('//evil.com')).to.be.undefined
expect(this.UrlHelper.getSafeRedirectPath('//ol.com/evil')).to.equal(
'/evil'
)
expect(this.UrlHelper.getSafeRedirectPath('////evil.com')).to.be.undefined
expect(this.UrlHelper.getSafeRedirectPath('%2F%2Fevil.com')).to.equal(
'/%2F%2Fevil.com'
)
expect(
this.UrlHelper.getSafeRedirectPath('http://foo.com//evil.com/bad')
).to.equal('/evil.com/bad')
return expect(this.UrlHelper.getSafeRedirectPath('.evil.com')).to.equal(
'/.evil.com'
)
})
})
})