Skip to content

Commit

Permalink
Add getSanitizeDOMValue to settings API (#5617)
Browse files Browse the repository at this point in the history
* Add  getSanitizeDOMValue to settings API

For environments that don't well support `export let`.

* Add a test for getSanitizeDOMValue
  • Loading branch information
rictic authored Jan 17, 2020
1 parent 13a8ea4 commit aec4cb6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
13 changes: 11 additions & 2 deletions lib/utils/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,30 @@ export const setRootPath = function(path) {
* `type` indicates where the value is being inserted: one of property, attribute, or text.
* `node` is the node where the value is being inserted.
*
* @type {(function(*,string,string,Node):*)|undefined}
* @type {(function(*,string,string,?Node):*)|undefined}
*/
export let sanitizeDOMValue = window.Polymer && window.Polymer.sanitizeDOMValue || undefined;

/**
* Sets the global sanitizeDOMValue available via this module's exported
* `sanitizeDOMValue` variable.
*
* @param {(function(*,string,string,Node):*)|undefined} newSanitizeDOMValue the global sanitizeDOMValue callback
* @param {(function(*,string,string,?Node):*)|undefined} newSanitizeDOMValue the global sanitizeDOMValue callback
* @return {void}
*/
export const setSanitizeDOMValue = function(newSanitizeDOMValue) {
sanitizeDOMValue = newSanitizeDOMValue;
};

/**
* Gets sanitizeDOMValue, for environments that don't well support `export let`.
*
* @return {(function(*,string,string,?Node):*)|undefined} sanitizeDOMValue
*/
export const getSanitizeDOMValue = function() {
return sanitizeDOMValue;
};

/**
* Globally settable property to make Polymer Gestures use passive TouchEvent listeners when recognizing gestures.
* When set to `true`, gestures made from touch will not be able to prevent scrolling, allowing for smoother
Expand Down
11 changes: 9 additions & 2 deletions test/unit/property-effects.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<script type="module">
import './property-effects-elements.js';
import { Polymer, html } from '../../polymer-legacy.js';
import { setSanitizeDOMValue, sanitizeDOMValue, setLegacyOptimizations } from '../../lib/utils/settings.js';
import { setSanitizeDOMValue, sanitizeDOMValue, getSanitizeDOMValue, setLegacyOptimizations } from '../../lib/utils/settings.js';
import { PropertyEffects } from '../../lib/mixins/property-effects.js';

suite('single-element binding effects', function() {
Expand Down Expand Up @@ -341,7 +341,7 @@
assert.equal(el.customEventObject.value, 84, 'custom bound path incorrect');
assert.equal(el.observerCounts.customEventObjectValueChanged, 1, 'custom bound path observer not called');
});

test('custom notification bubbling event to property', function() {
const child = document.createElement('div');
el.$.boundChild.appendChild(child);
Expand Down Expand Up @@ -1461,6 +1461,13 @@
['javascript', 'reflectedstring', 'attribute', el]);
});

test('getter returns the current value', function() {
assert(sanitizeDOMValue instanceof Function);
assert.strictEqual(getSanitizeDOMValue(), sanitizeDOMValue);
setSanitizeDOMValue(null);
assert.strictEqual(sanitizeDOMValue, null);
assert.strictEqual(getSanitizeDOMValue(), null);
});
});

suite('data (im)mutability', function() {
Expand Down

0 comments on commit aec4cb6

Please sign in to comment.