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

Unified Diff: third_party/WebKit/LayoutTests/fast/forms/textarea-metrics.html

Issue 1522803002: Move textarea-related tests to fast/forms/textarea/, part 1. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@color-uaf
Patch Set: Created 5 years 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: third_party/WebKit/LayoutTests/fast/forms/textarea-metrics.html
diff --git a/third_party/WebKit/LayoutTests/fast/forms/textarea-metrics.html b/third_party/WebKit/LayoutTests/fast/forms/textarea-metrics.html
deleted file mode 100644
index d87d20bbeb23c66140b6a94aa40161c163d6e871..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/fast/forms/textarea-metrics.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test.js"></script>
-</head>
-<body>
-<p id="description"></p>
-<div id="console"></div>
-<script>
-description("This test checks that textareas have the right metrics. These numbers match IE7 except for scrollHeight. For two reasons:<br>" +
-"1. scrollHeight is different for elements without enough content to cause scroll because IE7 then reports the height of the text inside the " +
-"element as the scrollHeight. IE8 reports has scrollHeight == offsetHeight. Gecko/WebKit have scrollHeight == clientHeight.<br>" +
-"2. For the elements with scroll in standards-mode, IE wraps the text differently. It seems to leave 2px less space for the text. We don't " +
-"currently mimic this quirk. It's not clear whether we should given that we agree with IE7's clientWidth numbers in all these cases.");
-
-function assertTextareaMetrics(doc, properties, expectedMetrics) {
- var textarea = doc.createElement('textarea');
- // Give some consistent CSS for consistent rendering across platforms
- // and to help in reasoning when trying to match IE metrics.
- var style = 'overflow-y:auto; font-family:Ahem; line-height:20px; height:50px; width:50px;';
- var title = '';
- for (property in properties) {
- var value = properties[property];
- title += ' ' + property + ': "' + value + '",';
- if (property == 'style')
- style += value;
- else
- textarea[property] = value;
- }
- textarea.style.cssText = style;
- doc.body.appendChild(textarea);
-
- // Create a more human-readable ID.
- var id = title.replace(/[\'\",;\:]/g, ' ').replace(/ +/g, '-');
- id = id == '' ? 'no-styles' : id;
- textarea.id = id;
-
- window[doc.compatMode + 'doc'] = doc;
-
- function assertMetricsForTextarea() {
- if (!title)
- title = ' none';
-
- debug('Properties =' + title);
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').clientWidth", String(expectedMetrics.clientWidth));
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').clientHeight", String(expectedMetrics.clientHeight));
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').offsetWidth", String(expectedMetrics.offsetWidth));
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').offsetHeight", String(expectedMetrics.offsetHeight));
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').scrollWidth", String(expectedMetrics.scrollWidth));
- shouldBe(doc.compatMode + "doc.getElementById('" + id + "').scrollHeight", String(expectedMetrics.scrollHeight));
- debug('');
- }
- if (document.all)
- // Give a timeout so IE has time to figure out it's metrics.
- setTimeout(assertMetricsForTextarea, 100);
- else
- assertMetricsForTextarea();
-}
-
-var smallHTML = 'A';
-var htmlThatCausesScroll = 'AAAAAAAAA';
-
-function testTextareasForDocument(doc, compatMode,
- textareaSizes, textareaWithScrollSizes,
- textareaWith8pxPaddingSizes, textareaWith8pxPaddingAndScrollbarSizes) {
- if (doc.compatMode != compatMode)
- testFailed('This doc should be in ' + compatMode + ' mode.');
-
- try {
- var scrollbarStyle = doc.createElement('style');
- scrollbarStyle.innerText = 'textarea::-webkit-scrollbar{ width:17px }';
- doc.getElementsByTagName('head')[0].appendChild(scrollbarStyle);
- } catch (e) {
- // IE throws an exception here, but doesn't need the above clause anyways.
- }
-
- debug('Testing ' + compatMode + ' document.')
- assertTextareaMetrics(doc, {}, textareaSizes);
- assertTextareaMetrics(doc, {disabled: true}, textareaSizes);
- assertTextareaMetrics(doc, {innerHTML: smallHTML}, textareaSizes);
- assertTextareaMetrics(doc, {innerHTML: htmlThatCausesScroll}, textareaWithScrollSizes);
- assertTextareaMetrics(doc, {innerHTML: smallHTML, disabled: true}, textareaSizes);
- assertTextareaMetrics(doc, {innerHTML: htmlThatCausesScroll, disabled: true}, textareaWithScrollSizes);
- assertTextareaMetrics(doc, {innerHTML: smallHTML, style: 'padding:8px'}, textareaWith8pxPaddingSizes);
- assertTextareaMetrics(doc, {innerHTML: htmlThatCausesScroll, style: 'padding:8px'}, textareaWith8pxPaddingAndScrollbarSizes);
- assertTextareaMetrics(doc, {innerHTML: smallHTML, rows: 10}, textareaSizes);
- assertTextareaMetrics(doc, {innerHTML: htmlThatCausesScroll, rows: 10}, textareaWithScrollSizes);
-}
-
-// For textareas with scrollbars have the expected clientWidth be the
-// expected offsetWidth - scrollbarPlusBorderWidth.
-// default border on textareas is 1px solid. So, the border width is 2.
-// And the scrollbarWidth we set to be 17 to match windows so that
-// these numbers will be platform independent and match IE.
-var scrollbarPlusBorderWidth = 19;
-
-var textareaSizesQuirks = {clientWidth: 48,
- clientHeight: 48,
- offsetWidth: 50,
- offsetHeight: 50,
- scrollWidth: 48,
- scrollHeight: 48};
-
-var textareaWithScrollSizesQuirks = {clientWidth: 50 - scrollbarPlusBorderWidth,
- clientHeight: 48,
- offsetWidth: 50,
- offsetHeight: 50,
- scrollWidth: 50 - scrollbarPlusBorderWidth,
- scrollHeight: 104};
-
-var textareaWith8pxPaddingSizesQuirks = {clientWidth: 48,
- clientHeight: 48,
- offsetWidth: 50,
- offsetHeight: 50,
- scrollWidth: 48,
- scrollHeight: 48};
-
-var textareaWith8pxPaddingAndScrollbarSizesQuirks = {clientWidth: 50 - scrollbarPlusBorderWidth,
- clientHeight: 48,
- offsetWidth: 50,
- offsetHeight: 50,
- scrollWidth: 50 - scrollbarPlusBorderWidth,
- scrollHeight: 196};
-
-testTextareasForDocument(document, 'BackCompat',
- textareaSizesQuirks, textareaWithScrollSizesQuirks,
- textareaWith8pxPaddingSizesQuirks, textareaWith8pxPaddingAndScrollbarSizesQuirks);
-
-var standardsIframe = document.createElement('iframe');
-standardsIframe.style.width = '100%';
-document.body.appendChild(standardsIframe);
-standardsIframe.contentWindow.document.write('<!DocType html><html><head></head><body></body></html>');
-standardsIframe.contentWindow.document.close();
-
-var textareaSizesStandards = {clientWidth: 54,
- clientHeight: 54,
- offsetWidth: 56,
- offsetHeight: 56,
- scrollWidth: 54,
- scrollHeight: 54};
-
-var textareaWithScrollSizesStandards = {clientWidth: 56 - scrollbarPlusBorderWidth,
- clientHeight: 54,
- offsetWidth: 56,
- offsetHeight: 56,
- scrollWidth: 56 - scrollbarPlusBorderWidth,
- scrollHeight: 64};
-
-var textareaWith8pxPaddingSizesStandards = {clientWidth: 66,
- clientHeight: 66,
- offsetWidth: 68,
- offsetHeight: 68,
- scrollWidth: 66,
- scrollHeight: 66};
-
-var textareaWith8pxPaddingAndScrollbarSizesStandards = {clientWidth: 68 - scrollbarPlusBorderWidth,
- clientHeight: 66,
- offsetWidth: 68,
- offsetHeight: 68,
- scrollWidth: 68 - scrollbarPlusBorderWidth,
- scrollHeight: 76};
-
-testTextareasForDocument(standardsIframe.contentWindow.document, 'CSS1Compat',
- textareaSizesStandards, textareaWithScrollSizesStandards,
- textareaWith8pxPaddingSizesStandards, textareaWith8pxPaddingAndScrollbarSizesStandards);
-</script>
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698