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

Unified Diff: chrome/test/data/webui/cr_elements/cr_dialog_test.js

Issue 2702523005: MD Settings: long dialog body should have overscroll line. (Closed)
Patch Set: remove unused variable Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/cr_elements/cr_dialog_test.js
diff --git a/chrome/test/data/webui/cr_elements/cr_dialog_test.js b/chrome/test/data/webui/cr_elements/cr_dialog_test.js
index 5f9c1b1fa3be8f5c9797990b7e55b255bc72d60d..7cd767e59c7bf61bbd7bdd2180f35ad6371a3b3b 100644
--- a/chrome/test/data/webui/cr_elements/cr_dialog_test.js
+++ b/chrome/test/data/webui/cr_elements/cr_dialog_test.js
@@ -44,4 +44,38 @@ suite('cr-dialog', function() {
expectNotEquals(dialog, document.activeElement);
expectEquals(button, document.activeElement);
});
+
+ test('dialog body scrollable border when appropriate', function(done) {
+ document.body.innerHTML = `
+ <dialog is="cr-dialog" show-scroll-borders>
+ <div class="title">title</div>
+ <div class="body">body</div>
+ </dialog>`;
+
+ var dialog = document.body.querySelector('dialog');
+ var bodyContainer = dialog.$$('.body-container');
+ assertTrue(!!bodyContainer);
+
+ var observerCount = 0;
+
+ // Needs to setup the observer before attaching, since InteractionObserver
+ // calls callback before MutationObserver does.
+ var observer = new MutationObserver(function() {
+ observerCount++;
+ if (observerCount == 1) { // Triggered when scrolled to bottom.
+ assertFalse(bodyContainer.classList.contains('bottom-scrollable'));
+ bodyContainer.scrollTop = 0;
+ } else if (observerCount == 2) { // Triggered when scrolled back to top.
+ assertTrue(bodyContainer.classList.contains('bottom-scrollable'));
+ observer.disconnect();
+ done();
+ }
+ });
+ observer.observe(bodyContainer, {attributes: true});
+
+ // Height is normally set via CSS, but mixin doesn't work with innerHTML.
+ bodyContainer.style.height = '1px';
+ bodyContainer.scrollTop = 100;
+ dialog.showModal(); // Attach the dialog for the first time here.
+ });
});

Powered by Google App Engine
This is Rietveld 408576698