window.io.test.js 2.57 KB
/*
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2015 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* eslint max-nested-callbacks: [2, 10]*/
/* eslint no-new: 0 */

/* globals describe, expect, before, after, it */
define(['window.io'], function(WindowIO) {
    'use strict';

    describe('window.io', function() {

        it('should be defined', function() {
            // noinspection BadExpressionStatementJS
            expect(WindowIO).to.exist;
        });

        var _testFrame, _testFrame2;

        before(function() {
            _testFrame = document.createElement('iframe');
            _testFrame2 = document.createElement('iframe');
            document.body.appendChild(_testFrame);
            document.body.appendChild(_testFrame2);
        });

        after(function() {
            document.body.removeChild(_testFrame);
            document.body.removeChild(_testFrame2);
            _testFrame = null;
            _testFrame2 = null;
        });

        describe('#constructor', function() {

            it('should fail w/o window', function() {
                expect(function() {
                    new WindowIO();
                }).to.throw(Error);
            });

            it('should fail with own window', function() {
                expect(function() {
                    new WindowIO({
                        window: window
                    });
                }).to.throw(Error);
            });

            it('should instantiate with target window', function() {
                // noinspection BadExpressionStatementJS
                new WindowIO({
                    window: _testFrame.contentWindow
                }).should.exist;
            });

            it('should instantiate with multi target windows', function() {
                // noinspection BadExpressionStatementJS
                new WindowIO({
                    windows: {
                        key1: _testFrame.contentWindow,
                        key2: _testFrame2.contentWindow
                    }
                }).should.exist;
            });
        });
    });
});