blob: 8b8a4097b6266023c9262b69e44e6e5f38ef1c19 (
plain)
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
|
<!DOCTYPE html>
<html>
<!--
Copyright 2009 The Closure Library Authors. All Rights Reserved.
Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Closure Unit Tests - goog.dom.abstractrange</title>
<script src="../base.js"></script>
<script>
goog.require('goog.dom');
goog.require('goog.dom.AbstractRange');
goog.require('goog.dom.Range');
goog.require('goog.testing.jsunit');
</script>
</head>
<body>
<iframe src="javascript:"<html><body contenteditable>asdf""
id="a">
</iframe>
<iframe src="javascript:"<html><body contenteditable>asdf""
id="b">
</iframe>
<iframe src="javascript:"<html><body contenteditable><img>""
id="c">
</iframe>
<script>
function testCorrectDocument() {
var a = goog.dom.getElement('a').contentWindow;
var b = goog.dom.getElement('b').contentWindow;
a.document.body.focus();
var selection = goog.dom.AbstractRange.getBrowserSelectionForWindow(a);
assertNotNull('Selection must not be null', selection);
var range = goog.dom.Range.createFromBrowserSelection(selection);
assertEquals('getBrowserSelectionForWindow must return selection in the ' +
'correct document', a.document, range.getDocument());
// This is intended to trip up Internet Explorer --
// see http://b/2048934
b.document.body.focus();
selection = goog.dom.AbstractRange.getBrowserSelectionForWindow(a);
// Some (non-IE) browsers keep a separate selection state for each document
// in the same browser window. That's fine, as long as the selection object
// requested from the window object is correctly associated with that
// window's document.
if (selection) {
range = goog.dom.Range.createFromBrowserSelection(selection);
assertEquals('getBrowserSelectionForWindow must return selection in ' +
'the correct document', a.document, range.getDocument());
} else {
assertNull(selection);
}
}
function testSelectionIsControlRange() {
var c = goog.dom.getElement('c').contentWindow;
// Only IE supports control ranges
if (c.document.body.createControlRange) {
var controlRange = c.document.body.createControlRange();
controlRange.add(c.document.getElementsByTagName('img')[0]);
controlRange.select();
var selection = goog.dom.AbstractRange.getBrowserSelectionForWindow(c);
assertNotNull('Selection must not be null', selection);
}
}
</script>
</body>
</html>
|