12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Copyright 2008 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.module('goog.net.IframeLoadMonitorTest');
- goog.setTestOnly('goog.net.IframeLoadMonitorTest');
- var IframeLoadMonitor = goog.require('goog.net.IframeLoadMonitor');
- var Promise = goog.require('goog.Promise');
- var TagName = goog.require('goog.dom.TagName');
- var Timer = goog.require('goog.Timer');
- var dom = goog.require('goog.dom');
- var events = goog.require('goog.events');
- var testSuite = goog.require('goog.testing.testSuite');
- var TEST_FRAME_SRC = 'iframeloadmonitor_test_frame.html';
- var frameParent;
- testSuite({
- setUpPage: function() { frameParent = dom.getElement('frame_parent'); },
- tearDown: function() { dom.removeChildren(frameParent); },
- testIframeLoadMonitor: function() {
- var frame = dom.createDom(TagName.IFRAME);
- var monitor = new IframeLoadMonitor(frame);
- var monitorPromise = new Promise(function(resolve, reject) {
- events.listen(monitor, IframeLoadMonitor.LOAD_EVENT, resolve);
- });
- assertFalse(monitor.isLoaded());
- frameParent.appendChild(frame);
- return monitorPromise.then(function(e) {
- assertEquals(IframeLoadMonitor.LOAD_EVENT, e.type);
- assertTrue(monitor.isLoaded());
- });
- },
- testIframeLoadMonitor_withContentCheck: function() {
- var frame = dom.createDom(TagName.IFRAME);
- var monitor = new IframeLoadMonitor(frame, true);
- var monitorPromise = new Promise(function(resolve, reject) {
- events.listen(monitor, IframeLoadMonitor.LOAD_EVENT, resolve);
- });
- assertFalse(monitor.isLoaded());
- frameParent.appendChild(frame);
- return Timer.promise(10)
- .then(function() {
- assertFalse(
- 'Monitor should not fire before content has loaded.',
- monitor.isLoaded());
- frame.src = TEST_FRAME_SRC;
- return monitorPromise;
- })
- .then(function(e) {
- assertEquals(IframeLoadMonitor.LOAD_EVENT, e.type);
- assertTrue(monitor.isLoaded());
- });
- }
- });
|