Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: chrome/test/data/webui/cr_elements/cr_dialog_test.js

Issue 2795763003: MD Settings: adjust dialog style and scroll border visual (Closed)
Patch Set: clean up intersectionObserver, add tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 suite('cr-dialog', function() { 5 suite('cr-dialog', function() {
6 setup(function() { 6 setup(function() {
7 PolymerTest.clearBody(); 7 PolymerTest.clearBody();
8 }); 8 });
9 9
10 test('focuses title on show', function() { 10 test('focuses title on show', function() {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 document.body.innerHTML = ` 113 document.body.innerHTML = `
114 <dialog is="cr-dialog" show-scroll-borders> 114 <dialog is="cr-dialog" show-scroll-borders>
115 <div class="title">title</div> 115 <div class="title">title</div>
116 <div class="body">body</div> 116 <div class="body">body</div>
117 </dialog>`; 117 </dialog>`;
118 118
119 var dialog = document.body.querySelector('dialog'); 119 var dialog = document.body.querySelector('dialog');
120 var bodyContainer = dialog.$$('.body-container'); 120 var bodyContainer = dialog.$$('.body-container');
121 assertTrue(!!bodyContainer); 121 assertTrue(!!bodyContainer);
122 122
123 dialog.showModal(); // Attach the dialog for the first time here.
124
123 var observerCount = 0; 125 var observerCount = 0;
124 126
125 // Needs to setup the observer before attaching, since InteractionObserver 127 // Needs to setup the observer before attaching, since InteractionObserver
126 // calls callback before MutationObserver does. 128 // calls callback before MutationObserver does.
127 var observer = new MutationObserver(function() { 129 var observer = new MutationObserver(function(changes) {
130 if (changes[0].attributeName !=
131 'class') // Only care about class mutations
dpapad 2017/04/05 23:56:10 Formatting seems a bit off here. Can we move the c
scottchen 2017/04/06 01:11:13 Done.
132 return;
133
128 observerCount++; 134 observerCount++;
129 if (observerCount == 1) { // Triggered when scrolled to bottom. 135 if (observerCount == 1) { // Triggered when scrolled to bottom.
136 console.log(bodyContainer.classList[0]);
dpapad 2017/04/05 23:56:10 Remove console.log.
scottchen 2017/04/06 01:11:13 Done.
130 assertFalse(bodyContainer.classList.contains('bottom-scrollable')); 137 assertFalse(bodyContainer.classList.contains('bottom-scrollable'));
138 assertTrue(bodyContainer.classList.contains('top-scrollable'));
131 bodyContainer.scrollTop = 0; 139 bodyContainer.scrollTop = 0;
132 } else if (observerCount == 2) { // Triggered when scrolled back to top. 140 } else if (observerCount == 2) { // Triggered when scrolled back to top.
dpapad 2017/04/05 23:56:10 Is there a way to test the case where both top and
133 assertTrue(bodyContainer.classList.contains('bottom-scrollable')); 141 assertTrue(bodyContainer.classList.contains('bottom-scrollable'));
142 assertFalse(bodyContainer.classList.contains('top-scrollable'));
134 observer.disconnect(); 143 observer.disconnect();
135 done(); 144 done();
136 } 145 }
137 }); 146 });
138 observer.observe(bodyContainer, {attributes: true}); 147 observer.observe(bodyContainer, {attributes: true});
139 148
140 // Height is normally set via CSS, but mixin doesn't work with innerHTML. 149 // Height is normally set via CSS, but mixin doesn't work with innerHTML.
141 bodyContainer.style.height = '1px'; 150 bodyContainer.style.height = '1px';
142 bodyContainer.scrollTop = 100; 151 bodyContainer.scrollTop = 100;
143 dialog.showModal(); // Attach the dialog for the first time here.
144 }); 152 });
145 }); 153 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698