Skip to content

Commit

Permalink
Fix #3786 by adding a noUrlSettings flag to Polymer.Settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Steven Orvell committed Jul 21, 2016
1 parent e579f58 commit 8a26759
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/lib/settings.html
Expand Up @@ -21,10 +21,12 @@
var settings = window.Polymer || {};

// via url
var parts = location.search.slice(1).split('&');
for (var i=0, o; (i < parts.length) && (o=parts[i]); i++) {
o = o.split('=');
o[0] && (settings[o[0]] = o[1] || true);
if (!settings.noUrlSettings) {
var parts = location.search.slice(1).split('&');
for (var i=0, o; (i < parts.length) && (o=parts[i]); i++) {
o = o.split('=');
o[0] && (settings[o[0]] = o[1] || true);
}
}

settings.wantShadow = (settings.dom === 'shadow');
Expand Down
1 change: 1 addition & 0 deletions test/runner.html
Expand Up @@ -46,6 +46,7 @@
'unit/events.html',
'unit/gestures.html',
'unit/gestures.html?dom=shadow',
'unit/settings.html?dom=shadow&useNativeCSSProperties=true',
'unit/utils.html',
'unit/utils-content.html',
'unit/utils.html?dom=shadow',
Expand Down
41 changes: 41 additions & 0 deletions test/unit/settings.html
@@ -0,0 +1,41 @@
<!doctype html>
<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<meta charset="utf-8">
<script src="../../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../../web-component-tester/browser.js"></script>
<script>
Polymer = {noUrlSettings: true, lazyRegister: true};
</script>

<link rel="import" href="../../polymer.html">
</head>
<body>

<script>

suite('Settings', function() {

test('noUrlSettings prevents settings via url', function() {
assert.notOk(Polymer.Settings.wantShadow, 'noUrlSettings did not prevent url from requesting dom=shadow');
assert.notOk(Polymer.Settings.useNativeCSSProperties, 'noUrlSettings did not prevent url from requesting useNativeCSSProperties');
});

test('noUrlSettings allows imperative settings', function() {
assert.ok(Polymer.Settings.lazyRegister, 'noUrlSettings prevented imperative setting of lazyRegister');
})

});

</script>
</body>
</html>

0 comments on commit 8a26759

Please sign in to comment.