File: focus_test.html

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (106 lines) | stat: -rw-r--r-- 2,394 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE HTML>
<html>
<script src='test.js'></script>
<script src='focus.js'></script>
<script>

function testInactiveElement() {
  var a = document.getElementById('a');
  a.value = 'abc';
  a.setSelectionRange(0, 2);
  assertEquals(0, a.selectionStart);
  assertEquals(2, a.selectionEnd);
  var c = document.getElementById('c');
  c.focus();
  assertEquals(c, document.activeElement);
  focus(a);
  assertEquals(0, a.selectionStart);
  assertEquals(2, a.selectionEnd);
}

function testActiveElement() {
  var a = document.getElementById('a');
  a.focus();
  var is_blurred = false;
  var onBlur = function() {
    is_blurred = true;
  }
  a.addEventListener('blur', onBlur, false);
  try {
    focus(a);
    assert(!is_blurred);
  } catch (error) {
    a.removeEventListener('blur', onBlur, false);
    throw error;
  }
}

function testNonTextInput() {
  var a = document.getElementById('a');
  a.focus();
  assertEquals(a, document.activeElement);
  var c = document.getElementById('c');
  focus(c);
  assertEquals(c, document.activeElement);
}

function testEditableDiv() {
  var a = document.getElementById('a');
  a.focus();
  assertEquals(a, document.activeElement);
  var d = document.getElementById('d');
  focus(d);
  assertEquals(d, document.activeElement);
}

function testNonFocusableChildOfEditableDiv() {
  var a = document.getElementById('a');
  a.focus();
  assertEquals(a, document.activeElement);
  try {
    focus(document.getElementById('e'));
    assert(false);
  } catch (error) {
  }
}

function testFocusableChildOfEditableDiv() {
  var a = document.getElementById('a');
  a.focus();
  assertEquals(a, document.activeElement);
  var f = document.getElementById('f');
  focus(f);
  assertEquals(f, document.activeElement);
}

function testTransparentElement() {
  var a = document.getElementById('a');
  a.focus();
  assertEquals(a, document.activeElement);
  var g = document.getElementById('g');
  focus(g);
  assertEquals(g, document.activeElement);
}

</script>
<body>
  <input type="text" id="a">
  <br>
  <textarea id="b">
  </textarea>
  <br>
  <input type="button" value="c" id="c">
  <br>
  <div id="d" contentEditable="true">
  </div>
  <div contentEditable="true">
    <div id="e">editable</div>
  </div>
  <div contentEditable="true">
    <input id="f" type="text">
  </div>
  <div>
    <input id="g" style='opacity: 0' type='text'>
  </div>
</body>
</html>