62 lines
2.5 KiB
JavaScript
62 lines
2.5 KiB
JavaScript
// Copyright 2009 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
goog.provide('goog.dom.AbstractRangeTest');
|
|
goog.setTestOnly('goog.dom.AbstractRangeTest');
|
|
|
|
goog.require('goog.dom');
|
|
goog.require('goog.dom.AbstractRange');
|
|
goog.require('goog.dom.Range');
|
|
goog.require('goog.testing.jsunit');
|
|
|
|
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 != null && selection.rangeCount != 0) {
|
|
range = goog.dom.Range.createFromBrowserSelection(selection);
|
|
assertEquals('getBrowserSelectionForWindow must return selection in ' +
|
|
'the correct document', a.document, range.getDocument());
|
|
} else {
|
|
assertTrue(selection == null || selection.rangeCount == 0);
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|