golden-layout
Version:
A multi-screen javascript Layout manager https://golden-layout.com
34 lines (27 loc) • 1.38 kB
JavaScript
describe( 'Basic XSS filtering is applied', function(){
var filterFn = window.GoldenLayout.__lm.utils.filterXss;
it( 'escapes tags', function(){
var escapedString = filterFn( '>\'>"><img src=x onerror=alert(0)>' );
expect( escapedString ).toBe( '>\'>"><img src=x onerror=alert(0)>' );
});
it( 'escapes javascript urls', function(){
var escapedString = filterFn( 'javascript:alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'javascript:alert("hi")' );
});
it( 'escapes expression statements', function(){
var escapedString = filterFn( 'expression:alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'expression:alert("hi")' );
});
it( 'escapes onload statements', function(){
var escapedString = filterFn( 'onload=alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'onload=alert("hi")' );
escapedString = filterFn( 'onLoad=alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'onload=alert("hi")' );
});
it( 'escapes onerror statements', function(){
var escapedString = filterFn( 'onerror=alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'onerror=alert("hi")' );
escapedString = filterFn( 'onError=alert("hi")' ); // jshint ignore:line
expect( escapedString ).toBe( 'onerror=alert("hi")' );
});
});