Skip to content

Commit

Permalink
Gardening and improvements on escapeTextContentForBrowser tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremenichelli committed Oct 22, 2017
1 parent 2d7c754 commit dd7feec
Showing 1 changed file with 53 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,38 +10,74 @@
'use strict';

describe('escapeTextContentForBrowser', () => {
// TODO: can we express this test with only public API?
var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
var escapeTextContentForBrowser;

beforeEach(() => {
jest.resetModules();
escapeTextContentForBrowser = require('escapeTextContentForBrowser');
});

it('should escape boolean to string', () => {
expect(escapeTextContentForBrowser(true)).toBe('true');
expect(escapeTextContentForBrowser(false)).toBe('false');
var firstTestElement = document.createElement('div');
firstTestElement.innerHTML = escapeTextContentForBrowser(true);

var secondTestElement = document.createElement('div');
secondTestElement.innerHTML = escapeTextContentForBrowser(false);

expect(firstTestElement.textContent).toEqual('true');
expect(secondTestElement.textContent).toEqual('false');
});

it('should escape object to string', () => {
var escaped = escapeTextContentForBrowser({
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser({
toString: function() {
return 'ponys';
},
});

expect(escaped).toBe('ponys');
expect(testElement.textContent).toEqual('ponys');
});

it('should escape number to string', () => {
expect(escapeTextContentForBrowser(42)).toBe('42');
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser(42);

expect(testElement.textContent).toEqual('42');
});

it('should escape ampersand entity', () => {
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser('&');

expect(testElement.innerHTML).toEqual('&');
});

it('should escape lower than entity', () => {
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser('<');

expect(testElement.innerHTML).toEqual('&lt;');
});

it('should escape greater than entity', () => {
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser('>');

expect(testElement.innerHTML).toEqual('&gt;');
});

it('should escape single quote entity', () => {
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser("'");

expect(testElement.textContent).toEqual("'");
});

it('should escape string', () => {
var escaped = escapeTextContentForBrowser(
'<script type=\'\' src=""></script>',
);
expect(escaped).not.toContain('<');
expect(escaped).not.toContain('>');
expect(escaped).not.toContain("'");
expect(escaped).not.toContain('"');
it('should escape double quote entity', () => {
var testElement = document.createElement('div');
testElement.innerHTML = escapeTextContentForBrowser('"');

escaped = escapeTextContentForBrowser('&');
expect(escaped).toBe('&amp;');
expect(testElement.innerHTML).toEqual('"');
});
});

0 comments on commit dd7feec

Please sign in to comment.