Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / forms / resources / label-test-util.js
blob3eeff74682f8f605874de3d1ba25014ea23c6bd4
1 // This file contains functions for testing the label element.
3 var withNoLabel = 0;
4 var withParentLabel = 1;
5 var withSiblingLabel = 2;
6 var withSibling2Label = 4;
8 // Populate dom tree and returns test data.
9 function setupLabelsTest(labelRelation, preHtml, postHtml)
11     var html = '<div id="div1"></div><div id="div2">';
12     if (preHtml)
13         html += preHtml;
15     var dataSet = createFormControlDataSet();
17     for (var name in dataSet) {
18         var data = dataSet[name];
19         var id = data.name + '1';
20         data.id = id;
22         if (labelRelation & withParentLabel)
23             html += '<label>';
25         if (labelRelation & withSiblingLabel) {
26             data.labelId = id + 'Label1';
27             html += '<label for=' + id + ' id=' + data.labelId + '></label>';
28         }
30         if (labelRelation & withSibling2Label) {
31             data.labelId2 = id + 'Label2';
32             html += '<label for=' + id + ' id=' + data.labelId2 + '></label>';
33         }
35         if (data.inputType) {
36             var typeName = data.inputType;
37             html += '<input type=' + typeName + ' id=' + id + '>';
38         } else {
39             var tagName = data.tagName;
40             html += '<' + tagName + ' id=' + id + '></' + tagName + '>';
41         }
43         if (labelRelation & withParentLabel)
44             html += '</label>';
45     }
47     if (postHtml)
48         html += postHtml;
50     html += '</div>';
52     var parent = document.createElement('div');
53     parent.innerHTML = html;
54     document.body.appendChild(parent);
56     for (var name in dataSet) {
57         var data = dataSet[name];
58         data.element = document.getElementById(data.id);
59     }
61     return {
62         dataSet: dataSet,
64         getLabelableElementData: function (name)
65         {
66             var data = dataSet[name];
67             return data && data.element.labels ? data : null;
68         },
70         outerElement: document.getElementById('div1'),
71     };
74 function mouseMoveToLabel(labelId) {
75     var label = document.getElementById(labelId);
76     var itemHeight = Math.floor(label.offsetHeight / label.size);
77     var offset = 5;
78     if (window.eventSender)
79         eventSender.mouseMoveTo(label.offsetLeft + offset, label.offsetTop + offset - window.pageYOffset);