From 247ef9d7b96d4c33c3d33e52526d4ca8e1ec1a26 Mon Sep 17 00:00:00 2001 From: felvhage Date: Wed, 1 Jun 2016 12:15:55 +0200 Subject: [PATCH 01/15] Fixes #168 This fixes #168. When using Browser-Zoom scrollLeft can be a decimal number. Using Math.ceil on scrollLeft will ensure that the condition will be met in this case and the rightHidden will be set properly. --- paper-tabs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper-tabs.html b/paper-tabs.html index ae2c1b8..adf4d2c 100644 --- a/paper-tabs.html +++ b/paper-tabs.html @@ -511,7 +511,7 @@ var scrollLeft = this.$.tabsContainer.scrollLeft; this._leftHidden = scrollLeft === 0; - this._rightHidden = scrollLeft === this._tabContainerScrollSize; + this._rightHidden = Math.ceil(scrollLeft) >= this._tabContainerScrollSize; }, _onLeftScrollButtonDown: function() { From e1663d2fe72ce9dd2409cd5a1401a0b72da1a88f Mon Sep 17 00:00:00 2001 From: felvhage Date: Thu, 2 Jun 2016 14:49:24 +0200 Subject: [PATCH 02/15] Tests for scrollable paper-tabs scrollable test-page --- test/scrollable.html | 149 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 test/scrollable.html diff --git a/test/scrollable.html b/test/scrollable.html new file mode 100644 index 0000000..328a252 --- /dev/null +++ b/test/scrollable.html @@ -0,0 +1,149 @@ + + + + + + + paper-tabs-scrollable + + + + + + + + + + + + + + + + + + + + + + + + + + + From ad048420461447d454bfb800e1abee4bdefa6a37 Mon Sep 17 00:00:00 2001 From: felvhage Date: Thu, 2 Jun 2016 14:50:30 +0200 Subject: [PATCH 03/15] integrate scrollable.html into test-suite --- test/index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/index.html b/test/index.html index 9b58696..adffb74 100644 --- a/test/index.html +++ b/test/index.html @@ -20,9 +20,11 @@ 'basic.html', 'attr-for-selected.html', 'links.html', + 'scrollable.html', 'basic.html?dom=shadow', 'attr-for-selected.html?dom=shadow', - 'links.html?dom=shadow' + 'links.html?dom=shadow', + 'scrollable.html?dom=shadow' ]); From 8597a06cd35ed70241b72067d01bd3168e1fc1c3 Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Thu, 2 Jun 2016 15:40:37 +0200 Subject: [PATCH 04/15] Scrollable tests refined --- test/scrollable.html | 159 +++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 80 deletions(-) diff --git a/test/scrollable.html b/test/scrollable.html index 328a252..fd545de 100644 --- a/test/scrollable.html +++ b/test/scrollable.html @@ -58,91 +58,90 @@ From ca12410417861b13d77d5b85fd041117e3b0956c Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Thu, 2 Jun 2016 16:15:32 +0200 Subject: [PATCH 05/15] Fixed Shadow-DOM tests --- test/scrollable.html | 56 ++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/test/scrollable.html b/test/scrollable.html index fd545de..74ef98f 100644 --- a/test/scrollable.html +++ b/test/scrollable.html @@ -63,17 +63,17 @@ var tabs, tabsContainer, leftScrollbutton, rightScrollbutton; suite('non-scrollable paper-tabs', function() { - + setup(function () { tabs = fixture('basic'); - leftScrollbutton = tabs.querySelectorAll('paper-icon-button')[0]; - rightScrollbutton = tabs.querySelectorAll('paper-icon-button')[1]; - tabsContainer = tabs.querySelector('#tabsContainer'); + leftScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[0]; + rightScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[1]; + tabsContainer = tabs.$.tabsContainer; }); test('have no scrollbuttons', function() { - assert.isTrue(leftScrollbutton.offsetWidth===0); - assert.isTrue(rightScrollbutton.offsetWidth===0); + assert.isTrue(leftScrollbutton.offsetWidth===0); + assert.isTrue(rightScrollbutton.offsetWidth===0); }); }); @@ -82,9 +82,9 @@ setup(function () { tabs = fixture('scrollable'); - leftScrollbutton = tabs.querySelectorAll('paper-icon-button')[0]; - rightScrollbutton = tabs.querySelectorAll('paper-icon-button')[1]; - tabsContainer = tabs.querySelector('#tabsContainer'); + leftScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[0]; + rightScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[1]; + tabsContainer = tabs.$.tabsContainer; }); test('have scrollbuttons', function() { @@ -95,21 +95,21 @@ test('when scroll-offset is 0, then the left scrollbutton is faded out', function(done) { Polymer.Base.async(function() { - assert.equal(tabsContainer.scrollLeft, 0); - assert.isTrue(leftScrollbutton.classList.contains('not-visible')); - assert.isFalse(rightScrollbutton.classList.contains('not-visible')); + assert.equal(tabsContainer.scrollLeft, 0); + assert.isTrue(leftScrollbutton.classList.contains('not-visible')); + assert.isFalse(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); }); test('when scroll-offset is \'max\', then the right scrollbutton is faded out', function(done) { - //Set scrollLeft to a very high number. Will scroll to outermost position. - tabsContainer.scrollLeft = 99999; - - Polymer.Base.async(function() { - assert.isFalse(leftScrollbutton.classList.contains('not-visible')); - assert.isTrue(rightScrollbutton.classList.contains('not-visible')); + //Set scrollLeft to a very high number. Will scroll to outermost position. + tabsContainer.scrollLeft = 99999; + + Polymer.Base.async(function() { + assert.isFalse(leftScrollbutton.classList.contains('not-visible')); + assert.isTrue(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); @@ -121,19 +121,19 @@ setup(function () { tabs = fixture('zoomed'); - leftScrollbutton = tabs.querySelectorAll('paper-icon-button')[0]; - rightScrollbutton = tabs.querySelectorAll('paper-icon-button')[1]; - tabsContainer = tabs.querySelector('#tabsContainer'); + leftScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[0]; + rightScrollbutton = Polymer.dom(tabs.root).querySelectorAll('paper-icon-button')[1]; + tabsContainer = tabs.$.tabsContainer; }); test('the right scrollbutton is faded out, even if scrolloffset is fractional due to zoom', function(done) { - //Set scrollLeft to a very high number. Will scroll to outermost position. - tabsContainer.scrollLeft = 99999; - //Using Zoom-Fixture will let tabsContainer.scrollLeft become fractional in certain browsers (i.e. Chrome) - - Polymer.Base.async(function() { - assert.isFalse(leftScrollbutton.classList.contains('not-visible')); - assert.isTrue(rightScrollbutton.classList.contains('not-visible')); + //Set scrollLeft to a very high number. Will scroll to outermost position. + tabsContainer.scrollLeft = 99999; + //Using Zoom-Fixture will let tabsContainer.scrollLeft become fractional in certain browsers (i.e. Chrome) + + Polymer.Base.async(function() { + assert.isFalse(leftScrollbutton.classList.contains('not-visible')); + assert.isTrue(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); From 66f5b7a6453f2d4d797119199cf5ffbb7df9ad6b Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Thu, 2 Jun 2016 16:19:12 +0200 Subject: [PATCH 06/15] Fix Whitespace hopefully --- test/scrollable.html | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/test/scrollable.html b/test/scrollable.html index 74ef98f..4e664ac 100644 --- a/test/scrollable.html +++ b/test/scrollable.html @@ -88,28 +88,28 @@ }); test('have scrollbuttons', function() { - assert.isTrue(leftScrollbutton.offsetWidth>0); - assert.isTrue(rightScrollbutton.offsetWidth>0); + assert.isTrue(leftScrollbutton.offsetWidth>0); + assert.isTrue(rightScrollbutton.offsetWidth>0); }); test('when scroll-offset is 0, then the left scrollbutton is faded out', function(done) { Polymer.Base.async(function() { - assert.equal(tabsContainer.scrollLeft, 0); - assert.isTrue(leftScrollbutton.classList.contains('not-visible')); - assert.isFalse(rightScrollbutton.classList.contains('not-visible')); + assert.equal(tabsContainer.scrollLeft, 0); + assert.isTrue(leftScrollbutton.classList.contains('not-visible')); + assert.isFalse(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); }); test('when scroll-offset is \'max\', then the right scrollbutton is faded out', function(done) { - //Set scrollLeft to a very high number. Will scroll to outermost position. - tabsContainer.scrollLeft = 99999; + //Set scrollLeft to a very high number. Will scroll to outermost position. + tabsContainer.scrollLeft = 99999; - Polymer.Base.async(function() { - assert.isFalse(leftScrollbutton.classList.contains('not-visible')); - assert.isTrue(rightScrollbutton.classList.contains('not-visible')); + Polymer.Base.async(function() { + assert.isFalse(leftScrollbutton.classList.contains('not-visible')); + assert.isTrue(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); @@ -127,13 +127,13 @@ }); test('the right scrollbutton is faded out, even if scrolloffset is fractional due to zoom', function(done) { - //Set scrollLeft to a very high number. Will scroll to outermost position. - tabsContainer.scrollLeft = 99999; - //Using Zoom-Fixture will let tabsContainer.scrollLeft become fractional in certain browsers (i.e. Chrome) + //Set scrollLeft to a very high number. Will scroll to outermost position. + tabsContainer.scrollLeft = 99999; + //Using Zoom-Fixture will let tabsContainer.scrollLeft become fractional in certain browsers (i.e. Chrome) - Polymer.Base.async(function() { - assert.isFalse(leftScrollbutton.classList.contains('not-visible')); - assert.isTrue(rightScrollbutton.classList.contains('not-visible')); + Polymer.Base.async(function() { + assert.isFalse(leftScrollbutton.classList.contains('not-visible')); + assert.isTrue(rightScrollbutton.classList.contains('not-visible')); done(); }, 100); From 9aa3b93d31f2370127ca171edf98f75dbe94998c Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 3 Jun 2016 15:24:51 +0200 Subject: [PATCH 07/15] Trying Zoom in Percentage instead of numeric, to fix build --- test/scrollable.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/scrollable.html b/test/scrollable.html index 4e664ac..fda3451 100644 --- a/test/scrollable.html +++ b/test/scrollable.html @@ -47,7 +47,7 @@ - - - - - + From 6b5f63f472879b4914be90cb1f49dd48f2e908ee Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:13:46 +0200 Subject: [PATCH 10/15] Excluding shadow-dom tests for scrollable to fix build --- test/index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/index.html b/test/index.html index adffb74..e649fa0 100644 --- a/test/index.html +++ b/test/index.html @@ -23,8 +23,7 @@ 'scrollable.html', 'basic.html?dom=shadow', 'attr-for-selected.html?dom=shadow', - 'links.html?dom=shadow', - 'scrollable.html?dom=shadow' + 'links.html?dom=shadow' ]); From 06e708cfde564fd3e76f90ff4d7e823d8c2585b6 Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:21:36 +0200 Subject: [PATCH 11/15] Removed all scrollable tests, to fix build --- test/index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/test/index.html b/test/index.html index e649fa0..9b58696 100644 --- a/test/index.html +++ b/test/index.html @@ -20,7 +20,6 @@ 'basic.html', 'attr-for-selected.html', 'links.html', - 'scrollable.html', 'basic.html?dom=shadow', 'attr-for-selected.html?dom=shadow', 'links.html?dom=shadow' From 736e18d39e4ccafd497ab3fcbcadc721519dd02e Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:28:08 +0200 Subject: [PATCH 12/15] Reverted change in paper-tabs. There should be no difference at all, compared to master branch. --- paper-tabs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper-tabs.html b/paper-tabs.html index adf4d2c..ae2c1b8 100644 --- a/paper-tabs.html +++ b/paper-tabs.html @@ -511,7 +511,7 @@ var scrollLeft = this.$.tabsContainer.scrollLeft; this._leftHidden = scrollLeft === 0; - this._rightHidden = Math.ceil(scrollLeft) >= this._tabContainerScrollSize; + this._rightHidden = scrollLeft === this._tabContainerScrollSize; }, _onLeftScrollButtonDown: function() { From d39aa2863633fa149cfcee7fb5c522cee1cacf2e Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:39:23 +0200 Subject: [PATCH 13/15] Tests back to where i started --- test/scrollable.html | 87 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/test/scrollable.html b/test/scrollable.html index 8f6f707..1ca2e42 100644 --- a/test/scrollable.html +++ b/test/scrollable.html @@ -34,7 +34,7 @@ - - - From 4af9bdc7d89abc223fe99d1db1132cc7eac339ee Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:44:09 +0200 Subject: [PATCH 14/15] Tests added to index.html --- test/index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/index.html b/test/index.html index 9b58696..adffb74 100644 --- a/test/index.html +++ b/test/index.html @@ -20,9 +20,11 @@ 'basic.html', 'attr-for-selected.html', 'links.html', + 'scrollable.html', 'basic.html?dom=shadow', 'attr-for-selected.html?dom=shadow', - 'links.html?dom=shadow' + 'links.html?dom=shadow', + 'scrollable.html?dom=shadow' ]); From 670882d9acc2c1e79f189a9d40d34344f80a9967 Mon Sep 17 00:00:00 2001 From: Frederik Elvhage Date: Fri, 10 Jun 2016 23:45:17 +0200 Subject: [PATCH 15/15] Actual fix inserted again. --- paper-tabs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper-tabs.html b/paper-tabs.html index ae2c1b8..adf4d2c 100644 --- a/paper-tabs.html +++ b/paper-tabs.html @@ -511,7 +511,7 @@ var scrollLeft = this.$.tabsContainer.scrollLeft; this._leftHidden = scrollLeft === 0; - this._rightHidden = scrollLeft === this._tabContainerScrollSize; + this._rightHidden = Math.ceil(scrollLeft) >= this._tabContainerScrollSize; }, _onLeftScrollButtonDown: function() {