12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // 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.dom.TagName');
- 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(
- goog.dom.getElementsByTagName(goog.dom.TagName.IMG, c.document)[0]);
- controlRange.select();
- var selection = goog.dom.AbstractRange.getBrowserSelectionForWindow(c);
- assertNotNull('Selection must not be null', selection);
- }
- }
|