logger.writer.delegate.test.js 1.91 KB
/*
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2016 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 console, sinon, describe, expect, it */
define(['screens/player/log/writer/delegate'], function(DelegateWriter) {
    'use strict';

    var writer;

    describe('screens/player/log/writer/delegate', function() {

        describe('# initialisation', function() {

            it('set parameter initialisation', function() {
                var TARGET_ORIGIN = 'http://www.adobe.com';
                var TARGET_WINDOW = {
                    postMessage: function() {}
                };

                var windowMock = sinon.mock(TARGET_WINDOW);
                windowMock
                    .expects('postMessage')
                    .once()
                    .withArgs(sinon.match.any, TARGET_ORIGIN);

                writer = new DelegateWriter(TARGET_ORIGIN, TARGET_WINDOW);
                writer.write();
                windowMock.verify();
            });

        });

        describe('# write', function() {

            it('has to call postMessage', function() {
                var spy = sinon.spy();

                writer = new DelegateWriter(null, {
                    postMessage: spy
                });
                writer.write();
                spy.should.have.been.calledOnce;
            });

        });

    });
});