mirror of
https://github.com/Polymer/polymer.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #3111 from Polymer/fix-3108
Fixes #3108. Moves `debounce` functionality from polymer-micro to pol…
This commit is contained in:
commit
e153e27a4b
@ -14,7 +14,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
<link rel="import" href="src/micro/constructor.html">
|
||||
<link rel="import" href="src/micro/properties.html">
|
||||
<link rel="import" href="src/micro/attributes.html">
|
||||
<link rel="import" href="src/micro/debouncer.html">
|
||||
|
||||
<script>
|
||||
Polymer.version = 'master';
|
||||
@ -45,8 +44,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
_initFeatures: function() {
|
||||
// install host attributes
|
||||
this._marshalHostAttributes();
|
||||
// setup debouncers
|
||||
this._setupDebouncers();
|
||||
// acquire behaviors
|
||||
this._marshalBehaviors();
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
<link rel="import" href="src/mini/ready.html">
|
||||
<link rel="import" href="src/mini/shady.html">
|
||||
<link rel="import" href="src/mini/shadow.html">
|
||||
<link rel="import" href="src/mini/debouncer.html">
|
||||
|
||||
<script>
|
||||
|
||||
|
@ -7,6 +7,9 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
|
||||
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
|
||||
-->
|
||||
<link rel="import" href="../lib/async.html">
|
||||
<link rel="import" href="../lib/debounce.html">
|
||||
|
||||
<script>
|
||||
|
||||
Polymer.Base._addFeature({
|
@ -37,6 +37,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
'unit/polymer-dom-content.html?dom=shadow',
|
||||
'unit/polymer-dom-observeNodes.html',
|
||||
'unit/polymer-dom-observeNodes.html?dom=shadow',
|
||||
'unit/debounce.html',
|
||||
'unit/bind.html',
|
||||
'unit/bind.html?dom=shadow',
|
||||
'unit/notify-path.html',
|
||||
|
83
test/unit/debounce.html
Normal file
83
test/unit/debounce.html
Normal file
@ -0,0 +1,83 @@
|
||||
<!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>
|
||||
<link rel="import" href="../../polymer-mini.html">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script>
|
||||
|
||||
HTMLImports.whenReady(function() {
|
||||
Polymer({is: 'my-element'});
|
||||
});
|
||||
|
||||
setup(function() {
|
||||
window.el1 = document.createElement('my-element');
|
||||
document.body.appendChild(window.el1);
|
||||
window.el2 = document.createElement('my-element');
|
||||
window.el1.appendChild(window.el2);
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
document.body.removeChild(window.el1);
|
||||
delete window.el1;
|
||||
delete window.el2;
|
||||
});
|
||||
|
||||
suite('debounce', function() {
|
||||
|
||||
test('debounce (no-wait)', function(done) {
|
||||
|
||||
var called = 0;
|
||||
var cb = function() {
|
||||
called++;
|
||||
};
|
||||
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb);
|
||||
|
||||
setTimeout(function() {
|
||||
assert.equal(called, 1, 'debounce should be called exactly once');
|
||||
done();
|
||||
}, 50);
|
||||
|
||||
});
|
||||
|
||||
test('debounce (wait)', function(done) {
|
||||
|
||||
var called = 0;
|
||||
var now = Date.now();
|
||||
var cb = function() {
|
||||
called++;
|
||||
};
|
||||
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb, 100);
|
||||
window.el1.debounce('foo', cb, 100);
|
||||
|
||||
setTimeout(function() {
|
||||
assert.equal(called, 1, 'debounce should be called exactly once');
|
||||
assert(Date.now() - now > 100, 'debounce should be called after at least 100ms');
|
||||
done();
|
||||
}, 200);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -57,47 +57,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||
|
||||
});
|
||||
|
||||
suite('debounce', function() {
|
||||
|
||||
test('debounce (no-wait)', function(done) {
|
||||
|
||||
var called = 0;
|
||||
var cb = function() {
|
||||
called++;
|
||||
};
|
||||
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb);
|
||||
|
||||
setTimeout(function() {
|
||||
assert.equal(called, 1, 'debounce should be called exactly once');
|
||||
done();
|
||||
}, 50);
|
||||
|
||||
});
|
||||
|
||||
test('debounce (wait)', function(done) {
|
||||
|
||||
var called = 0;
|
||||
var now = Date.now();
|
||||
var cb = function() {
|
||||
called++;
|
||||
};
|
||||
|
||||
window.el1.debounce('foo', cb);
|
||||
window.el1.debounce('foo', cb, 100);
|
||||
window.el1.debounce('foo', cb, 100);
|
||||
|
||||
setTimeout(function() {
|
||||
assert.equal(called, 1, 'debounce should be called exactly once');
|
||||
assert(Date.now() - now > 100, 'debounce should be called after at least 100ms');
|
||||
done();
|
||||
}, 200);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user