<!doctype html> <!-- @license Copyright (c) 2015 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 The complete set of authors may be found at http://polymer.github.io/AUTHORS The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS 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 --> <html> <head> <meta charset="UTF-8"> <title>paper-scroll-header-panel test</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <script src="../../webcomponentsjs/webcomponents-lite.js"></script> <script src="../../web-component-tester/browser.js"></script> <script src="../../test-fixture/test-fixture-mocha.js"></script> <link rel="import" href="../paper-scroll-header-panel.html"> <link rel="import" href="../demo/sample-content.html"> <link rel="import" href="../../paper-toolbar/paper-toolbar.html"> <link rel="import" href="../../test-fixture/test-fixture.html"> </head> <body> <test-fixture id="trivialProgress"> <template> <paper-scroll-header-panel> <paper-toolbar> </paper-toolbar> <div class="content"> <sample-content size="100"></sample-content> </div> </paper-scroll-header-panel> </template> </test-fixture> <script> suite('scroll', function() { var scrollHeaderPanel; setup(function() { scrollHeaderPanel = fixture('trivialProgress'); }); test('scroll smoothly', function(done) { var destination = 100; var adjustments = 0; function check() { if (scrollHeaderPanel.scroller.scrollTop === destination) { assert.notEqual(adjustments, 0); done(); } adjustments++; setTimeout(check, 0); } scrollHeaderPanel.scroll(destination, true); check(); }); test('condense smoothly', function(done) { scrollHeaderPanel.condenses = true; flush(function() { var destination = 100; var adjustments = 0; function check() { if (scrollHeaderPanel.headerState === scrollHeaderPanel.HEADER_STATE_CONDENSED) { assert.notEqual(adjustments, 0); done(); } adjustments++; setTimeout(check, 0); } scrollHeaderPanel.condense(true); check(); }); }); test('condense immediately', function(done) { scrollHeaderPanel.condenses = true; flush(function() { scrollHeaderPanel.condense(); Polymer.Base.async(function() { assert.equal(scrollHeaderPanel.headerState, scrollHeaderPanel.HEADER_STATE_CONDENSED); done(); }, 100); }); }); test('scroll to top smoothly', function(done) { scrollHeaderPanel.scroll(100); flush(function() { var adjustments = 0; function check() { if (scrollHeaderPanel.scroller.scrollTop === 0) { assert.notEqual(adjustments, 0); done(); } adjustments++; setTimeout(check, 0); } scrollHeaderPanel.scrollToTop(true); check(); }); }); test('scroll to top immediately', function(done) { scrollHeaderPanel.scroll(100); flush(function() { assert.equal(scrollHeaderPanel.scroller.scrollTop, 100); scrollHeaderPanel.scrollToTop(); Polymer.Base.async(function() { assert.equal(scrollHeaderPanel.scroller.scrollTop, 0); done(); }, 100); }); }); }); </script> </body> </html>