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

Unified Diff: LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html

Issue 342943002: Center fixpos <dialog> (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rm non-anchored-dialog-positioning-expected.txt Created 6 years, 6 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: LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html
diff --git a/LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html b/LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html
deleted file mode 100644
index 8240a6a765afecd2a79cfa414028b186d74eb517..0000000000000000000000000000000000000000
--- a/LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<style>
-/* Remove body margin and dialog styles for easier positioning expected values */
-body {
- height: 10000px;
- margin: 0;
-}
-
-dialog {
- border: 0;
- padding: 0;
- height: auto;
- width: auto;
-}
-
-#absolute-div {
- position: absolute;
- top: 800px;
- height: 50px;
- width: 90%;
-}
-
-#relative-div {
- position: relative;
- top: 20px;
- height: 30px;
-}
-</style>
-<script src="../../../resources/js-test.js"></script>
-<script>
-function checkTopOfViewport(dialog) {
- shouldBe('dialog.getBoundingClientRect().top', '0');
-}
-
-function checkCentered(dialog) {
- centeredTop = (window.innerHeight - dialog.offsetHeight) / 2;
- shouldBe('dialog.getBoundingClientRect().top', 'centeredTop');
-}
-
-function testShowModal(dialog, checker) {
- dialog.showModal();
- checker();
- dialog.close();
-}
-
-function testShow(dialog, checker) {
- dialog.show();
- checker();
- dialog.close();
-}
-</script>
-</head>
-<body>
- <dialog id="mydialog">It is my dialog.</dialog>
- <div id="absolute-div">
- <div id="relative-div"></div>
- </div>
-</body>
-<script>
-description("Tests positioning of non-anchored dialogs.");
-
-dialog = document.getElementById('mydialog');
-absoluteContainer = document.querySelector('#absolute-div');
-relativeContainer = document.querySelector('#relative-div');
-
-debug('showModal() should center in the viewport.');
-testShowModal(dialog, function() { checkCentered(dialog) });
-
-debug('<br>The computed top and bottom of a centered dialog should still have position auto');
-shouldBeEqualToString('window.getComputedStyle(dialog).top', 'auto');
-shouldBeEqualToString('window.getComputedStyle(dialog).bottom', 'auto');
-
-debug('<br>Dialog should be recentered if showModal() is called after close().');
-window.scroll(0, 500);
-dialog.showModal();
-checkCentered(dialog);
-
-debug('<br>Dialog should not be recentered on a relayout.');
-var expectedTop = dialog.getBoundingClientRect().top;
-window.scroll(0, 1000);
-document.body.offsetHeight;
-window.scroll(0, 500);
-shouldBe('dialog.getBoundingClientRect().top', 'expectedTop');
-dialog.close();
-
-debug('<br>A tall dialog should be positioned at the top of the viewport.');
-dialog.style.height = '20000px';
-testShowModal(dialog, function() { checkTopOfViewport(dialog) });
-dialog.style.height = 'auto';
-
-debug('<br>The dialog should be centered regardless of the presence of a horizontal scrollbar.');
-document.body.style.width = '4000px';
-testShowModal(dialog, function() { checkCentered(dialog) });
-document.body.style.width = 'auto';
-
-debug('<br>Test that centering works when dialog is inside positioned containers.');
-dialog.parentNode.removeChild(dialog);
-absoluteContainer.appendChild(dialog);
-testShowModal(dialog, function() { checkCentered(dialog) });
-dialog.parentNode.removeChild(dialog);
-relativeContainer.appendChild(dialog);
-testShowModal(dialog, function() { checkCentered(dialog) });
-
-debug("<br>Dialog's position should survive after becoming display:none temporarily.");
-window.scroll(0, 500);
-dialog.showModal();
-expectedTop = dialog.getBoundingClientRect().top;
-window.scroll(0, 1000);
-relativeContainer.style.display = 'none';
-relativeContainer.style.display = 'block';
-window.scroll(0, 500);
-shouldBe('dialog.getBoundingClientRect().top', 'expectedTop');
-
-debug("<br>Dialog loses centering position when removed from document.");
-window.scroll(0, 1000);
-dialog.parentNode.removeChild(dialog);
-relativeContainer.appendChild(dialog);
-window.scroll(0, 500);
-shouldBe('dialog.getBoundingClientRect().top', 'relativeContainer.getBoundingClientRect().top');
-dialog.close();
-
-debug("<br>Dialog's specified position should survive after close() and showModal().");
-dialog.showModal();
-dialog.style.top = '0px';
-expectedTop = dialog.getBoundingClientRect().top;
-dialog.close();
-dialog.showModal();
-shouldBe('dialog.getBoundingClientRect().top', 'expectedTop');
-
-debug("<br>Dialog is recentered if showModal() is called after removing 'open'");
-dialog.style.top = 'auto';
-dialog.close();
-dialog.showModal();
-dialog.removeAttribute('open');
-window.scroll(0, 1000);
-dialog.showModal();
-checkCentered(dialog);
-dialog.close();
-window.scroll(0, 500);
-
-debug("<br>Dialog should not be centered if showModal() was called when an ancestor had display 'none'.");
-absoluteContainer.style.display = 'none';
-dialog.showModal();
-absoluteContainer.style.display = 'block';
-// Since dialog's containing block is the ICB, it's statically positioned after <body>.
-expectedTop = document.body.getBoundingClientRect().bottom;
-shouldBe('dialog.getBoundingClientRect().top', 'expectedTop');
-dialog.close();
-
-debug("<br>Test setting 'top' on an abspos modal dialog");
-offset = 50;
-dialog.style.top = offset + 'px';
-testShowModal(dialog, function() { shouldBe('dialog.getBoundingClientRect().top + window.scrollY', 'offset'); });
-dialog.style.top = 'auto';
-
-debug("<br>Test setting 'bottom' on an abspos modal dialog");
-dialog.style.top = 'auto';
-dialog.style.bottom = offset + 'px';
-testShowModal(dialog, function() { shouldBe('dialog.getBoundingClientRect().bottom + window.scrollY', 'window.innerHeight - offset'); });
-dialog.style.bottom = 'auto';
-
-debug("<br>Test fixed position for a modal dialog");
-dialog.style.position = 'fixed';
-dialog.style.top = offset + 'px';
-testShowModal(dialog, function() { shouldBe('dialog.getBoundingClientRect().top', 'offset'); });
-
-// Omit testing static/relative for modal dialogs, as they are covered by top layer tests (static/relative don't exist in top layer)
-
-debug('<br>Test absolute position for a non-modal dialog');
-dialog.style.position = 'absolute';
-dialog.style.top = offset + 'px';
-testShow(dialog, function() { shouldBe('dialog.getBoundingClientRect().top', 'relativeContainer.getBoundingClientRect().top + offset'); });
-
-debug('<br>Test static position for a non-modal dialog');
-dialog.style.position = 'static';
-testShow(dialog, function() { shouldBe('dialog.getBoundingClientRect().top', 'relativeContainer.getBoundingClientRect().top'); });
-
-debug('<br>Test relative position for a non-modal dialog');
-dialog.style.position = 'relative';
-dialog.style.top = offset + 'px';
-dialog.style.left = offset + 'px';
-testShow(dialog, function() {
- shouldBe('dialog.getBoundingClientRect().top', 'relativeContainer.getBoundingClientRect().top + offset');
- shouldBe('dialog.getBoundingClientRect().left', 'relativeContainer.getBoundingClientRect().left + offset');
-});
-</script>
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698